EDA课程教学设计正弦信号发生器的设计Word文档下载推荐.docx
《EDA课程教学设计正弦信号发生器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA课程教学设计正弦信号发生器的设计Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
(3)连接实验箱上的D/A转换器和示波器,观察正弦波波形
二.设计方案
(1)设计能存储数据的ROM模块,将正弦波的正弦信号数据存储在在ROM中,通过地址发生器读取,将正弦波信号输入八位D/A转化器,在示波器上观察波形
(2)用VHDL编写正弦波信号数据,将正弦波信号输入八位D/A转化器,在示波器上观察波形
计
数
器
8
位
R
O
M
并转串输出
7根地址线
RST
CLK
TLV5620D/A转换
三.设计框图
图1设计框图
信号发生器主要由以下几个部分构成:
计数器用于对数据进行采样,ROM用于存储待采样的波形幅度数值,TLV5620用于将采集的到正弦波数字量变为模拟量,最后通过示波器进行测量获得的波形。
其中,ROM设置为7根地址线,8个数据位,8位并行输出。
TLV5260为串行输入的D/A转换芯片,因此要把ROM中并行输出的数据进行并转串。
四.实现步骤
1.定制ROM
ROM的数据位选择为8位,数据数选择128个。
利用megawizard
plug-in
manager定制正弦信号数据ROM宏功能块,并将上面的波形数据加载于此ROM中。
如图3所示。
图2ROM存储的数据
图3调入ROM初始化数据文件并选择在系统读写功能
2.设计顶层
顶层设计主要是通过编写VHDL语言或设计原理图用于产生计数信号和调用room存储的数据并输出。
在此步骤里要建立EDA工程文件,工程文件结构如图4所示,SIN_CNT中的VHDL代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSIN_GNTIS
PORT(RST,CLK,EN:
INSTD_LOGIC;
ADDR:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDSIN_GNT;
ARCHITECTUREBEHAVIOROFSIN_GNTIS
COMPONENTROMIS
PORT(address:
INSTD_LOGIC_VECTOR(6DOWNTO0);
inclock:
q:
ENDCOMPONENT;
SIGNALQ:
STD_LOGIC_VECTOR(6DOWNTO0);
BEGIN
U:
ROMPORTMAP(address=>
Q,
inclock=>
CLK,
q=>
DOUT);
PROCESS(CLK,RST,EN)
IFRST='
0'
THEN
Q<
="
0000000"
;
ELSIFCLK'
EVENTANDCLK='
1'
IFEN='
=Q+1;
ENDIF;
ENDPROCESS;
ADDR<
=Q;
ENDBEHAVIOR;
工程文件的建立步骤简述如下:
1、新建一个文件夹。
利用资源管理器,新建一个文件夹,如:
E:
\SIN_GNT。
注意,文件夹名不能用中文。
2、输入源程序。
打开QuartusII,选择菜单“File”→“New”,在New窗中的“DeviceDesignFiles”中选择编译文件的语言类型,这里选“VHDLFiles”。
然后在VHDL文本编译窗中键入如图4所示的VHDL程序。
图4Quartusii编辑代码窗口
3、文件存盘。
选择“File”→“Save
As”,找到已设立的文件夹e
:
\SIN_GNT
,存盘文件名应该与实体名一致,即singt.vhd。
当出现问句“Do
you
want
to
create…”时,若选“否”,可按以下的方法进入创建工程流程;
若选“是”,则直接进入创建工程流程,创建工程流程如下:
3.1、建立新工程管理窗。
选择菜单“File”→“NewPrejectWizard”,即弹出工程设置对话框。
点击此框最上一栏右侧的按钮“…”,找到文件夹E:
\SIN_GNT,选中已存盘的文件singt.vhd(一般应该设定顶层设计文件为工程),再点击“打开”,即出现如图5所示设置情况。
其中第一行表示工程所在的工作库文件夹;
第二行表示此项工程的工程名,此工程名可以取任何其它的名,通常直接用顶层文件的实体名作为工程名,第三行是顶层文件的实体名。
3.2、将设计文件加入工程中。
然后点击下方的“Next”按钮,在弹出的对话框中点击“File”栏的按钮,将此工程相关的所有VHDL文件加入进此工程(如果有的话),即得到如图6所示的情况。
工程的文件加入的方法有两种:
第1种是点击右边的“AddAll”按钮,将设定的工程目录中的所有VHD文件加入到工程文件栏中;
第2种方法是点击“…”按钮,从工程目录中选出相关的VHDL文件。
图5为工程文件命名
3.3、选择仿真器和综合器类型。
点击图6的“Next”按钮,这时弹出的窗是选择仿真器和综合器类型的,如果都是选默认的“NONE”,表示都选QuartusII中自带的仿真器和综合器,因此,在此都选默认项“NONE”。
3.4、选择目标芯片。
再次点击“Next”,选择目标芯片。
首先在“Family”栏选芯片系列,在此选“Cyclone”系列,并在此栏下选“Yes”,即选择一确定目标器件。
再按键“Next”,选择此系列的具体芯片:
EP1T3C144C8(图7),按键“Next”后,弹出工程设置统计窗口,以上列出了此项工程的相关设置情况。
图6添加工程文件
图7选择器件芯片类型
3.5、结束设置。
最后按键“Finish”,即已设定好此工程(图8),此工程管理窗主要显示工程项目的层次结构。
图8Quartusii中EDA工程文件结构
对程序进行编译,以测程序是否有错误,最终生成的原理图图9。
图9编译仿真后生成的原理图
4.仿真
仿真就是对设计项目进行一项全面彻底的测试,以确保设计项目的功能和时序特性,以及最后的硬件器件的功能与原设计相吻合。
仿真操作前必须利用QuartusII的波形编辑器建立一个矢量波形文件以作仿真激励。
VWF文件将仿真输入矢量和仿真输出描述成为一波形的图形来实现仿真。
QuartusII允许对整个设计项目进行仿真测试,也可以对该设计中的任何子模块进行仿真测试。
方法是设定为“Simulation
focus”。
仿真设定单元(Simulation
Settings)允许设计者指定该模块的仿真类型,仿真覆盖的时序和矢量激励源等。
Time/Vectors仿真参数设定窗允许设定仿真时间区域,以及矢量激励源。
对工程的编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。
步骤如下:
4.1、打开波形编辑器。
选择菜单File中的New项,在New窗中选“Other
Files”中的“Vector
Waveform
File”,点击OK,即出现空白的波形编辑器。
4.2、设置仿真时间区域。
为了使仿真时间轴设置在一个合理的时间区域上,在Edit菜单中选择“End
Time”项,在弹出的窗中的“Time”窗中键入50,单位选“us”,即整个仿真域的时间即设定为50微秒,点击OK,结束设置。
4.3、存盘波形文件。
选择File中的“Save
as”,将以名为cnt4b.vwf(默认名)的波形文件存入文件夹E:
\sin_gnt\中。
图10工程仿真图形
4.4、输入信号节点。
将计数器计的端口信号节点选入此波形编辑器中。
方法是首先选View菜单中的“UtilityWindows”项的“NodeFinder”选项。
其对话框如图3-21所示,在Filter框中选Pins:
all,然后点击“List”钮。
于是在下方的“NodesFound”窗中出现了设计中的singt工程的所有端口引脚名(如果此对话框中的“List”不显示,需要重新编译一次,即选Processing→StartCompilation,然后再重复以上操作过程)。
用鼠标将重要的端口节点CLK和输出总线信号DOUT都拖到波形编辑窗,点击波形窗左侧的全屏显示钮,使全屏显示,并点击放大缩小钮后,用鼠标在波形编辑区域右键点击,使仿真坐标处于适当位置。
4.5、编辑输入波形(输入激励信号)。
点击时钟名CLK,使之变兰色,再点击左列的时钟设置键,在Clock窗中设置CLK的周期为3us;
所示的Clock窗中的“Duty
cycle”是占空比,可选50,即50%占空比,再对文件存盘。
4.6、总线数据格式设置。
如果点击如图3-22所示的输出信号“DOUT”左旁的“+”,则将展开此总线中的所有信号;
如果双击此“+”号左旁的信号标记,将弹出对该信号数据格式设置的对话框。
在该对话框的“Radix”栏有4。
4.7、启动仿真器。
所有设置完毕,在菜单Processing项选“Start
Simulation”,直到出现“Simulation
was
successful”。
在进行完工程仿真后便可以进行硬件仿真,将程序下载到锁定了引脚的芯片上,芯片锁定图如下:
图11引脚锁定图
图12硬件仿真波形
5.链接DA和波形测试
将FPGA产生的波形数据介入到DA转换芯片上,并设置同步脉冲。
然后通过示波器观察,便可看到如图12和图13的波形图。
图12波形测量1
图13波形测量2
五.总结
这次EDA实验设计历时两个星期,学到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
主要可以从以下两个方面进行总结。
第一在专业知识上:
EDA的学习对数字电路有个很高的要求,通过这次编程学习,使我明白了专业基础知识的重要性和有用性。
同时,软件的使用技巧作为一行基本功需要熟练的掌握,只有既有专业知识,又会动手实践才能把知识学好用好。
第二在综合能力上:
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这次设计也启发了我在以后的学习中一定要耐心、细心、认真,不可粗枝大叶。