EDA课程设计

时间:2024.5.8

华东交通大学理工学院课程设计报告

EDA课程设计

华东交通大学理工学院

课 程 设 计 报 告 书

所属课程名称 实用EDA技术与VHDL教程

题 目 8位16进制频率计设计 分 院

专业班级

学 号 学生姓名 指导教师 谭尾琴

20xx年6月24日

2

EDA课程设计

1 华东交通大学理工学院课程设计报告

课程设计(论文)评阅意见

EDA课程设计

评阅人 谭尾琴 20xx年 月 日

第 1 页

2 华东交通大学理工学院课程设计报告

目 录

一、任务设计与要求 ··················· 3

二、设计方案介绍 ···················· 4

三、 VHDL设计部分 ··················· 5

3.1 测频控制电路FTCTRL ···············

3.2锁存器REG32B ···················

3.3计数器COUNTER32B ·················

3.4顶层文件 ·····················

四、 模拟调试部分 ···················

五、 设计仿真运行过程中遇到的问题及解决措施 ······

六、设计心得 ·····················

七、参考文献 ·····················

第 2 页 5 7 8 9 11 14 15 16

3 华东交通大学理工学院课程设计报告

一、任务设计与要求

1、用EDA技术设计并实现8位十六进制频率计,及设计一个基于VHDL的八位十六进制频率计,学习较复杂的数字系统设计方法。书面报告包括工作原理,工作模块图,仿真波形图和问题分析。

2、分别仿真测试模块1,、2和3,在结合模块4完成频率计的完整设计和硬件实现,并给出其测频时序波形及其分析。

3、将频率计改为8位10进制频率计,注意此设计电路的计数器必须是8个4位的10进制计数器。此外注意在测频速度上给予优化。

第 3 页

4 华东交通大学理工学院课程设计报告

二、设计方案介绍

用VHDL语言,完成8位16进制频率计的设计。

根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。测频控制信号可以由一个独立的发生器来产生。

数字频率计的关键组成部分包括一个测频控制信号发生器FTCTRL、计数器COUNTER32B和一个锁存器REG32B,另外包含外电路的信号整形电路、脉冲发生器、译码驱动电路和显示电路。其工作原理如下:FTCTRL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计中的32位二进制计数器COUNTER32B的ENABL使能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进锁存器REG32B中,并由外部的16进制7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。

该实验组要有四个模块组成:测频信号发生器、32位锁存器 、32位计数器以及顶层文件。

第 4 页

5 华东交通大学理工学院课程设计报告

三、 VHDL设计部分

3.1 测频控制电路FTCTRL

设计频率计的关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。控制时钟信号clk取为1Hz,2分频后即可产生一个脉冲宽为1秒的时钟cnt-en,以此作为计数闸门信号。当cnt-en为高电平时,允许计数;当cnt-en由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次cnt-en上升沿到来之前产生零信号ret-en,将计数器清零,为下次计数做准备。

程序代码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY TESTCTL IS

PORT (CLK : IN STD_LOGIC; TSTEN : OUT STD_LOGIC; CLR_CNT : OUT STD_LOGIC; Load : OUT STD_LOGIC ); END TESTCTL;

ARCHITECTURE behav OF TESTCTL IS

SIGNAL Div2CLK : STD_LOGIC;

BEGIN

PROCESS( CLK )

BEGIN

IF CLK'EVENT AND CLK = '1' THEN

Div2CLK <= NOT Div2CLK;END IF;

END PROCESS;

PROCESS (CLK, Div2CLK)

BEGIN

IF CLK = '0' AND Div2CLK = '0' THEN

CLR_CNT <= '1';

ELSE

CLR_CNT <= '0';

END IF;

END PROCESS;

Load <= NOT Div2CLK; TSTEN <= Div2CLK;

END behav;

生成LPM模块的流程:选择File→Creat/_Update→Creat symbol files for current file,再选择Tools→Netlist viewers→RET viewer则可以看到生成的元件模块图。

第 5 页

6 华东交通大学理工学院课程设计报告

EDA课程设计

EDA课程设计

第 6 页

EDA课程设计

7 华东交通大学理工学院课程设计报告

3.2锁存器REG32B

当cnt-en下降沿到来时,将计数器的计数值锁存,这样可由外部的

七段译码器译码并在数码管显示。设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存器的位数应跟计数器完全一样。 程序代码如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY REG IS

PORT

(

clock : IN STD_LOGIC ;

data : IN STD_LOGIC_VECTOR (31 DOWNTO 0); q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0)

);

END REG;

ARCHITECTURE SYN OF REG IS

SIGNAL sub_wire0 : STD_LOGIC_VECTOR (31 DOWNTO 0); COMPONENT lpm_ff GENERIC (

lpm_width : NATURAL;

lpm_fftype : STRING );

PORT (

clock : IN STD_LOGIC ;

q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0); data : IN STD_LOGIC_VECTOR (31 DOWNTO 0) ); END COMPONENT;

BEGIN

q <= sub_wire0(31 DOWNTO 0);

lpm_ff_component : lpm_ff

GENERIC MAP (

LPM_WIDTH => 32,

LPM_FFTYPE => "DFF" )

PORT MAP (

clock => clock,

data => data,

第 7 页

EDA课程设计

8 华东交通大学理工学院课程设计报告

q => sub_wire0 );

END SYN;

生成LPM模块的流程同上,这里不再赘述。观察到的元件模块图如下

EDA课程设计

3.3计数器COUNTER32B

计数器以待测信号作为时钟,清零信号rst到来时,异步清零;cnt-en为高电平时开始计数。计数是以十进制数显示,本文设计了一个简单的频率计,如果要测比较高的频率信号,则将cout的输出位数增加,当然锁存器的位数也要增加。 程序代码如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY CNT IS

PORT

(

clock : IN STD_LOGIC ;

clk_en : IN STD_LOGIC ;

aclr : IN STD_LOGIC ;

q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0); cout : OUT STD_LOGIC

);

END CNT;

ARCHITECTURE SYN OF CNT IS

SIGNAL sub_wire0 : STD_LOGIC ;

SIGNAL sub_wire1 : STD_LOGIC_VECTOR (31 DOWNTO 0);

COMPONENT lpm_counter

GENERIC (

lpm_width : NATURAL;

lpm_direction : STRING );

PORT (

clk_en : IN STD_LOGIC ;

aclr : IN STD_LOGIC ;

clock : IN STD_LOGIC ;

cout : OUT STD_LOGIC ;

q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) ); END COMPONENT;

BEGIN

cout <= sub_wire0;

q <= sub_wire1(31 DOWNTO 0);

lpm_counter_component : lpm_counter

GENERIC MAP (

第 8 页

9 华东交通大学理工学院课程设计报告

LPM_WIDTH => 32,

LPM_DIRECTION => "UP" )

PORT MAP (

clk_en => clk_en,

aclr => aclr,

clock => clock,

cout => sub_wire0,

q => sub_wire1);

END SYN;

同样在这里不再赘述模块生成流程,最后观察到的元件模块图如下:

EDA课程设计

3.4顶层文件

程序代码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY FREQTEST IS

PORT ( CLK : IN STD_LOGIC;

FSIN : IN STD_LOGIC;

CCOUT: OUT STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END FREQTEST;

ARCHITECTURE struc OF FREQTEST IS

COMPONENT TESTCTL

PORT ( CLK : IN STD_LOGIC; TSTEN : OUT STD_LOGIC; CLR_CNT : OUT STD_LOGIC; Load : OUTSTD_LOGIC );

END COMPONENT;

COMPONENT CNT

PORT ( CLOCK : IN STD_LOGIC;

ACLR : IN STD_LOGIC;

CLK_EN : IN STD_LOGIC;

Q : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); COUT : OUT STD_LOGIC ); END COMPONENT;

COMPONENT REG

PORT ( CLOCK : IN STD_LOGIC;

DATA : IN STD_LOGIC_VECTOR(31 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(31

第 9 页

10 华东交通大学理工学院课程设计报告

DOWNTO 0) ); END COMPONENT;

SIGNAL TSTEN1 : STD_LOGIC;

SIGNAL CLR_CNT1 : STD_LOGIC;

SIGNAL Load1 : STD_LOGIC;

SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0);

SIGNAL CARRY_OUT1 : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN

U1 : TESTCTL PORT MAP( CLK =>CLK, TSTEN => TSTEN1, CLR_CNT => CLR_CNT1, Load => Load1 );

U2 : REG PORT MAP( CLOCK => Load1, DATA => DTO1,Q => DOUT);

U3 : CNT PORT MAP(CLOCK => FSIN,ACLR =>

CLR_CNT1,CLK_EN => TSTEN1, Q => DTO1,COUT => CCOUT );

END struc;

将上述3个程序的.vhd文件和生成的.bsf文件复制到顶层文件工程所在的文件夹,再通过上述同样的流程生成元件模块图,如下:

EDA课程设计

第 10

11 华东交通大学理工学院课程设计报告

四、 模拟调试部分

对测频信号发生器文件进行仿真

选择File→new→Vector Wavefor→file→OK;再选择Edit→End Time,设定仿真域的时间为50μs;然后选择View→Utility Window→Node Finder,在Filter框中选中Pins:all,单击list,将出现的所有端口引脚名拉入到波形编辑器的左栏,保存,选择Processing下的Start Simulation,即可得到仿真波形图。

EDA课程设计

EDA课程设计

EDA课程设计

EDA课程设计

对锁存器文件仿真步骤同上述一样,得到仿真波形图如下:

第 11

12 华东交通大学理工学院课程设计报告

对计数器文件仿真,得到如下波形:

EDA课程设计

对顶层文件进行仿真,得到波形如下: a 待测信号频率为2kHz 由:T=1/f,所以T=1/2000=0.0005s=500μs

所设置待测信号周期为500μs,如图:

EDA课程设计

EDA课程设计

b 待测信号频率为500ms200Hz,待测信号周期为

第 12

EDA课程设计

13 华东交通大学理工学院课程设计报告

c待测信号频率为20Hz,待测信号周期为

EDA课程设计

第 13

EDA课程设计

14 华东交通大学理工学院课程设计报告

五、 设计仿真运行过程中遇到的问题及解决措施

在对顶层文件进行元件模块生成时,没有出现模块图。

解决方案:将以上3个程序的.vhd文件和生成的.bsf文件复制到顶层文件工程所在的文件夹,然后再进行模块生成操作,就能顺利进行。 在对顶层文件进行仿真时,在设置FSIN的信号周期为500ms时,无法进行设定?

解决方案:需要将本模块Edit菜单中的End Time时间改为5s。

提高部分如果被测频率降低,则可以通过采用周期测频法,即在待测信号的一个周期内,记录标准频率信号变化的次数,即上升沿的次数N。只需要修改顶层文件程序当中的例化即可

第 14

15 华东交通大学理工学院课程设计报告

六、设计心得

本次课程设计主要用到了多种芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。

通过本次设计,我系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了32位锁存器的使用和中断处理器程序的编程方法。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。

第 15

16 华东交通大学理工学院课程设计报告

七、参考文献

[1] 巴里.威尔金森 编著, 《数字设计基础》(双语教学版)

[2] 潘松 编著,《EDA技术实用教程》 科学出版设

[3] 徐雯娟 编著 《基于VHDL语音的数字电路设计实验指导》

[4] 高振斌等

编著 《EDA实用技术及应用》

第 16

17 华东交通大学理工学院课程设计报告

第 17

更多相关推荐:
工程预算课程设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着工程技术发展的日新日异,工程造价已经成为当今建筑工程领域最为重要的管理环…

c++课程设计总结

课程设计总结经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。在为期近两周的C++课程设计中,我体会颇多…

化工原理课程设计总结

《化工原理课程设计》总结本学期顺利完成了化学工程与工艺专业共100名同学的化工原理课程设计,总体来看学生的工艺计算、过程设计及绘图等专业能力得到了真正有效的提高,可以较好地把理论学习中的分散知识点和实际生产操作…

PLC自动门课程设计心得体会

PLC自动门课程设计心得体会:通过此次C语言程序设计实践本人实在是获益不浅!C语言是上个学期开的课程所以这个学期并没怎么看过当要开始设计的时候还真不知从哪下手!结果第一次的上机我傻坐着不知道该做什么后来就写了几…

课程设计心得体会

课程设计心得体会在初学C语言的一个学期后,学校组织我们进行了C语言实训,尝试编写一些有难度的程序。在为期两周的时间中,同组同学共同的感受是:C语言实训和平时上课所接触的程序是完全不同的,所经受的考验是平时所无法…

综合实践活动课程设计练习题(判断题、填空题、名词解释、简答题)

单选题第1题(3.0)分下列以研究性为主的探究活动的实施程序哪个是正确的√A、产生问题-确定主题-组建小组-制定计划-开展活动-总结成果-展示交流-评价反思B、产生问题--组建小组-确定主题-制定计划-开展活动…

20xx年《管理信息系统》课程设计论文选题

20xx年《管理信息系统》课程设计论文选题一、管理信息系统设计与开发1、IT行业市场情报管理信息系统设计与开发2、某工业企业生产业务处理信息系统设计与开发3、某产品质量管理信息系统设计与开发4、某工业企业设备管…

消防课程设计范文.doc

课程设计课题名称所在班级同组姓名指导教师目录1前言12简介13火灾危险性分析231学生公寓的火灾特点232学生公寓的火灾危险性等级233学生公寓的耐火等级2331建筑物耐火等级的划分2332建筑物耐火等级的选定...

化工原理课程设计范文

化工原理课程设计3题目吸收量为2400mh水吸收丙酮过程填料塔设计教学院专业班级学生姓名学生学号指导教师20xx年12月24日I目录任务书1摘要2第一章绪论311吸收技术概况312吸收设备的发展313吸收过程在...

毕业论文及课程设计参考模版

摘要摘要电信营业厅顾客排队是一个常见的现象为了提高顾客满意度并为实现电信企业转型提供保障必须解决好这个问题而解决该问题的基本目标是平稳波动的顾客需求与电信营业厅有限的服务能力之间的矛盾本文基于排队论和需求管理的...

课程设计排版范本

课程设计课题名称我校顺枫公寓A6栋的消防现状分析与改进专业名称安全工程所在班级安本0803班设计者解燕同组人姜琼学号0860124031008601240212指导教师胡鸿湖南工学院课程设计任务书安全与环境工程...

创新课程设计范例

机械创新设计课程设计院系班级成员指导老师设计题目1年月日多功能平口钳设计方案一设计任务简述多功能平口钳为了实现平口钳的多功能化解决平口钳功能单一的问题设计出一种多功能平口钳其我们将钳口作成燕尾槽结构并配合以不同...

课程设计(518篇)