VHDL 闹钟控制模块实现:Verilog 转换与代码解析
{ "title": "LIBRARY IEEE;--引用IEEE库\nUSE IEEE.STD_LOGIC_1164.ALL;--STD_LOGIC、STD_LOGIC_VECTOR数据类型在此程序包中,而且程序包\n--还包含此两种数据类型的逻辑运算。且IEEE库不属于VHDL标准库,必须予以声明\nUSE IEEE.STD_LOGIC_UNSIGNED.ALL;--对STD_LOGIC_VECTOR数据类型进行无符号数运算需声明UNSIGNED,\n--如需进行有符号数运算,则需声明SIGNED\n\nENTITY NAOZHONGKONGZHI IS--该模块输入有时钟的分钟小时数、闹钟的分钟小时数;使闹钟按规定频率响的2HZ的时钟信号;闹钟开关\nPORT(--该模块输出为连接到蜂鸣器的输出信号\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCLK: IN STD_LOGIC;\n\tSZFSHI,SZFGE,NZFSHI,NZFGE,SZHSHI,SZHGE,NZHSHI,NZHGE: IN STD_LOGIC_VECTOR(3 DOWNTO 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tNZTZANJ: IN STD_LOGIC;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSOUND:OUT STD_LOGIC);\nEND ENTITY NAOZHONGKONGZHI;\n\nARCHITECTURE A OF NAOZHONGKONGZHI IS\nSIGNAL TMP:STD_LOGIC;\nBEGIN\n\tPROCESS(SZFSHI,SZFGE,NZFSHI,NZFGE,SZHSHI,SZHGE,NZHSHI,NZHGE)--进程,根据时钟分钟小时数和闹钟分钟小时数的比较,对\n--闹钟输出信号作出相应控制\n\tBEGIN\n\t\tIF(SZFSHI=NZFSHI AND SZFGE=NZFGE AND SZHSHI=NZHSHI AND SZHGE=NZHGE)THEN--数值相同时\n\t\t\tTMP<=CLK AND NZTZANJ;--输出的闹钟信号为2HZ时钟信号和闹钟开关相与的结果\n\t\tELSE\n\t\t\tTMP<='0';--数值不相同时,闹钟不响\n\t\tEND IF;\n\tEND PROCESS;\n\tSOUND<=TMP;\nEND ARCHITECTURE A;\n将VHDL转换为Verilog内容:module NAOZHONGKONGZHI(\n\tinput CLK,\n\tinput [3:0] SZFSHI, SZFGE, NZFSHI, NZFGE, SZHSHI, SZHGE, NZHSHI, NZHGE,\n\tinput NZTZANJ,\n\toutput reg SOUND\n);\n\nreg TMP;\n\nalways @(SZFSHI or SZFGE or NZFSHI or NZFGE or SZHSHI or SZHGE or NZHSHI or NZHGE)\nbegin\n\tif((SZFSHI == NZFSHI) && (SZFGE == NZFGE) && (SZHSHI == NZHSHI) && (SZHGE == NZHGE))\n\tbegin\n\t\tTMP <= CLK & NZTZANJ;\n\tend\n\telse\n\tbegin\n\t\tTMP <= 0;\n\tend\nend\n\nassign SOUND = TMP;\n\nendmodule
原文地址: https://www.cveoy.top/t/topic/pAYk 著作权归作者所有。请勿转载和采集!