版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 EDA数字频率计 课程设计报告专 业: 电子信息工程(自动化方向)班 级: 姓 名: 学 号: 指导教师: 年 月 日 目 录一、EDA课程设计要求 - 2二、优点及用途 - 3三、原理图、VHDL语言程序及仿真波形- 3四、总结 - 五、参考书 - 一 EDA课程设计要求1)课程设计题:数字频率计2)任务及要求1、设计一个能测量方波信号的频率的频率计。2、测量的频率范围是0999999Hz。3、结果用十进制数显示。4、按要求写好设计报告(设计报告内容包括:引言,方案设计与论证,总体设计,各模块设计,调试与数据分析,总结)。3)教学提示1、脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表
2、达式为,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。2、被测频率信号取自实验箱晶体振荡器输出信号,加到主控门的输入端。3、再取晶体振荡器的另一标准频率信号,经分频后产生各种时基脉冲:1ms,10ms,0.1s,1s等,时基信号的选择可以控制,即量程可以改变。4、时基信号经控制电路产生闸门信号至主控门,只有在闸门信号采样期间内(时基信号的一个周期),输入信号才通过主控门。5f=N/T,改变时基信号的周期T,即可得到不同的测频范围。5、 当主控门关闭时,计数器停止计数,显示器显示记录结果,此时控制电路输出一个
3、置零信号,将计数器和所有触发器复位,为新的一次采样做好准备。6、 改变量程时,小数点能自动移位。4)设计报告要求1、说明设计作品的功能、特点、应用范围;2、方案对比,确定方案。3、电路工作原理、操作方法;4、编程方法、程序框图及关键程序清单。5、课程设计总结。二、优点及用途数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字,显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精度高,显示直观,所以经常要用到数字频率计。三、
4、原理图、VHDL语言程序及仿真波形1 原理图编译成功后其波形图如下:2、信号发生器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sele is port(clk: in std_logic; jian: in std_logic_vector(1 downto 0); oclk: out std_logic);end;architecture s_1 of sele issignal full : std_logic;signal t :integer range 0 to 599
5、9999; beginP1:process(jian,t) begin case jian is when "00" => t <= 5999999; -产生时基脉冲1s when "01" => t <= 599999; -产生时基脉冲100ms when "10" => t <= 59999; -产生时基脉冲10ms when "11" => t <= 5999; -产生时基脉冲1ms when others => null; end case;end pr
6、ocess P1;P2: process(clk,t) variable s : integer range 0 to 5999999; begin if (clk'event and clk = '1') then if s < t then s := s +1; else s := 0 ; end if; end if; if s = t then full <= '1' else full <= '0' end if;end process P2;P3: process(full) variable c : std
7、_logic;begin if full'event and full = '1' then c := not c; if c = '1' then oclk <= '1' else oclk <='0' end if; end if; end process P3;end;其仿真波形为:3、 测频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cp is port(clkk: in std_logi
8、c; en,rst,load: out std_logic);end;architecture cp_1 of cp is signal div2: std_logic;beginprocess(clkk)begin if(clkk'event and clkk='1') then div2 <= not div2; end if;end process;process(clkk,div2)begin if (clkk='0' and div2='0') then rst <='1' else rst <
9、='0' end if;end process;load <= not div2;en <= div2;end;其仿真波形为:4、 计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu is port(rst,en,clk: in std_logic; Q: out std_logic_vector(3 downto 0); cout: out std_logic);end;architecture cnt of jishu is signal
10、 cnt: std_logic_vector(3 downto 0);beginprocess(rst,en,clk)beginif rst='1' then cnt <= "0000"elsif(clk'event and clk='1') and en = '1' then if cnt = "1001" then cnt <= "0000" cout <= '1' else cnt <= cnt + 1; cout <=
11、9;0' end if;end if;end process;Q <= cnt;end;在源程序中COUT是计数器的进位输出;Q3.0是计数器的状态输出;CLK是时钟输入端;RST是复位控制端;当RST=1时,Q3.0=0,EN是使能控制输入端,当EN=1时,计数器计数,当EN=0时,计数器保持状态不变。编译成功后,其仿真波形如下:在项目编译仿真成功后,将设计的十进制计数器电路设置成可调用的元件jishu.sym用于以下的顶层设计。5、 16位寄存器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsign
12、ed.all;entity suocun is port(load: in std_logic; din : in std_logic_vector(15 downto 0); dout: out std_logic_vector(15 downto 0);end;architecture suo of suocun is beginprocess(load,din)beginif (load'event and load='1') then dout <= din;end if;end process;end;在源程序中load是锁存信号,上升沿触发;din3.
13、0是寄存器输入;dout3.0是寄存器输出。编译成功后生成元件图如下图,以便顶层模块的调用。4位寄存器寄存器是在计数结束后,利用触发器的上升沿吧最新的频率测量值保存起来,这样在计数的过程中可不必一直看数码显示器,显示器将最终的频率读数定期进行更新,其输出作为动态扫描电路的输入。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity suo is port(load: in std_logic; din : in std_logic_vector(3 downto 0); dout: out
14、std_logic_vector(3 downto 0);end;architecture suo_1 of suo is beginprocess(load,din)beginif (load'event and load='1') then dout <= din;end if;end process;end;在源程序中load是锁存信号,上升沿触发;din3.0是寄存器输入;dout3.0是寄存器输出。编译成功后生成元件图如下图,以便顶层模块的调用。6、 译码器library ieee;use ieee.std_logic_1164.all;use ieee
15、.std_logic_unsigned.all;entity leds is port(clk: in std_logic; Din: in std_logic_vector(15 downto 0); sg: out std_logic_vector(6 downto 0); bt: out std_logic_vector(1 downto 0);end;architecture led_1 of leds issignal cnt8: std_logic_vector(1 downto 0);signal q: std_logic_vector(3 downto 0); beginP1:
16、process(cnt8,Din,q) begin case cnt8 is when "00" => bt <= "00"q <= Din(3 downto 0); when "01" => bt <= "01"q <= Din(7 downto 4); when "10" => bt <= "10"q <= Din(11 downto 8); when "11" => bt <= &qu
17、ot;11"q <= Din(15 downto 12); when others => null; end case; case q is when "0000" => sg <= "0111111" when "0001" => sg <= "0000110" when "0010" => sg <= "1011011" when "0011" => sg <= "1001
18、111" when "0100" => sg <= "1100110" when "0101" => sg <= "1101101" when "0110" => sg <= "1111101" when "0111" => sg <= "0000111" when "1000" => sg <= "1111111" when
19、"1001" => sg <= "1101111" when others => null; end case;end process P1;P2:process(clk) begin if(clk'event and clk='1') then cnt8 <= cnt8 +1; end if;end process P2;end;编译成功后,其波形图为:7、 译码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all
20、;entity divid is port(clk50: in std_logic; qlkhz: out std_logic);end;architecture div of divid isbeginK1:process(clk50) variable cout: integer:=0; begin if(clk50'event and clk50='1') then cout := cout + 1; if cout <= 24999 then qlkhz <= '1' elsif cout <= 49999 then qlkhz
21、 <= '1' else cout :=0; end if; end if;end process;end;编译成功后,其波形图为:8、 动态扫描电路library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dongtai is port(q200hz: in std_logic; bt: in std_logic_vector(1 downto 0); sg: in std_logic_vector(6 downto 0); led0,led1,led2,led3: o
22、ut std_logic_vector(6 downto 0);end;architecture behav of dongtai isbeginprocess(q200hz) begin if(q200hz'event and q200hz='1') then case bt iswhen "00" => led0 <= sg(6 downto 0);when "01" => led1 <= sg(6 downto 0);when "10" => led2 <= sg(6
23、downto 0);when "11" => led3 <= sg(6 downto 0);when others => null;end case;end if;end process;end;仿真波形如下:编译成功后生成元件图如下图,以便顶层模块的调用。9、 分频设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity fp is port( clk : in std_logic; oclk: out std_logic);end;architectu
24、re fp_1 of fp issignal full : std_logic;beginP1: process(clk) variable s : integer range 0 to 99; begin if (clk'event and clk = '1') then if s < 99 then s := s +1; elsif s > 99 then s := 0; elsif s = 99 then full <= '1' end if; end if;end process P1;P2: process(full) variable c : std_logic; begin if full = '1' then c := not c; if c = '1' then oclk <= '1' else oclk <='0' end if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年轿车短期租赁服务协议与车辆交付明细版
- 2025年度宗教场地租赁合同中的活动安排与宗教仪式规范3篇
- 2024甲乙双方关于砌体工程劳务合作的合同
- 2024年金蝶人力资源报表分析系统订购
- 2024年食品饮料销售合同英文规范文本3篇
- 2024年适用:有机农产品生产与销售合同
- 2024许娣与配偶离婚协议书及财产分割协议书2篇
- 2024年股东撤资协议:股权份额转让合同
- 2024年生态环境保护与修复项目采购合同3篇
- 北京市自然科学基金资助项目结题报告【模板】
- 2025北京朝阳初二(上)期末数学真题试卷(含答案解析)
- 部编新改版语文一年级下册《语文园地四》教学设计
- 2025年北京铁路局集团招聘笔试参考题库含答案解析
- 做账实操-科学研究和技术服务业的账务处理示例
- 2025年人教版历史八上期末复习-全册重难点知识
- 2024年国家安全员资格考试题库及解析答案
- 仪控技术手册-自控专业工程设计用典型条件表
- 法务岗位招聘笔试题及解答(某大型国企)2025年
- 曙光磁盘阵列DS800-G10售前培训资料V1.0
- 寺庙祈福活动方案(共6篇)
- 2024年化学螺栓锚固剂项目可行性研究报告
评论
0/150
提交评论