
《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_11.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity gaixie is
architecture art of gaixie is
signal q2,q3:std_logic_vector(0 to 7);
signal bi1,bi2:std_logic;
begin
divi:process(cp,key,bi1)
variable jishu,q1:std_logic_vector(0 to 7);
begin
end case;
q3<=jishu;
if cp'event and cp='1' then
q1:=q1+1;
if q1=q3 then
q1:=(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)
begin
if cp'event and cp='1' and key1='1'then
bi2<=bi1;
end if;
end process divi1;
y(8)<=bi2;
divi2: process(cp)
if cp'event and cp='1' then
if timer="000" then
dataout<="0000";
outsel<="000";
timer<="001";
elsif timer="001" then
dataout<="0000";
outsel<="001";
timer<="010";
elsif timer="010" then
dataout<="0000";
outsel<="010";
timer<="011";
elsif
timer="011" then
dataout<="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;
begin
case dataout is
when "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_11.ALL;
ENTITY DELED IS
PORT(num : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
LED : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END DELED;
ARCHITECTURE FIVE OF DELED IS
BEGIN
PROCESS(NUM)
BEGIN
CASE NUM IS
WHEN "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、器件设计及连接
五、调试及性能测试
按照要求对实验结果进行测试直到运行成功、实现所需功能。
六、课程设计总结
通过本课程的学习使我初步掌握可编程器件、EDA开发系统软件、硬件描述语言(VHDL)和电子线路设计与技能训练等各方面知识;提高了工程实践能力;学会了应用EDA技术解决一些简单的电子设计问题。
七、参考文献
1.张亦华 《数字电路EDA入门-VHDL程序实例集》北京邮电大学出版社 2003年
2.侯伯亨 《VHDL硬件描述语言与数字逻辑电路设计》西安电子科技大学出版社 1999年
3.任勇峰 《VHDL与硬件实现速成》国防工业出版社 2005年
4.胡辉 李国洪 《EDA技术与实验》机械工业出版社 2009年
八、教师评语及成绩
| 指导教师评语及设计成绩 | 评 语 |
课程设计成绩:
指导教师: 日期: 年 月 日 |
