architecture behav of jishu11 is begin
process(clk,rst,en)
variable cqi:std_logic_vector(3 downto 0); begin
if rst='1' then cqi:=(others=>'0'); elsif clk'event and clk='1' then if en='1' then
if cqi<10 then cqi:=cqi+1; else cqi:=(others=>'0'); end if; end if; end if;
if cqi=10 then cout<='1'; else cout<='0'; end if; cq<=cqi; end process; end behav;
编译成功后生成元件图如下:
图9
2).D触发器的设计 其程序如下: library ieee;
use ieee.std_logic_1164.all; entity reg_2 is port(clk,d:in std_logic; q:out std_logic); end reg_2;
architecture behav of reg_2 is signal q1:std_logic; begin process(clk) begin
if clk'event and clk='1' then q1<=d; end if; end process;
q<=q1; end behav;
编译成功后生成如下元件图:
图10
将生成的75进制计数器、11进制计数器、10进制计数器和非门按下图连接来得到1S高电平门闸信号。
图11
将其电路图进行仿真,其仿真波形如下:
图12
对照其仿真波形,其输出门闸信号高电平为1S,符合设计,将其电路生成如下元件图,以便顶层调用。
图13
2).控制信号发生器模块
该模块主要根据输入高电平的1S闸门信号,产生计数允许信号EN,该信号的高电平的持续时间即计数允许时间,与输入的门闸控制时钟脉冲周期相同;产生清零信号RST,在计数使能前对计数器先清零;产生存储信号LOAD,在计数结束后,利用上升沿把最新的频率测量值保存在显示寄存器中。
为了产生清零信号RST,使能信EN和存储信号LOAD。不失一般性,控制信号发生器用74161构成4分频计数器,用一个与非门,一个或非门和一个异或门实现3种译码状态,与闸门模块按下图连接。
相关推荐: