VHDL to Verilog Conversion: A 1/4 Counter Design Example
LIBRARY IEEE; --\u003c打开库IEEE\u003e\nUSE IEEE.STD_LOGIC_1164.ALL; --\u003c程序中有STD_LOGIC和STD_LOGIC_VECTOR数据类型,这两种数据类型都在STD_LOGIC_1164程序包中定义。\u003e\nUSE IEEE.STD_LOGIC_UNSIGNED.ALL; --\u003c程序中有“+”运算符,无符号数的算术运算在STD_LOGIC_UNSIGNED程序包中定义。\u003e\nENTITY ERSIFENPING IS\nPORT(\n\t CLR,CLK_SOURCE: IN STD_LOGIC; --\u003c输入端口,数据类型为STD_LOGIC。\u003e\n\t CLK_4F,CLK_2F:OUT STD_LOGIC); --\u003c输出端口,数据类型为STD_LOGIC。\u003e\nEND ENTITY ERSIFENPING;\n\nARCHITECTURE RTL OF ERSIFENPING IS\nSIGNAL TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0); --\u003c定义信号TEMP,两位的位矢量,数据类型为STD_LOGIC_VECTOR。\u003e\nBEGIN\n\tPROCESS(CLK_SOURCE) --\u003c进程,敏感信号为CLK_SOURCE。\u003e\n\tBEGIN\n\t IF (CLR='0') THEN\n\t TEMP<="00";\n\t ELSIF (CLK_SOURCE'EVENT AND CLK_SOURCE='1') THEN--\u003c时钟上升沿。\u003e\n\t TEMP<=TEMP+1; --\u003c根据时钟上升沿来的次数,实现一四进制计数器。\u003e\n\t END IF;\n\t CLK_2F<=TEMP(0);CLK_4F<=TEMP(1); --\u003c将信号值赋值给相应输出端。\u003e\n\tEND PROCESS;\nEND ARCHITECTURE RTL;;\n将VHDL转换为verilog HDL内容:module ERSIFENPING (\n CLR, CLK_SOURCE,\n CLK_4F, CLK_2F\n);\n\ninput CLR, CLK_SOURCE;\noutput CLK_4F, CLK_2F;\n\nreg [1:0] TEMP;\n\nalways @(posedge CLK_SOURCE) begin\n if (CLR == 1'b0) begin\n TEMP <= 2'b00;\n end else begin\n TEMP <= TEMP + 1;\n end\nend\n\nassign CLK_2F = TEMP[0];\nassign CLK_4F = TEMP[1];\n\nendmodule
原文地址: https://www.cveoy.top/t/topic/pzUi 著作权归作者所有。请勿转载和采集!