EDA技术译码器实验.docx
《EDA技术译码器实验.docx》由会员分享,可在线阅读,更多相关《EDA技术译码器实验.docx(17页珍藏版)》请在冰点文库上搜索。
EDA技术译码器实验
昆明理工大学信息工程与自动化学院学生实验报告
(201—201学年第学期)
课程名称:
EDA技术开课实验室:
年月日
年级、专业、班
学号
姓名
成绩
实验项目名称
译码器实验
指导教师
教师评语
该同学是否了解实验原理:
A.了解□B.基本了解□C.不了解□
该同学的实验能力:
A.强□B.中等□C.差□
该同学的实验是否达到要求:
A.达到□B.基本达到□C.未达到□
实验报告是否规范:
A.规范□B.基本规范□C.不规范□
实验过程是否详细记录:
A.详细□B.一般□C.没有□
教师签名:
年月日
一、实验目的
1.学会quartus,modelsim软件的使用。
2.初步认识VerilogHDL语言。
3.掌握3-8译码器原理。
二、实验设备
装有Windows系统和quartusII软件的PC机一台。
三、实验要求
1.理解3-8译码器原理。
2.初步掌握VerilogHDL语言,设计一个3线-8线译码器,真值表如表1所示:
1)设置使能控制端,低电平有效。
2)输出高电平有效。
3)采用Verilog语言的文本输入方式。
4)进行功能仿真与验证。
并用VerilogHDL语言编写3-8译码器代码,调试并仿真。
四、实验原理
译码器原理:
1)译码器简介:
译码电路有二进制译码器,二-十进制译码器,和显示译码器三类。
3-8译码器就属于二进制译码器,其输入的3位二进制代码共有8种状态,这8种状态分别输出线上的高低电平表示。
二进制译码器一般具有n个输入端、2的n次幂个输出端。
在使能输入端为有效电平时,对应每一组输入代码,仅一个输出端为有效电平,其余输出端为无效电平(与有效电平相反)。
有效电平可以是高电平(称为高电平译码),也可以是低电平(称为低电平译码)。
2)3-8译码器真值表:
带En使能输入的3-8译码器真值表如下:
表13-8译码器真值表
五、实验步骤
1.建立工程环境:
1)打开创建工程向导
启动QuartusII,执行菜单命令“File>NewProjectWizard”,打开Introduction对话框。
单击“Next”,进入如图1.1界面。
图1.1工程建立界面
2)在图1.1界面中选择所建立工程的工作目录,输入工程名称、顶层实体名,
●其中第一栏为工程目录,想把自己的工程放在哪,就选择相应根目录。
●第二栏为工程名称,记住工程名称,后面程序中会用到,第三栏默认顶层实体名与工程名一样,不必管。
注:
工程名称可以是任何名字,建议使用和顶层实体名相同的名字。
顶层实体名称必须和顶层文件名字相同!
3)添加所需文件:
继续上面的步骤,Next。
如图1.2。
图1.2添加已有文件
单击Add或AddAll按钮,从其他工作目录中选择所需要的现成的源文件(只是指向该文件位置);如果未加入设计文件,可直接单击“Next”,参见后面文件输入步骤。
此步骤也可以略过,以后再创建设计文件,或者以后再用“Project>Add/RemoveFilesinProject…”命令将其他工作目录中的文件添加到本工程中。
4)选定目标芯片:
继续上面的步骤,点Next,如图1.3。
在“Family”栏中选择“CycloneII”,其它选项默认即可。
图1.3指定目标芯片
在此选目标芯片,本实验箱核心板采用EP2C35F672C8芯片。
当然我们现在做的工作是在软件上仿真,不需要选芯片也可行,到了下一步FPGA实验,需要针对硬件实验时,就必须选好要用的芯片了,选好点Finish。
5)指定第三方对代码进行综合和仿真的工具(需要时)
图1.4综合和仿真工具设置
在安装QuartusII软件时,缺省的情况下安装了综合和仿真工具,也可以选择QuartusII软件支持的其它综合或仿真工具。
在弹出的对话框中,选择适当的工具,或者什么也不选,单击“Next”。
6)完成
在最后一步中,显示了在前面几步中所做选择的信息,如图1.5。
确认无误后单击“Finish”。
图1.5工程建立完成界面
7)完成后如图1.6所示
双击_3todecode可以打开顶层文件。
图1.6工程建立完成
8)执行“Assignments>Settings”菜单命令,弹出“Settings”窗口如图1.7。
图1.7工程设置窗口
●Files——添加和删除文件;
●UserLibraries——添加用户库;
●Device——更改器件系列;
●EDAToolSettings——设置其它EDA工具;
●TimingAnalyzer——定时分析设置
●Simulator——仿真设置:
选择功能仿真或时序仿真
说明:
如果在建立工程时没有加入设计文件,则执行以下本文文件输入步骤:
a)建立一个新文件
用File-New命令,在DeviceDesignFiles标签下选择文件类型为“VerilogHDLFile”。
b)输入HDL语言程序
c)保存文件,文件名与顶层设计实体相同。
在工程环境建立完后,新建的文件自动加入当前工程中。
此处为_3to8code.v。
双击_3to8code.v可以在工程中打开程序。
用File>SaveAs…命令(用AHDL语言编写的文件名后缀为.tdf,用VHDL语言编写的文件名后缀为.vhd,用VerilogHDL语言编写的文件名后缀为.v)。
2.设计的编译
1)打开编译器窗口
执行“Processing>CompilerTool”命令。
2)编译器选项设置(此处默认即可,具体设置略过)
用以控制编译过程:
指定目标器件系列、CompilationProcess设置、Analysis&Synthesis设置、Fitter设置等——所有选项通过Settings对话框进行设置。
打开Settings对话框的两种方法:
方法一:
执行“Assignments>Settings”命令;
方法二:
单击工具条上的Settings
按钮。
3)进行分析综合(分析综合窗口见下页),单击编译器上的StartAnalysis&Synthesis
快捷按钮,单击Report出现分析报告。
创建工程数据库,检查语法错误,设计文件逻辑综合
说明:
本次实验只进行功能仿真,可以只进行分析综合,不需要进行全编译。
进行分析和综合有3种方法:
方法一:
在编译器窗口中,单击StartAnalysis&Synthesis按钮;
方法二:
执行“Processing>Start>StartAnalysis&Synthesis”命令;
方法三:
单击工具条上的StartAnalysis&Synthesis
快捷按钮。
图1.8分析综合结果窗口
●查看message窗口,检查错误
所有信息、错误和警告会在自动打开的Message窗口中显示:
Ø在一条消息上双击左键,或单击右键,然后从弹出菜单中选择“Locate>LocateinDesignFile”,可给错误信息定位;
Ø选择“Help”,可查看错误信息的详细说明。
●阅读编译报告
Ø如果编译报告窗口已关闭,单击快捷按钮
可以打开编译报告。
Ø在编译报告左边窗口点击要查看部分前的加号,然后选择要查看的部分。
4)启动全编译过程:
说明:
此过程包含布局布线、延时、编程下载文件生成、第三方文件输出等,在本功能仿真中可以不执行。
此过程耗时比单独分析综合要慢得多;
执行“Processing>StartCompilation”命令,或单击工具条上的全编译快捷按钮。
在编译过程中,自动显示状态窗口、消息窗口和编译报告窗口。
3.设计的仿真验证
1)建立一个仿真文件(.vwf)
a)执行File>New命令
在New对话框中选择Verification/DebuggingFiles标签,文件类型选择“VectorWaveformFile”(图1.9);单击OK,则打开一个空的波形编辑器窗口(图1.10)。
图1.9建立仿真.vwf文件
图1.10波形编辑器窗口
在标签栏按右键选择“DetachWindow”可以使波形窗口放大,方便设置激励波形。
b)设置仿真的结束时间(一般根据输出信号的时钟周期来设置)
默认为1s,可根据需要用Edit>EndTime命令设置(如这里设置为100s)
c)设置网格间距(一般设置为与输入时钟信号的时钟周期相同)
用Edit>GridSize命令(如这里设置为1s)
d)保存文件
执行“File>SaveAs…”命令,仿真文件名为与工程文件名(_3to8decode)同名,后缀为.vwf,并选中“Addfiletocurrentproject”复选框,将其加入到本工程中。
2)在波形文件中添加节点
a)查找设计中的节点名(有两种方法)
方法一:
执行“Edit>Insert>InsertNodeorBus”命令,弹出“InsertNodeorBus”界面(图1.11);
方法二:
在波形编辑器左边Name列的空白处单击右键,在弹出菜单中选择“InsertNodeorBus…”命令,或双击左键,则弹出对话框InsertNodeorBus,在其中选择“NodeFinder…”按钮。
图1.11波形图中添加观测点
b)列出设计中的所有节点名
在NodeFinder界面中(图1.12),在Filter列表中选择Pins:
all,在Named栏中键入“*”,然后单击List按钮,则在“NodesFound”中会出现所有节点名。
图1.12NodeFinder窗口
c)选择节点加入波形文件(如图1.12)
在NodeFound栏中选择要加入波形文件中的节点(可用Shift键或Ctrl键选择多个连续或不连续的节点,此处选择A3,A2,A1,E,Y节点),单击右箭头,将所选择节点送入“SelectedNodes”栏中。
单击“OK”,则所选的信号和组出现在波形编辑器中(见图1.13)。
图1.13观察信号在波形编辑窗口中的显示
注:
总线信号最好不要选择单个信号,而是选择一组信号!
一般将输入信号放在波形编辑器中的上方,输出信号放在下方:
便于观察波形!
未编辑的输入信号波形默认为低电平;
输出信号和隐含节点默认为未定义(X)电平。
图1.14波形编辑图形工具
d)信号波形输入
在波形编辑器中选择某输入节点,单击窗口左部的图形工具按钮,编辑整个波形;或拖动鼠标选定信号在某个时间段的区域,单击图形工具按钮;或在选中区域上单击右键,在Value菜单中选择需要设置的值,编辑该段波形。
在图1.14中单击
图标,分别以1s,2s,4s定义A1、A2、A3(如图1.15所示)。
选定E信号从零开始的某一段,单击
图标,置为高电平;
图1.15输入信号时钟设置
输入信号设置完成后如图1.16所示。
图1.16输入信号设置
3)进行仿真
a)指定仿真器设置
Ø执行“Assignments>Settings…”命令,打开Settings对话框。
Ø在Category列表中选择SimulatorSettings,则显示Simulator页面。
Ø若要进行功能仿真,则在Simulation栏中选择Functional;若要进行时序仿真,则在Simulation栏中选择Timing。
此处选择Functional。
Ø指定仿真文件,这里为_3to8decode.vwf。
Ø执行“Processing>GenerateFunctionalSimulationNetlist”命令,生成网表。
Ø执行“Processing>StartSimulation”命令,开始仿真。
Ø仿真完后,选择Y节点,右键Properties把Radix改为Binary可以更好的观察结果。
图1.17仿真器设置
4)仿真结果分析
仿真结束时,出现仿真成功提示框。
分析仿真结果是否符合设计要求,如果验证正确,选择“File/SaveCurrentReportSectionAs”保存仿真结果,以默认工程名_3to8decode保存为.vwf格式。
六、实验总结
本次实验是实现基于VHDL语言设计译码器,这个实验让我了解了VHDL语言的基本特点,并且初步熟悉了QuartusII输入设计的全过程,对项目文件生成、编译、管脚分配以及时序仿真操作有了一定的认知。
七、程序代码
module_3to8decode(Y,E,A);
output[7:
0]Y;//输出信号
input[2:
0]A;//输入信号
inputE;//输入使能
assignY=(E==0)?
(1‘b1<8’b00000000;//移位操作
Endmodule