EDA技术译码器实验.docx

上传人:b****1 文档编号:10740529 上传时间:2023-05-27 格式:DOCX 页数:17 大小:2.35MB
下载 相关 举报
EDA技术译码器实验.docx_第1页
第1页 / 共17页
EDA技术译码器实验.docx_第2页
第2页 / 共17页
EDA技术译码器实验.docx_第3页
第3页 / 共17页
EDA技术译码器实验.docx_第4页
第4页 / 共17页
EDA技术译码器实验.docx_第5页
第5页 / 共17页
EDA技术译码器实验.docx_第6页
第6页 / 共17页
EDA技术译码器实验.docx_第7页
第7页 / 共17页
EDA技术译码器实验.docx_第8页
第8页 / 共17页
EDA技术译码器实验.docx_第9页
第9页 / 共17页
EDA技术译码器实验.docx_第10页
第10页 / 共17页
EDA技术译码器实验.docx_第11页
第11页 / 共17页
EDA技术译码器实验.docx_第12页
第12页 / 共17页
EDA技术译码器实验.docx_第13页
第13页 / 共17页
EDA技术译码器实验.docx_第14页
第14页 / 共17页
EDA技术译码器实验.docx_第15页
第15页 / 共17页
EDA技术译码器实验.docx_第16页
第16页 / 共17页
EDA技术译码器实验.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA技术译码器实验.docx

《EDA技术译码器实验.docx》由会员分享,可在线阅读,更多相关《EDA技术译码器实验.docx(17页珍藏版)》请在冰点文库上搜索。

EDA技术译码器实验.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2