1、这3个信号可以由一个测频控制信号发生器产生,即TESTCTL。TESTCTL的计数是能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA是能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进个锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。数字频率计的关键组成部分包括一个测频控
2、制信号发生器、一个计数器和一个锁存器,另外包含外电路的信号整形电路、脉冲发生器、译码驱动电路和显示电路,其原理框图如图1所示。 图1 数字频率计原理框图工作原理:系统正常工作时,脉冲信号发生器输入1Hz的标准信号,经过测频控制信号发生器的处理,2分频后即可产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。测量信号时,将被测信号通过信号整形电路,产生同频率的矩形波,输入计数器作为时钟。当计数闸门信号高电平有效时,计数器开始计数,并将计数结果送入锁存器中。设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。最后将锁存的数值由外部的七段译码器译码并在数码管上显示。五、实验步骤1、
3、完成32位寄存器的设计1) 32位锁存器程序编译;2) 32位锁存器程序允许生成模块;3) 32位锁存器模块。2、完成32位计数器的设计1) 32位计数器程序编译;2) 32位计数器程序允许生成模块;3) 32位计数器。3、完成频率计控制电路的设计1)频率计控制电路程序编译;2)频率计控制电路程序允许生成模块;3)频率计控制电路。4、完成一个8位16进制频率计电路的设计1)8位16进制频率计电路程序编译;2)8位16进制频率计电路程序允许生成模块;3)8位16进制频率计电路。六、实验结果及分析1、32位寄存器仿真波形如图1所示:图1 32位寄存器仿真波形32位寄存器原理图如图2所示:图2 32
4、位寄存器原理图2、32位计数器仿真波形如图3所示:图3 32位计数器32位计数器原理图如图4所示:图4 32位计数器原理图3、频率计控制电路仿真波形如图5所示:图5 频率计控制电路频率计控制电路原理图如图6所示:图6 频率计控制电路原理图4、8位16进制频率计仿真波形如图7所示:图7 8位十六进制频率计8位十六进制频率计原理图如图8所示:图8 8位十六进制频率计原理图七、思考题1、功能仿真与时序仿真有什么不同?答:功能仿真是指在一个设计中,在设计实现前对所创建的逻辑进行的验证其功能是否正确的过程。布局布线以前的仿真都称作功能仿真,它包括综合前仿真和综合后仿真。综合前仿真主要针对基于原理框图的设
5、计;综合后仿真既适合原理图设计,也适合基于 HDL 语言的设计。时序仿真使用布局布线后器件给出的模块和连线的延时信息,在最坏的情况下对电路的行为作出实际地估价。时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。2、还有什么其他方法实现频率计功能?用STC89C52RC单片机可以实现频率计的功能。附录:试验程序LIBRARY IEEE; - -32位计数器描述USE IEEE.STD_LOGIC_1164.AL
6、L;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER32B IS PORT(FIN,CLR,ENABL : IN STD_LOGIC; DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END COUNTER32B;ARCHITECTURE behav OF COUNTER32B IS SIGNAL CQI : STD_LOGIC_VECTOR(31 DOWNTO 0);BEGIN PROCESS(FIN ,CLR ,ENABL) BEGIN IF CLR = 1 THEN CQI 0); ELSIF FINEVENT
7、 AND FIN = THEN IF ENABL = = CQI + 1; END IF; END IF; END PROCESS; DOUT = CQI;END behav;LIBRARY IEEE ; - -测频控制电路:ENTITY FTCTRL IS PORT (CLKK : CNT_EN,RST_CNT ,Load: OUT STD_LOGIC );END FTCTRL;ARCHITECTURE behav OF FTCTRL IS SIGNAL Div2CLK : STD_LOGIC ; PROCESS (CLKK) IF CLKKEVENT AND CLKK = Div2CLK
8、= NOT Div2CLK; PROCESS (CLKK,Div2CLK) IF CLKK = AND Div2CLK = THEN RST_CNT = ; ELSE RST_CNT Load CNT_EN = Div2CLK; - -32位锁存器:ENTITY REG32B IS PORT(LK : DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT :END REG32B;ARCHITECTURE behav OF REG32B IS PROCESS(LK,DIN) IF LKEVENT AND LK= THEN DOUT CLK1HZ,CNT_EN = TSTEN1, RST_CNT = CLR_CNT1,Load = Load1 );U2: REG32B PORT MAP(LK = Load1,DIN = DTO1,DOUT =DOUT);U3: COUNTER32B PORT MAP( FIN =FSIN,CLR = CLR_CNT1, ENABL = TSTEN1,DOUT =DTO1 );END struc;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1