北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:脉冲信号发生器作者所在系部:作者所在班级:作者姓名:指导教师姓名:完成时间:内容摘要简单介绍了基于FPGA的脉冲信号发生器的设计。
通过对系统进行结构分析,采用层次化的设计方法,给出了脉冲信号发生器与数字频率计的VHDL代码,利用Quartus II对其进行了仿真,并在硬件电路上得以实现其逻辑功能。
关键词FPGA;Quartus II;脉冲信号发生器目录一课程设计任务书 (4)二概述及技术要点 (5)三程序编码 (5)1.主程序编码 (5)2.辅程序编码 (7)四设计仿真及结果 (7)五调试及性能测试 (7)六课程设计总结 (7)七参考文献 (7)八教师评语及成绩 (8)课程设计任务书课题名称脉冲信号发生器完成时间2010-12-11指导教师胡辉职称副教授学生姓名班级总体设计要求和技术要点总体设计要求:通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA 技术解决一些简单的电子设计问题。
技术要点:将输入的时钟作为计数器的计数脉冲,计数结果的第N位是2的N次幂分频。
将对应的为数取出就能得到所需的频率。
信号发生器系统组成如图1所示,由一分频模块与占空比调节模块共同组成。
工作内容及时间进度安排12月9、10号设计程序并初步仿真调试,11号运用试验箱完成设计并验收。
课程设计成果1.与设计内容对应的软件程序2.课程设计报告书3.成果使用说明书4.设计工作量要求概述信号发生器是一种常用的信号源,广泛应用于通信、雷达、测控、电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格技术要求的电信号设备。
它与示波器、万用表、频谱分析仪等仪器一样是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到信号发生器。
技术要点在时钟的整数分频中,时钟的二进制分频最简单。
对于二进制分频,可以用一个二进制加法计数器十分方便的完成设计原理:将输入的时钟作为计数器的计数脉冲,计数结果的第N位是2的N次幂分频。
将对应的为数取出就能得到所需的频率。
占空比调节模块的设计原理:首先描述一个计数器电路,然后通过计数电路的并行输出信号来控制输出时钟信号的高低电平持续时间,即可完成这种占空比调节1、主程序编码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity gaixie isport(cp,key1:in std_logic;y:out std_logic_vector(1 to 8);outsel:out std_logic_vector(2 downto 0);xianout:out std_logic_vector(6 downto 0);key:in std_logic_vector(0 to 1));end gaixie;architecture art of gaixie issignal q2,q3:std_logic_vector(0 to 7);signal bi1,bi2:std_logic;signal timer:std_logic_vector(2 downto 0);signal dataout:std_logic_vector(3 downto 0);begindivi:process(cp,key,bi1)variable jishu,q1:std_logic_vector(0 to 7);begincase key iswhen "00"=> jishu:="00000001";when "01"=> jishu:="00000010";when "10"=> jishu:="00000011" ;when others=> jishu:="00000100";end case;q3<=jishu;if cp'event and cp='1' thenq1:=q1+1;if q1=q3 thenq1:=(others=>'0');bi1<=not bi1;end if;end if;y(1)<=bi1;y(2)<=bi1;y(3)<=bi1;y(4)<=bi1;y(5)<=bi1;y(6)<=bi1;y(7)<=bi1;end process divi;divi1:process(cp,key1)beginif cp'event and cp='1' and key1='1'then bi2<=bi1;end if;end process divi1;y(8)<=bi2;divi2: process(cp)beginif cp'event and cp='1' thenif timer="000" thendataout<="0000";outsel<="000";timer<="001";elsif timer="001" thendataout<="0000";outsel<="001";timer<="010";elsif timer="010" thendataout<="0000";outsel<="010";timer<="011";elsiftimer="011" thendataout<="0000";outsel<="100";timer<="100";elsif timer="100" then dataout<="0000"; outsel<="100";timer<="101";elsif timer="101" then dataout<="0000"; outsel<="101";timer<="110";elsif timer="110" then dataout<="0101"; outsel<="110";timer<="111";elsif timer="111" then dataout<="0000"; outsel<="111";timer<="000";end if;end if;end process divi2;divi3: process(dataout) begincase dataout iswhen "0000" =>xianout<="1111110"; when "0001" => xianout<="0110000"; when "0010" =>xianout<="1101101"; when "0011" => xianout<="1111001"; when "0100" => xianout<="0110011"; when "0101" => xianout<="1011011"; when "0110" => xianout<="1011111"; when "0111" => xianout<="1110000"; when "1000" => xianout<="1111111"; when "1001" => xianout<="1111011"; when others => xianout<="0000000"; end case;end process divi3;end art;2、辅程序编码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY D ELED ISPORT(num : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END DELED;ARCHITECTURE FIVE OF DELED ISBEGINPROCESS(NUM)BEGINCASE NUM ISWHEN "0000"=>LED<="1111110";WHEN "0001"=>LED<="0110000"; WHEN "0010"=>LED<="1101101"; WHEN "0011"=>LED<="1111001"; WHEN "0100"=>LED<="0110011"; WHEN "0101"=>LED<="1011011"; WHEN "0110"=>LED<="1011111"; WHEN "0111"=>LED<="1110000"; WHEN "1000"=>LED<="1111111"; WHEN "1001"=>LED<="1111011"; when others=>LED<="0000000"; END CASE;END PROCESS;END FIVE;四、设计仿真及结果1、仿真波形2、器件设计及连接五、调试及性能测试按照要求对实验结果进行测试直到运行成功、实现所需功能。