VHDL 24进制计数器设计与Verilog实现
"LIBRARY IEEE;--引用IEEE库\nUSE IEEE.STD_LOGIC_1164.ALL;--STD_LOGIC、STD_LOGIC_VECTOR数据类型在此程序包中,而且程序包\n--还包含此两种数据类型的逻辑运算。且IEEE库不属于VHDL标准库,必须予以声明\nUSE IEEE.STD_LOGIC_ARITH.ALL;--对STD_LOGIC类型的数据进行算术运算的程序包\nUSE IEEE.STD_LOGIC_UNSIGNED.ALL;--对STD_LOGIC_VECTOR数据类型进行无符号数运算需声明UNSIGNED,\n--如需进行有符号数运算,则需声明SIGNED\n\nENTITY COUNTER_24 IS\nPORT(\n\t\t\tCLK_1H,CLR: IN STD_LOGIC;--输入的计数脉冲\n\t\tHGEWEI,HSHIWEI:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--输出个位及十位BCD码\nEND ENTITY COUNTER_24;\n\nARCHITECTURE RTL OF COUNTER_24 IS\nSIGNAL TMP1,TMP2:STD_LOGIC_VECTOR(3 DOWNTO 0);--引入信号TMP1、TMP2,存储计数器计数结果\nBEGIN\n\tPROCESS(CLK_1H)\n\tBEGIN\n\t\tIF(CLR='0')THEN--当清零控制管脚为低电平时,将中间信号量置零处理\n\t\t\tTMP1<="0000";TMP2<="0000";\n\t\tELSIF(CLK_1H'EVENT AND CLK_1H='1')THEN--当清零控制管脚为高电平时,判断输入计数脉冲有无上升沿到来\n\t\t\tIF(TMP2="0010" AND TMP1="0011")THEN--判断计数结果是否达到23\n\t\t\t\tTMP2<="0000";TMP1<="0000";--计数结果达到23,计数器清零\n\t\t\tELSIF(TMP1="1001")THEN--计数结果未达到23,但个位数计数结果为9\n\t\t\t\tTMP1<="0000";TMP2<=TMP2+1;--计数结果个位数清零,十位数进1\n\t\t\tELSE\n\t\t\t\tTMP1<=TMP1+1;--计数结果既未达到23,个位数计数结果也不为9,实现计数器个位数加1\n\t\t\tEND IF;\n\t\tEND IF;\n\tEND PROCESS;\n\tHGEWEI<=TMP1;HSHIWEI<=TMP2;--将计数器结果赋值给输出的个位数和十位数\nEND ARCHITECTURE RTL;\n将VHDL转换为verilog内容:以下是将VHDL代码转换为Verilog代码的示例:\n\nverilog\n`include \"ieee.std_logic_1164.all\"\n`include \"ieee.std_logic_arith.all\"\n`include \"ieee.std_logic_unsigned.all\"\n\nmodule COUNTER_24(\n\tinput CLK_1H,\n\tinput CLR,\n\toutput reg [3:0] HGEWEI,\n\toutput reg [3:0] HSHIWEI\n);\n\nreg [3:0] TMP1;\nreg [3:0] TMP2;\n\nalways @(posedge CLK_1H) begin\n\tif (CLR == 0) begin\n\t\tTMP1 <= 4'b0000;\n\t\tTMP2 <= 4'b0000;\n\tend else begin\n\t\tif (TMP2 == 4'b0010 && TMP1 == 4'b0011) begin\n\t\t\tTMP2 <= 4'b0000;\n\t\t\tTMP1 <= 4'b0000;\n\t\tend else if (TMP1 == 4'b1001) begin\n\t\t\tTMP1 <= 4'b0000;\n\t\t\tTMP2 <= TMP2 + 1;\n\t\tend else begin\n\t\t\tTMP1 <= TMP1 + 1;\n\t\tend\n\tend\nend\n\nassign HGEWEI = TMP1;\nassign HSHIWEI = TMP2;\n\nendmodule\n\n\n请注意,Verilog中没有直接的库引用,因此需要手动添加所需的库文件。此外,Verilog中没有类似于VHDL中的PROCESS语句,因此使用always块来实现相同的功能。
原文地址: https://www.cveoy.top/t/topic/pAvv 著作权归作者所有。请勿转载和采集!