毕业设计基于eda的数字频率计的设计内容摘要:

4 位十进制计数器模块 4 位十进制计数器模块包含 4 个级联十进制计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有集束使能、清零控制和进位扩展输出的功能。 使能信号和清零信号由闸门控制模块的控制信号发生器所产生来对 4 个级联十进制计数器周期性的计数进行控制。 (1)十进制计数器元件的设计 十进制计数器的程序如下: library ieee。 use。 use。 entity jishu10 is port(clk,rst,en:in std_logic。 cq:out std_logic_vector(3 downto 0)。 cout:out std_logic)。 end jishu10。 脉冲形成模块 计数模块 译码模块 控制模块 分频模块 量程切换模块 被测信号 锁存 清零 使能 基准信号 电子与电气工程学院 毕业设计论文 9 9 architecture behav of jishu10 is begin process(clk,rst,en) variable cqi:std_logic_vector(3 downto 0)。 begin if rst=39。 139。 then cqi:=(others=39。 039。 )。 elsif clk39。 event and clk=39。 139。 then if en=39。 139。 then if cqi9 then cqi:=cqi+1。 else cqi:=(others=39。 039。 )。 end if。 end if。 end if。 if cqi=9 then cout=39。 139。 else cout=39。 039。 end if。 cq=cqi。 end process。 end behav。 在源程序中 COUT 是计数器进位输出; CQ[3..0]是计数器的状态输出; CLK 是始终输入端; RST是复位控制输入端,当 RST=1 时, CQ[3..0]=0; EN 是使能控制输入端,当 EN=1 时,计数器计数,当EN=0 时,计数器保持状态不变。 编译成功后进行仿真,其仿真波形如下: 电子与电气工程学院 毕业设计论文 10 10 图 3 在项目编译仿真成功后,将设计的十进制计数器电路设置成可调用的元件 ,用于以下的顶层设计。 图 4 (2) 4 位十进制计数器的顶层设计 新建一个原理图编辑窗,从当前的工程目录中凋出 4 个十进制计数器元件 ,并按如图所示的 4 位十进制计数器的顶层原理图完成电路连接。 电子与电气工程学院 毕业设计论文 11 11 图 5 完成 4 位十进制计数器的原理图编辑以后,即可进行仿真测试和波形分析,其仿真输出波形如图所示,当 RST=0、 EN=1 是其计数值在 0 到 9999 之间循环变化, COUT 为计数进位输出信号,作为后面的量程自动切换模块的输入脉冲。 图 6 因此仿真结果正确无误,可将以上设计的 4 位十进制计数器设置成可调用的元件 ,电子与电气工程学院 毕业设计论文 12 12 以备高层设计中使用,其元件符号图如下图所示。 图 7 控制模块设计 1)闸门信号的设计 频率计电 路工作时先要产生一个计数允许信号(即闸门信号),闸门信号的宽度为单位时间,如1S。 在闸门信号有效时间内,对被测信号计数,即为信号的频率。 该频率计电路的精度取决于闸门信号 T。 本设计中选取的基准信号频率为 750khz,为了得到 1s 高电平的周期性闸门信号,本设计采用对频率为 750khz 基准信号先进行 75 分频,再进行 3 个 10 分频,最后进行 11 分频,再用非门对分频出的信号进行取非变换,这样得到的门闸信号高电平为 1 秒钟。 ( 1) 75 进制计数器的程序如下: library ieee。 use。 use。 entity jishu75 is port(clk,rst,en:in std_logic。 cq:out std_logic_vector(7 downto 0)。 cout:out std_logic)。 end jishu75。 architecture behav of jishu75 is begin 电子与电气工程学院 毕业设计论文 13 13 process(clk,rst,en) variable cqi:std_logic_vector(7 downto 0)。 begin if rst=39。 139。 then cqi:=(others=39。 039。 )。 elsif clk39。 event and clk=39。 139。 then if en=39。 139。 then if cqi74 then cqi:=cqi+1。 else cqi:=(others=39。 039。 )。 end if。 end if。 end if。 if cqi=74 then cout=39。 139。 else cout=39。 039。 end if。 cq=cqi。 end process。 end behav。 编译成功后生成元件图如下: 图 8 电子与电气工程学院 毕业设计论文 14 14 ( 2) 11 进制计数器的程序如下: library ieee。 use。 use。 entity jishu11 is port(clk,rst,en:in std_logic。 cq:out std_logic_vector(3 downto 0)。 cout:out std_logic)。 end jishu11。 architecture behav of jishu11 is begin process(clk,rst,en) variable cqi:std_logic_vector(3 downto 0)。 begin if rst=39。 139。 then cqi:=(others=39。 039。 )。 elsif clk39。 event and clk=39。 139。 then if en=39。 139。 then if cqi10 then cqi:=cqi+1。 else cqi:=(others=39。 039。 )。 end if。 end if。 end if。 if cqi=10 then cout=39。 139。 电子与电气工程学院 毕业设计论文 15 15 else cout=39。 039。 end if。 cq=cqi。 end process。 end behav。 编译成功后生成元件图如下: 图 9 2) .D触发器的设计 其程序如下: library ieee。 use。 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) 电子与电气工程学院 毕业设计论文 16 16 begin if clk39。 event and clk=39。 139。 then q1=d。 end if。 end process。 q=q1。 end behav。 编译成功后生成如下元件图: 图 10 将生成的 75 进制计数器、 11 进制计数器、 10 进制计数器和非门按下图连接来得到 1S 高电平门闸信号。 电子与电气工程学院 毕业设计论文 17 17 图 11 将其电路图进行仿真,其仿真波形如下: 图 12 对照其仿真波形,其输出门闸信号高电平为 1S,符合设计,将其电路生成如下元件图,以便顶层调用。 电子与电气工程学院 毕业设计论文 18 18 图 13 2) .控制信号发生器模块 该模块主要根据输入高电平的 1S 闸门信号,产生计数允许信号 EN,该信号的高电平的持 续时间即计数允许时间,与输入的门闸控制时钟脉冲周期相同;产生清零信号 RST,在计数使能前对计数器先清零;产生存储信号 LOAD,在计数结束后,利用上升沿把最新的频率测量值保存在显示寄存器中。 为了产生清零信号 RST,使能信 EN 和存储信号 LOAD。 不失一般性,控制信号发生器用 74161构成 4 分频计数器,用一个与非门,一个或非门和一个异或门实现 3 种译码状态,与闸门模块按下图连接。 图 14 编译成功后进行仿真,其仿真波形如下: 电子与电气工程学院 毕业设计论文 19 19 图 15 该功能正确无误后生成的元件符号图如下图所示。 图 16 分频模块的设计 当被测频率超出量程时,设计分频模块对被测频率进行分频衰减,单位上升,从而扩大测量频率的范围。 1).四选一数据选择器 四选一数据选择器的程序如下: library ieee。 use。 电子与电气工程学院 毕业设计论文 20 20 use。 entity si_xuan_1 is port(a,b,c1,c2,c3,c4:in std_logic。 y:out std_logic)。 end si_xuan_1。 architecture behav of si_xuan_1 is signal x:std_logic_vector(1 downto 0)。 begin process(a,b) begin x=bamp。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。