EDA 技术课程设计
题
院
目
系
专业班级
学生姓名
学生学号
指导教师
脉冲宽度测量仪
物理电器信息学院
电子信息工程
吴敏
12009247838
杨泽林
2011 年 12 月 25 日
目录
一、EDA 简介 ………………………………………
1
二、任务及要求……………………………………… 2
三、总体设计思想…………………………………… 3
四、设计步骤和调试过程 …………………………
4
五、设计电路图 …………………………………… 7
六、实验调试结果 …………………………………
七、结论及心得体会 ………………………………
八、参考资料 ………………………………………
7
7
8
EDA 技术课程设计
题目 脉冲宽度测量仪
专业
09 电子信息工程
姓名 吴敏 学号 12009247838
一.EDA 简介
EDA 是电子设计自动化(Electronic Design Automation)缩写,是 90 年代初从 CAD
(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和 CAE(计算机辅助
工程)的概念发展而来的。EDA 技术是以计算机为工具,根据硬件描述语言 HDL( Hardware
Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、
布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的 EDA 工具中必
须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在 EDA 平台上完
成的针对某个系统项目的 HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编
译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定
所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起
来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言
描述转换低级的、可与目标器件 FPGA/CPLD 相映射的网表文件。
适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载
文件,如 JED 文件。适配所选定的目标器件(FPGA/CPLD 芯片)必须属于在综合器中已指定
的目标器件系列。
硬件描述语言 HDL 是相对于一般的计算机软件语言,如:C、PASCAL 而言的。HDL 语言
使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方
式。设计者可利用 HDL 程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;
然后利用综合器和适配器将此程序编程能控制 FPGA 和 CPLD 内部结构,并实现相应逻辑功能
的的门级或更底层的结构网表文件或下载文件。目前,就 FPGA/CPLD 开发来说,比较常用和
流行的 HDL 主要有 ABEL-HDL、AHDL 和 VHDL。
二.主要任务及要求
(一)主要任务:
采用 EDA 技术,设计一个能测量脉冲信号宽度的系统。系统图如下:
P_IN
脉冲边沿检测
计数器
译码显示
CLK1
CLK
时钟分频
CLK2
1
(二)基本要求:
(1)脉冲信号宽度的测量精度为±1ms。
(2)脉冲信号宽度的测量范围为 0~10s。
(3)调试过程中可以用按键模拟脉冲信号。
(4)测量值用 5 位数码管显示(可以采用静态显示)。
(5)输入信号为标准 TTL 电平。
(6)调试中既可以采用正脉冲,也可以采用负脉冲(任选其一)。
(7)必须先进行前仿真,并打印出仿真波形。
(8)按要求写好设计报告(设计报告内容包括:引言,方案设计与论证,总体设计,各
模块设计,调试与数据分析,总结)。
三.总体设计思想
(1).基本原理
根据设计要求,系统的输入信号有:系统时钟信号 CLK,系统复位信号 CLR,脉冲输入
信号 P_IN,计数输出端.当检测到 P_IN 端有脉冲输入时检测模块就会输出1,否则为0,输给
计数模块的EN端,当各位累计到9时,会向十位进位,一次类推到万位.最后由数码管显示
脉冲的宽度(数码管的读数).
(2).设计框图
系统组成方框图如下所示,它由外部输入模块、检测模块和显示模块三部分组成。检测
模块是整个系统的核心,它由计数模块、控制模块、计量模块和译码显示模块构成。
时钟信号
计数器
计数信号
输入脉冲
清零复位
检
测
器
2
检测
计宽
计数
显
示
四、设计步骤和调试过程
(一)总体设计电路
(1)脉冲检测模块
当有检测到 P_IN 端有脉冲输入(P_IN=1)时,EN_OUT=1输送到计数器的 EN 端。
(2)计数模块
计数模块是对检测到的脉冲进行计数 ,计算出脉冲的宽度。
(3)译码显示模块
对输入的脉冲宽度进行显示出来。
(二)模块设计和相应模块程序
(1)检测程序
library ieee;
use ieee.std_logic_1164.all;
entity jiance is
port(
P_IN : in std_logic;
EN_OUT: out std_logic);
end jiance;
architecture behave of jiance is
begin
process (P_IN)
begin
if(P_IN='1') then EN_OUT<='1'; ---实现检测,若有脉冲就输出为1
else EN_OUT<='0'; ---否,则为0
end if;
end process;
3
end behave;
(2)计数程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cout10 is
port(EN:in std_logic;
CLK:in std_logic;
CLR:in std_logic;
CQ:out std_logic;
Qout:BUFFER std_logic_vector(3 downto 0)
);
end cout10;
architecture art of cout10 is
begin
U1:process(CLK,CLR,EN,QOUT)
Begin
if
CLR='1' then Qout<="0000";
elsif CLK'EVENT
and
CLK='1'
then
if
EN='1'
then
if
Qout="1001"
then
Qout<="0000";
else
Qout<=Qout+'1';
end if;
end if ;
4
end if ;
if
Qout="1001" then
CQ<='1';
else
CQ<='0';
end if;
end PROCESS U1;
end
art;
五.设计电路图
六、实验调试结果
为验证所设计程序是否正确,将程序下载进行硬件测试。在 QuartusⅡ开发环境中进行
管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。经过多次数据测试,显
示正常,基本实现本实验的要求。
5
七、结论及心得体会
这次的课程设计对于我来说是毕业前的一次演练,从选题到画出流程图,再到写出程序,
不停的编不停的改不停的查资料……直至最后完成,有问题大家都坐在一起讨论,一起努力,
一起攻克问题。我想我们享受的就是这个过程,而不仅仅只是结果。通过这次的设计,我知
道了,在任何问题面前,只要我们努力,只要我们勇敢,我想,它们都不是问题,都不是困
难。
八.参考资料:
[1] 潘松著.EDA 技术实用教程(第二版). 北京:科学出版社,2005.
[2] 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.
[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2002。
6