文档视界 最新最全的文档下载
当前位置:文档视界 › verilog实验指导

verilog实验指导

一、ISE软件的基本介绍

1、ISE用户界面

ISE的界面如图1-1所示,由上到下主要分为标题栏、菜单栏、工具栏、工程管理区、源文件编辑区、过程管理区、信息显示区、状态栏等8部分。

标题栏:主要显示当前工程的名称和当前打开的文件名称。

菜单栏:主要包括文件(File)、编辑(Edit)、视图(View)、工程(Project)、源文件(Source)、操作(Process)、窗口(Window)和帮助(Help)等8个下拉菜单。其使用方法和常用的Windows软件类似。

工具栏:主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在ISE中的操作。在工程管理中,此工具栏的运用极为频繁。

工程管理区:提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(Source View),快照视图(Snapshot View)和库视图(Library View)。其中源文件视图比较常用,显示了源文件的层次关系。快照是当前工程的备份,设计人员可以随时备份,也可以将当前工程随时恢复到某个备份状态。快照视图用于查看

当前工程的快照。执行快照功能的方法是选择菜单项Project | Take Snapshot。库视图则显示了工程中用户产生的库的内容。

源文件编辑区:源文件编辑区提供了源代码的编辑功能。

过程管理区:本窗口显示的内容取决于工程管理区中所选定的文件。相关操作和FPGA设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。对某个文件进行了相应的处理后,在处理步骤的前面会出现一个图标来表示该步骤的状态。

信息显示区:显示ISE中的处理信息,如操作步骤信息、警告信息和错误信息等。信息显示区的下脚有两个标签,分别对应控制台信息区(Console)和文件查找区(Find in Files)。如果设计出现了警告和错误,双击信息显示区的警告和错误标志,就能自动切换到源代码出错的地方。

状态栏:显示相关命令和操作的信息。

2.ISE菜单的基本操作

ISE所有的操作都可通过菜单完成,下面简要介绍ISE的菜单命令以及功能。(1)File菜单

File菜单的命令包括:New Project、Open Project、Open Examples、Close Project、Save Project As、New、Open、Save、Save As、Save All、Print Preview、Print、Recent Files、Recent Projects以及Exit等。

New Project命令:用于新建工程,是开始设计的第一步。ISE会为新建的工程创建一个和工程同名的文件夹,专门用于存放工程的所有文件。

Open Project命令:用于打开已有的ISE工程。高版本的ISE可以打开低版本的工程,但需要版本转换,该转换是单向的、不可逆的,因此需要做好版本备份。低版本的ISE不能打开高版本的ISE工程。

Open Examples命令:用于打开ISE提供的各种类型的示例。

Close Project命令:关闭当前工程。如果关闭前未保存文件,ISE会提示用户保存后再退出。

Save Project As命令:可将整个工程另存为其他名字的工程,在大型开发中,常使

用该命令来完成版本备份。

New命令:用于新建源文件,可生成原理图、符号以及文本文件。文本文件另存为时可修改其后缀名,以生成.v或.vhd的源文件。

Open命令:用于打开所有Xilinx所支持的文件格式,便于用户查看各类文件资源。Save、Save As以及Save All命令:分别用于保存当前源文件、另存为当前源文件以及保存所有源文件。用户要在开发当中养成及时保存文件的习惯,避免代码丢失。Print Preview命令:用于打印预览当前文件,Print用于打印当前文件。

Recent Files命令:用于查看最近打开的文件。

Recent Projects命令:用于查看最近打开的工程。

Exit命令:用于退出ISE软件。

(2)Edit菜单

Edit菜单的命令包括:Undo、Redo、Cut、Copy、Paste、Delete、Find、Find Next、Find in Files、Language Templates、Select All、Unselect All、Message Filters、Object Properties以及Preference等,大多数命令用于源代码开发中。

Undo命令:用于撤销当前操作,返回到前一状态。

Redo命令:是Undo命令的逆操作,用于恢复被撤销的操作。

Cut命令:剪贴选中的代码, 快捷键为“CRTL+X”。

Copy命令:复制选中的代码, 快捷键为“CRTL+C”。

Paste命令:粘贴剪贴和复制的代码, 快捷键为“CRTL+V”。

Delete命令:删除选中的代码。Find命令:查找选中的文字,或寻找在其输入框中输入的内容,快捷键为“CRTL+F”。

Find Next命令:寻找下一个要查找的内容,并跳至相应的位置,快捷键为“F3 ”。Language Templates命令:可打开语言模版,里面有丰富的学习资料,是非常完整的HDL语言帮助手册,其地位类似于VisualC++的MSDN。

Select All命令:选中所有的代码,其快捷键为“CRTL+A”。

Unselect All命令:撤销已选中的全部代码,是Select All的逆操作。

Message Filter命令:过滤消息,只显示用户期望的消息。

Preference命令:用于设定ISE的启动参数以及运行参数,有着众多的设置项,最常用的就是第三方EDA软件的关联设置,将在第4.5节详细介绍。

(2)View菜单

View菜单主要管理ISE软件的视图,不涉及FPGA开发中的任何环节,其中常用的命令有Layout Horizontally、Layout Vertically以及Restore Default Layout。

Layout Horizontally命令:将水平地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。

Layout Vertically命令:将垂直地排列ISE主界面中过程管理区、过程管理区以及代码编辑区等主要栏目。

Restore Default Layout命令:将恢复ISE默认的主界面布局。

(3)Project菜单

Project菜单包含了对工程的各个操作,是设计中最常用的菜单之一,包括New Source、Add Source、Add Copy of source、Cleanup Project Files、Toggle Paths、Archive、Take Snapshot、Make Snapshot Current、Apply Project Properties以及Source Control命令。

New Source命令:用于向工程中添加源代码,可以添加HDL源文件、IP Core以及管脚和时序约束文件。

Add Source命令:将已有的各类源代码文件加入到工程中,Verilog模块的后缀为.v,VHDL模块的后缀为.vhd,IP core源文件为.xco文件或.xaw文件,约束文件的后缀为.ucf。

Add Copy of source命令,将目标文件拷贝一份添加到工程中。

Cleanup Project Files命令:用于清空综合和实现过程所产生的文件和目录。如果在EDIF设计模式中,只清空实现过程所产生的文件。

Toggle Paths命令:用于显示或隐藏非工程文件夹中的远端源文件的路径;Archive命令:用于压缩当前工程,包括所有的文件,默认压缩类型为.zip格式。Take Snapshot命令:用于产生一个工程快照,即当前目录和远程资源的一个只读记录,常用于版本控制。

Make Snapshot Current命令:用户恢复快照覆盖当前工程。由于该命令会将当前工程删除,所以使用前一定要做好数据备份工作。

Apply Project Properties命令:应用工程属性,会提示用于选择相应工程。Source Control常用于代码的导入和导出,有Export和Import两个子命令。

(4)Source菜单

Source菜单主要面向工程管理区,包含了对资源文件的各个操作,每个命令的操作也都可以在工程管理区单击右键弹出的对话框中点击实现,包括:Open、Set as Top Module、Use SmartGuide、New Partition、Delete Partition、Partition properties、Partition Force、Remove、Move to library以及Properties等命令。

Open命令:可打开所有类型的源文件,包括.v、.vhd、.xco、.xaw以及.ucf等格式。Set as Top Module命令:用于将选中的文件设置成顶层模块。只有设置成顶层模块,才能对其综合、实现以及生成相应的二进制比特流文件。

Use SmartGuide命令:允许用户在本次实现时利用上一次实现的结果,包括时序约束以及布局布线结果,可节省实现的时间,但前提是工程改动不大。

New Partition命令:新建分区,常用于区域约束。

Delete Partition命令:删除区域约束的分区

Partition properties命令:可设置分区属性,详细说明刻参考4.4.4节内容。

Partition Force命令:包含“Force Synthesis Out-of-data”和“Force Implement Design Out-of-data”两个指令,分别用于分区综合和增量设计。

Remove命令:把选中的文件从工程中删除,但仍保留在计算机硬盘上。

Move to library命令:将选中的源文件移动到相应的库中,以便建立用户文件库。Properties命令:查看源文件属性,有Synthesis/Implementation Only、Simulation Only以及Synthesis/Imp+ Simulation三种类型,其中Simulation Only类文件只能仿真,不能被综合。

(5)Process菜单

Process菜单包含了工程管理区的所有操作,每个命令的操作也都可以在过程管理区点击相应的图标实现,包括:Inmolement Top Module、Run、Rerun、Rerun All、Stop、Open Without Updating 以及Properties等命令。

Inmolement Top Module命令:完成顶层模块的实现过程。

Run命令:在工程过程栏,选中不同的操作,点击改命令,可分别启动综合、转换、映射、布局布线等过程。

Rerun命令:重新运行Run指令执行的内容。

Rerun All命令:重新运行所有Run指令执行的内容。

Stop命令:停止当前操作,可中止当前操作,包括综合和实现的任一步骤。

Open Without Updating命令:改指令用于打开相应上一次完成的综合或实现过程所产生的文件。

Properties命令:在工程过程栏,选中不同的操作,点击该命令,可设置不同阶段的详细参数。

(6)Windows菜单

Windows菜单的主要功能是排列所有窗口,使其易看易管理。通过本菜单可以看到当前打开的所有窗口,并能直接切换到某个打开的窗口。由于各命令操作简单,不再介绍。

(7)Help菜单

Help菜单主要提供ISE所有帮助以及软件管理操作,包括:Help Topics、Software

Manuals、Xilinx on the Web、Tutorials、Update Software Product Configuration、Tip of the Day、WebUpdata以及About命令。

Help Topics命令:点击后,将自动调用IE浏览器打开ISE的帮助文档。

Software Manuals命令:点击后,将自动打开PDF文件,通过超链接到用户感兴趣的软件使用文档,其内容比网页形式的帮助文档要丰富。

Xilinx on the Web命令:包括完整的Xilinx网络资源,可根据需要点击查看链接。Tutorials 命令:包括本地快速入门ISE的说明文档和Xilinx网站的入门教学内容,可点击查看。

Update Software Product Configuration 命令:用于更新ISE软件的注册ID,如果试用版用户在试用期间购买了正版软件,不用卸载再重新安装,只需要通过该命令更换ID即可。

Tip of the Day命令:每天提示,可设置或关闭在每次启动ISE时,弹出对话框,列出ISE的最新功能和一个应用技巧。

WebUpdata命令:点击该命令,可自动连接到Xilinx的官方网站,下载最近的软件包并提示用户安装。

About命令:点击该命令将弹出ISE的版本,包括主版本和升级号以及注册ID。

二、HDL代码输入

1、新建工程

首先打开ISE,每次启动时ISE都会默认恢复到最近使用过的工程界面。当第一次使用时,由于此时还没有过去的工程记录,所以工程管理区显示空白。选择File|New Project选项,在弹出的新建工程对话框中的工程名称中输入“one2two”。在工程路径中单击Browse按键,当工程放到指定目录,如图2-1所示。

图2-1

然后点击“Next”进入下一页,选择所使用的芯片类型以及综合、仿真工具。计算机上所安装的所有用于仿真和综合的第三方EDA工具都可以在下拉菜单中找到,如图2-2所示。在图中,我们选用了Virtex4-10芯片,并且指定综合工具为XST,仿真工具选为ISE Simulator。

图2-2

再点击“Next”进入下一页,可以选择新建源代码文件,也可以直接跳过,进入下一页。第4页用于添加已有的代码,如果没有源代码,点击“Next”,进入最后一页,单击确认后,就可以建立一个完整的工程。

4.2.2 代码输入

在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,会弹出如图2-3所示的New Source对话框。

图2-3

在代码类型中选择Verilog Module选项,在File Name文本框中输入compare作为文件名,单击Next进入端口定义对话框,如图2-4所示。

其中Module Name就是输入的“compare”,下面的列表框用于对端口的定义。“Port Name”表示端口名称,“Direction”表示端口方向(可以选择为input、output

或inout),MSB表示信号的最高位,LSB表示信号的最低位,对于单位信号的MSB 和LSB不用填写。定义了模块端口后,单击“Next”进入下一步,点击“Finish”按键完成创建。这样,ISE会自动创建一个Verilog模块的例子,并且在源代码编辑区内打开。简单的注释、模块和端口定义已经自动生成,所剩余的工作就是在模块中实现代码。

三、基于Xilinx XST的综合

所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件。XST内嵌在ISE3以后的版本中,并且在不断完善。此外,由于XST是Xilinx公司自己的综合工具,对于部分Xilinx芯片独有的结构具有更好的融合性。

在过程管理区双击Synthesize-XST,如图3-1所示,就可以完成综合。并且能够给出模块设计的基本情况和初步的资源消耗情况等。图3-2给出了模块所占用的资源。

综合可能有3种结果:如果综合后完全正确,则在Synthesize-XST前面有一个打钩的绿色小圈圈;如果有警告,则出现一个带感叹号的黄色小圆圈,如本例所示;如果有错误,则出现一个带叉的红色小圈圈。综合完成之后,可以通过双击View RTL Schematics来查看RTL级结构图,察看综合结构是否按照设计意图来实现电路。

图3-1

图3-2

四、基于ISE的仿真

在代码编写完毕后,需要借助于测试平台来验证所设计的模块是否满足要求。ISE提供了两种测试平台的建立方法,一种是使用HDL Bencher的图形化波形编辑功能编写,另一种就是利用HDL语言。由于后者使用简单、功能强大,这里主要介绍基于Verolog语言的测试平台建立方法。

首先在工程管理区将“Sources for”设置为Behavioral Simulation,在任意位置单击鼠标右键,并在弹出的菜单中选择“New Source”命令,然后选中“Verilog Test Fixture”类型,输入文件名为“comparetest”,再点击“Next”进入下一页。这时,工程中所有Verilog Module的名称都会显示出来,设计人员需要选择要进行测试的模块。用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键,ISE会在源代码编辑区自动显示测试模块的代码框架。

由此可见,ISE自动生成了测试平台的完整架构,包括所需信号、端口声明以及模块调用的完成。所需的工作就是在initial…end模块中的“// Add stimulus here”后面添加测试向量生成代码。

完成测试平台后。在工程管理区将“Sources for”选项设置为Behavioral Simulation,这时在过程管理区会显示与仿真有关的进程,如图4-1所示。

图4-1

选中图4-1中Xilinx ISE Simulator下的Simulate Behavioral Model项,点击鼠标右键,选择弹出菜单的Properties项,会弹出如图4-2所示的属性设置对话框,最后一行的Simulation Run Time就是仿真时间的设置,可将其修改为任意时长。

图4-2

仿真参数设置完后,就可以进行仿真了,直接双击ISE Simulator软件中的Simulate Behavioral Model,则ISE会自动启动ISE Simulator软件,并得到仿真结果,从中可以看到设计达到了预计目标。

实验项目Verilog组合逻辑设计实验指导书

电子科技大学计算机科学与工程学院 实验指导书 实验名称Verilog组合逻辑设计 电子科技大学教务处制表

一、概述 本实验使用Xilinx ISE软件和Verilog语言进行组合逻辑的设计与实现。实验内容包括 1.3-8译码器的设计和实现。 2.4位并行进位加法器的设计和实现。 3.两输入4位多路选择器的设计和实现。 实验要求如下: 1.采用Verilog语言设计,则使用门级方式进行描述。 2.编写仿真测试代码。 3.编写约束文件,使输入、输出信号与开发板的引脚对应。 4.下载到FPGA开发板,拨动输入开关,观察Led灯的显示是否符合真值表。 二、实验原理: 1.74x138译码器是输出低有效的3-8译码器。表1所示为74x138译码器的真值表。

12_2_ 0_ 1_ 2_ 3_ 4_ 5_ 6_ 7_ G G G A L G B L Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G Y L C B A G =?? =??? =??? =??? =??? =??? =??? =??? =??? 根据上述函数表达式,可画出逻辑电路图为。 图1 3-8译码器的逻辑电路图 2. 数据选择器的逻辑功能是根据地址选择端的控制,从多路输入数据中选择一路数据输出。因此,它可实现时分多路传输电路中发送端电子开关的功能,故又称为复用器(Multiplexer),并用MUX来表示。 表2 2输入1位多路选择器的真值表 数据输入 选择控制S 输出Y D0 D1 0 0 0 0

数字系统设计与VHDL实验指导书

实验一 QuartusⅡ9.0快速入门 一、实验目的 通过实验让学生了解,熟悉和掌握QuartusⅡ9.0开发软件的使用方法及Verilog HDL的编程方法。学习简单时序电路的设计和硬件测试。 二、实验原理 在LED1~LED8引脚上周期性的输出流水数据,如原来输出的数据是11111100 则表示点亮LED1,LED2,流水一次后,输出地数据应该为11111000,而此时应该点亮LED1~LED3三个发光二极管,就可以实现LED流水灯。为了观察方便,流水速率最好在2Hz左右,在MagicSOPC核芯板上有一数字信号源,可选择CLOCK3的2HZ时钟信号源源作为流水灯的时钟源。 三、主要实验设备 计算机和MagicSOPC实验箱。 四、实验内容 本实验的内容是建立可用于控制LED流水灯的简单硬件电路,要求在MagicSOPC试验箱上实现LED1~LED8发光二极管流水灯显示。实验步骤如下: 1.启动Quartus II建立一个空白工程,然后命名为led_water.qpf。 2.新建Verilog HDL 源程序文件ledwater.v,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。 程序清单: module ledwater(led,clk); //模块名ledwater output[7:0] led; //定义LED输出口 input clk; //定义时钟输出口 reg[8:0] led_r; //定义输出寄存器 assign led = led_r[7:0]; //寄存器输出 always @(posedge clk) //在时钟上升沿触发进程 begin led_r <= led_r <<1; //是,则输出左移一位 if(led_r == 9'd0) //循环完毕吗?

Verilog HDL十进制计数器实验Quartus90非常详细的步骤

实验二十进制计数器实验该实验将使用Verilog 硬件描述语言在DE2-70 开发平台上设计一个基本时序逻辑电路——1 位十进制计数器。通过这个实验,读者可以了解使用Quartus 工具设计硬件的基本流程以及使用Quartus II 内置的工具进行仿真的基本方法和使用SignalTap II 实际观察电路运行输出情况。SignalTap II 是Quartus 工具的一个组件,是一个片上的逻辑分析仪,可以通过JTAG 电缆将电路运行的实际输出传回Quartus 进行观察,从而省去了外界逻辑分析仪 时的很多麻烦。 实验步骤 3.1建立工程并完成硬件描述设计 1. 打开Quartus II 工作环境,如图3-1 所示。 图3-1 Quartus II工作环境界面 2. 点击菜单项File->New Project Wizard 帮助新建工程。参看图3-2。 图3-2 选择New Project Wizard 打开Wizard 之后,界面如图3-3 所示。点击Next,如图3-3。 第23 页共208 页

图3-3 New Project Wizard界面 3. 输入工程工作路径、工程文件名以及顶层实体名。 这次实验会帮助读者理解顶层实体名和工程名的关系,记住目前指定的工程名与顶层 实体名都是Counter10,输入结束后,如图3-4 所示。点击Next。 图3-4输入设计工程信息 4. 添加设计文件。界面如图3-5 所示。如果用户之前已经有设计文件(比如.v 文件)。

那么再次添加相应文件,如果没有完成的设计文件,点击Next 之后添加并且编辑设计文件。 图3-5添加设计文件 5. 选择设计所用器件。由于本次实验使用Altera 公司提供的DE2-70 开发板,用户必须选择与DE2-70 开发板相对应的FPGA 器件型号。 在Family 菜单中选择Cyclone II,Package 选FBGA,Pin Count 选896,Speed grade 选6,确认Available devices 中选中EP2C70F896C6,如图3-6。 图3-6选择相应器件 6. 设置EDA 工具。设计中可能会用到的EDA 工具有综合工具、仿真工具以及时序

FPGA——Verilog时序电路实验报告

Verilog 设 计 实 验 报 告 唐睿电子工程2011301200062

武汉大学电工电子实验教学示范中心 集成电路设计实验实验报告 :学院:电子信息学院专业:电子信息工程2014 年 5 月7 日 实验名称时序逻辑电路基础指导教师曹华伟姓名唐睿年级2011级学号2011301200062 成绩 一、预习部分 1.实验目的(预期成果) 2.实验基本原理(概要) 3.主要仪器设备(实验条件,含必要的元器件、工具) 1).实验目的 1.掌握时序逻辑电路的实现方法; 2.了解时序电路的仿真与测试; 3.熟悉并理解硬件描述语言; 4.用硬件描述语言实现基本时序电路基础的电路; 5.在DE2-115开发板中验证并测试其时序逻辑电路功能是否实现。 2).实验基本原理 1. D触发器工作原理:SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和 清零端,低电平有效。当SD=1且RD=0时(SD的非为0,RD的非为1,即在两个控制端口分别从外部输入的电平值,原因是低电平有效),不论输入端D为何种状态,都会使Q=1,Q非=0,即触发器置1;当SD=0且RD=1(SD的非为1,RD的非为0)时,Q=0,Q非=1,触发器置0,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。 2. 时序逻辑电路(Sequential Logic Circuit)输出不仅取决于当前输入信号,而且取决于 电路之前所处的状态。基本的时序电路单元有触发器(D、JK、T 等触发器)、锁存器、计数器等。 3. VHDL 中,主要程序分析,时序电路通过process(clk)和if clk’event and clk = ‘1’ then 边沿检测语句实现触发器风格的电路;具有非完分支的if、case 语句形成锁存器电路。例如: process(clk)begin ――D 触发器 if (clk’event and clk = ‘1’) then

电子科技大学_数字逻辑综合实验_4个实验报告_doc版

电子科技大学计算机学院标准实验报告 (实验)课程名称数字逻辑综合实验 xxx 20160xxxxxxxxx 电子科技大学教务处制表

电子科技大学 实验报告 1 学生姓名:xxx 学号: 指导教师:吉家成米源王华 一、实验项目名称:中小规模组合逻辑设计 二、实验目的: 1.掌握非门、或门、与非门、异或门、数据选择器的逻辑功能。 2.掌握常有逻辑门电路的引脚排列及其使用方法。 3.采用中小规模逻辑门进行组合逻辑设计,掌握组合逻辑的设计方法。三、实验内容: 1.逻辑输入采用实验箱的K1-K11,逻辑输出接L1-L10。测试实验箱上的HD74LS04P(非门)、SN74LS32N(或门)、SN74LS00N(与非门)、SN74HC86N(异或门)、SN74HC153(数据选择器、多路复用器)的逻辑功能。 2.采用小规模逻辑器件设计一位数据比较器:设一位数据比较器的输入为A、B,比较A>B,A=B,A

图1 74LS04的逻辑符号和引脚排列2.74LS32(或门)的逻辑符号、引脚排列如下图所示。 图2 74LS32的逻辑符号和引脚排列 3.74LS00

图3 74LS00逻辑符号和引脚排列 4.一块74HC86芯片上有4个异或门。异或门的逻辑功能如表4所示,74HC86(异或门)的逻辑符号、引脚排列如图4所示。 图4 74HC86逻辑符号和引脚排列 5.74HC153芯片上有两个4选1数据选择器。两个数据选择器使用公共的选择输入端B、A ,其它输入端和输出端是独立的。74HC153(数据选择器、多路复用器)的引脚排列如下图所示。

合工大FPGA实验报告

《电子工程师基本硬件实践技能训练(下)》 实验报告 系(院):计算机与信息学院 专业:通信工程 班级: 姓名: 学号: 指导教师:许良凤吴从中周红平 学年学期: 2018 ~ 2019 学年第一学期 2018年12月23日

实验一 7段数码显示译码器设计 一、实验目的 (1)学习使用Verilog HDL语言设计简单组合逻辑电路。 (2)学习使用case语句来描述真值表。 二、实验设备与器材 GW-PK2 EDA实验箱一台。 三、实验内容及实验步骤 (1)用Verilog HDL设计一个共阴数码管的译码电路,用case语句描述7段译码器的真值表。 (2)编译、综合、适配、下载,验证结果。 (3)进行功能仿真。 (4)设计提示:建议选实验电路模式6,用数码8显示译码输出(PIO46~PIO40),键8、键7、键6、键5四位控制输入,硬件验证译码器的工作性能。注意,在仿真中,4位输入都必须用总线方式给数据。 具体步骤: (1)用文本方式输入设计文件并存盘。 (2)选择目标器件并编译、综合。 (3)进行时序仿真。 (4)锁定引脚,并编译、综合。 (5)在实验箱上选择模式6。 (6)将数据下载到实验箱。 (7)在实验箱上验证7段显示数码器的功能。 实验代码如下 module DECL7S (A,LED7S); input[3:0] A; output[6:0] LED7S; reg[6:0] LED7S; always@(A) case(A) 4'b0000 : LED7S <= 7'B0111111; 4'b0001 : LED7S <= 7'B0000110; 4'b0010 : LED7S <= 7'B1011011; 4'b0011 : LED7S <= 7'B1001111; 4'b0100 : LED7S <= 7'B1100110; 4'b0101 : LED7S <= 7'B1101101; 4'b0110 : LED7S <= 7'B1111101; 4'b0111 : LED7S <= 7'B0000111; 4'b1000 : LED7S <= 7'B1111111; 4'b1001 : LED7S <= 7'B1101111;

Verilog实现流水线CPU实验报告

实验报告 课程名称:__ 数字系统设计实验Ⅱ__指导老师:成绩:_______ 实验名称:流水线MIPS微处理器设计实验类型:____设计型__ __ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的 1.了解提高CPU性能的方法。 2.掌握流水线MIPS微处理器的工作原理。 3.理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。 4.掌握流水线MIPS微处理器的测试方法。 二、实验任务 设计一个32位流水线MIPS微处理器,具体要求如下: 1.至少运行下列MIPS32指令。 (1)算术运算指令:ADD、ADDU、SUB、SUBU、ADDI、ADDIU。 (2)逻辑运算指令:AND、OR、NOR、XOR、ANDI、ORI、XORI、SLT、SLTU、SLTI、SLTIU。 (3)移位指令:SLL、SLLV、SRL、SRLV、SRA。 (4)条件分支指令:BEQ、BNE、BGEZ、BGTZ、BLEZ、BLTZ。 (5)无条件跳转指令:J、JR。 (6)数据传送指令:LW、SW。 (7)空指令:NOP。 2.采用5级流水线技术,对数据冒险实现转发或阻塞功能。 3.在XUP Virtex-Ⅱ Pro 开发系统中实现MIPS微处理器,要求CPU的运行速度大于 25MHz。 三、实验原理 1.总体设计 流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用于高档CPU的架构中。根据MIPS处理器的特点,将整体的处理过程分为取指令(IF)、指令译码(ID)、执行(EX)、存储器访问(MEM)和寄存器会写(WB)五级,对应多周期的五个处理阶段。如图3.1所示,一个指令的执行需要5个时钟周期,每个时钟周期的上升沿来临时,此指令所代表的一系列数据和控制信息将转移到下一级处理。

《FPGA设计与应用》实验指导书全(Verilog版)

《FPGA设计与应用》实验指导书 某某编 武汉理工大学华夏学院 2011年9月

前言 一、实验课目的 数字电路与系统设计实验课是电子工程类专业教学中重要的实践环节,包括了ISE开发环境基本操作及FPGA的基本原理、基带传输系统的设计、Uart串口控制器电路的设计、PS/2接口的设计、VGA显示接口设计。要求学生通过实验学会正确使用EDA技术,掌握FPGA器件的开发,熟练使用ISE开发环境,掌握Verilog语言的编程,掌握数字电路和系统的设计。 通过实验,使学生加深对课堂专业教学内容的理解,培养学生理论联系实际的能力,实事求是,严谨的科学作风,使学生通过实验结果,利用所学的理论去分析研究EDA技术。培养学生使用Basys 2开发板的能力以及运用实验方法解决实际问题的能力。 二、实验要求: 1.课前预习 ①认真阅读实验指导书,了解实验内容; ②认真阅读有关实验的理论知识; ③读懂程序代码。 2.实验过程 ①按时到达实验室; ②认真听取老师对实验内容及实验要求的讲解; ③认真进行实验的每一步,观察程序代码与仿真结果是否相符; ④将实验过程中程序代码和仿真结果提交给老师审查; ⑤做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。 3.实验报告 ①按要求认真填写实验报告书; ②认真分析实验结果; ③按时将实验报告交给老师批阅。

三、实验学生守则 1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西; 2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件; 3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线; 4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。

Basys3实验指导手册

Basys3实验指导手册 1. 引言 Basys3是一款基于Xilinx Artix-7 FPGA的开辟板,它提供了丰富的硬件资源和接口,适合于学习和开辟数字电路和嵌入式系统。本实验指导手册旨在匡助初学者快速上手Basys3开辟板,并通过一系列实验匡助他们熟悉FPGA开辟流程和基本的数字电路设计。 2. 实验准备 2.1 Basys3开辟板 2.2 Vivado设计套件 2.3 计算机 2.4 USB A to micro-B线缆 3. 实验一:LED控制 3.1 实验目的 通过编写Verilog代码,控制Basys3开辟板上的LED灯实现不同的闪烁模式。 3.2 实验步骤 3.2.1 创建新工程 3.2.2 添加约束文件 3.2.3 编写Verilog代码 3.2.4 综合、实现和生成比特流文件

3.2.5 下载比特流文件到Basys3开辟板 3.3 实验结果 实验结果应包括不同频率和模式下的LED闪烁效果。 4. 实验二:七段数码管显示 4.1 实验目的 通过编写Verilog代码,控制Basys3开辟板上的七段数码管显示不同的数字。 4.2 实验步骤 4.2.1 创建新工程 4.2.2 添加约束文件 4.2.3 编写Verilog代码 4.2.4 综合、实现和生成比特流文件 4.2.5 下载比特流文件到Basys3开辟板 4.3 实验结果 实验结果应包括数码管显示不同数字的效果。 5. 实验三:按键输入和输出 5.1 实验目的 通过编写Verilog代码,实现Basys3开辟板上按键输入和LED输出的控制。 5.2 实验步骤 5.2.1 创建新工程

基于Verilog HDL的表决器的设计(推荐文档)

学生课程实验报告书 12 级电通系 通信工程专业 03 班 学号 312890 姓名 2014--2015学年第 2 学期实验项目: 基于Verilog HDL的表决器的设计 实验时间: 2015.6.07 实验目的: 1、熟悉Verilog HDL的编程。 2、熟悉七人表决器的工作原理。 3、进一步了解实验系统的硬件结构。 实验原理: 所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。 七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个按键开关来表示七个人,当对应的按键开关输入为‘1’时,表示此人同意;否则若按键开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。 实验内容: 本实验就是利用实验系统中的按键开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。按键开关模块中的键1~键7表示七个人,当按键开关输入为‘1’时,表示对应的人投同意票,否则当按键开关输入为‘0’时,表示对应的人投反对票;LED模块中D1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通 过表决。同时通过的票数在数码管上显示出来。 实验步骤:原理图步骤与实验一相同 模式选择键”:按动该键能使实验板产生12种不同的实验电路结构。本次实验的模式选择到“5”(红色数码管上显示)。 用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致

基于verilog的8位加法器设计验证

实验名称专业、年级学号姓名8位加法器设计验证 以下内容由实验指导教师填写(实验内容请以批注的形式批阅)实验项目完成情况实验项目成绩指导教师时间 年月日实验二:8位加法器设计验证 一:8位全加器的源程序: module adder_8(sum,c,a,b,cin); output[7:0] sum; output c; input[7:0] a,b; input cin; assign {c,sum}=a+b+cin; endmodule 二:8位全加器的测试代码: module adder_8_vlg_tst(); // constants // general purpose registers reg eachvec; // test vector input registers reg [7:0] a; reg [7:0] b; reg cin; // wires wire c; wire [7:0] sum; // assign statements (if any) adder_8 i1 ( // port map - connection between master ports and signals/registers .a(a), .b(b), .c(c), .cin(cin), .sum(sum) ); initial begin

a=8'd0;b=8'd0;cin=1'b0; #10 a=8'd20;b=8'd30;cin=1'b1; #10 a=8'd30;b=8'd45; #10 a=8'd138;b=8'd105;cin=1'b0; #10 a=8'd100;b=8'd215;cin=1'b0; #10$finish; end initial $monitor($time,,"%d + %d + %b = {%b, %d}",a,b,cin,c,sum); endmodule 三:Transcript显示结果: run -all # 0 0 + 0 + 0 = {0, 0} # 10 20 + 30 + 1 = {0, 51} # 20 30 + 45 + 1 = {0, 76} # 30 138 + 105 + 0 = {0, 243} # 40 100 + 215 + 0 = {1, 59} # ** Note: $finish : E:/adder_8/simulation/modelsim/adder_8.vt(56) # Time: 50 ns Iteration: 0 Instance: /adder_8_vlg_tst 四:测试波形如下图所示:

Verilog HDL分频器设计报告

2011-2012第二学期专业选修课HDL语言应用与设计课程设计报告 Veriog HDL 分 频 器 设 计 报 告 设计时间:2012.4 班级:信科09-2 姓名:程雷 学号:08093534 指导老师:王冠军

一、设计目的和要求: 目的: 1、学会使用Quantus软件(编译、仿真等),并利用它进行设计一些简单的数字电路; 2、利用实验室提供的FPGA/CPLD实验箱,结合Quantus II软件实现分频器 的功能。 要求:分频器可以简单实用的设置分频系数。 二、实验器件和环境 实验室提供的FPGA/CPLD实验箱,PC机和Quantus II软件。 三、设计方案和源程序代码 首先分析分频器要实现的功能,然后确定他的基本结构,因为分频器的基本功能要使其分频的的功能可以控制,所以要有控制使能端口;分频器的分频系数可以自由选择,所以应有分频系数设置使能端;分频之后可以输出分频之后的频率,所以应该有输出端口。本本设计只是任意整数分频器。 1、偶数倍分频:偶数倍分频,通过计数器计数是完全可以实现的。如进行N 倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。这种方法可以实现任意的偶数分频。 原理:比如4分频,需要一个模4的计数器,占空比50%,计数为0~3循环,当计数到一半时,即计数输出cnt<2时翻转。 例题代码如下: //四分频 module div4(clk,rst_n,o_clk); input clk,rst_n; output o_clk; reg o_clk; reg [1:0]cnt; always @(posedge clk or negedge rst_n) begin if(!rst_n) cnt<=0; else if(cnt==3) cnt<=0; else cnt<=cnt+1; end always @(posedge clk or negedge rst_n) begin if(!rst_n)

计算机组成原理实验教程

计算机组成原理实验教程 计算机组成原理实验是计算机科学与技术专业中非常重要的一门实 践课程。通过实验,学生可以深入了解计算机的基本构成和工作原理,并且培养实际操作的能力。本教程旨在提供一系列详细的实验指导, 帮助学生顺利完成计算机组成原理实验。 序言 计算机组成原理是计算机科学与技术专业的一门核心课程,作为理 论和实践相结合的实验教程,对于学生深入了解计算机的内部结构和 工作原理至关重要。本教程将介绍计算机组成原理实验的基本内容和 实验报告的撰写要求,帮助学生更好地掌握实验技巧和理论知识。 实验一:数字逻辑电路设计与仿真 本实验旨在让学生学会使用Verilog HDL设计数字逻辑电路,并通 过仿真验证电路的正确性。首先,学生需要了解Verilog HDL的基本语法和仿真工具的使用方法。然后,根据实验要求,设计并仿真一个简 单的数字逻辑电路,如全加器或比较器。最后,学生需要撰写实验报告,详细介绍电路设计的过程、仿真结果和分析。 实验二:单周期CPU设计与实现 本实验要求学生设计并实现一个单周期的CPU。在实验过程中,学 生需要了解指令的执行过程和控制信号的生成原理,设计CPU的数据 通路和控制逻辑,并编写Verilog HDL代码进行实现。实验完成后,学

生需要进行功能仿真和时序仿真,验证CPU的正确性和性能。实验报 告应包括CPU设计的思路、关键问题的解决方法和仿真结果的分析。 实验三:多周期CPU设计与实现 本实验要求学生进一步完善CPU的设计,实现一个多周期的CPU。在实验过程中,学生需要改进单周期CPU的设计,引入时序控制信号 和状态机,实现指令的多周期执行。实验完成后,学生需要进行功能 仿真和时序仿真,验证CPU的正确性和性能提升。实验报告应包括多 周期CPU设计的过程、关键问题的解决方法和仿真结果的分析。 实验四:流水线CPU设计与实现 本实验要求学生设计并实现一个流水线CPU。在实验过程中,学生 需要了解流水线技术的基本原理和数据冒险的处理方法,设计流水线CPU的数据通路和控制逻辑。实验完成后,学生需要进行功能仿真和 时序仿真,验证流水线CPU的正确性和性能提升。实验报告应包括流 水线CPU设计的思路、关键问题的解决方法和仿真结果的分析。 结语 计算机组成原理实验是计算机科学与技术专业的重要课程,通过实 验可以加深对计算机内部结构和工作原理的理解。本教程提供了一系 列实验指导,帮助学生顺利完成实验,并且培养实际操作的能力。希 望学生能够在实验中积极思考和探索,不断提升自己的实践能力和创 新思维。

verilog实验指导

一、ISE软件的基本介绍 1、ISE用户界面 ISE的界面如图1-1所示,由上到下主要分为标题栏、菜单栏、工具栏、工程管理区、源文件编辑区、过程管理区、信息显示区、状态栏等8部分。 标题栏:主要显示当前工程的名称和当前打开的文件名称。 菜单栏:主要包括文件(File)、编辑(Edit)、视图(View)、工程(Project)、源文件(Source)、操作(Process)、窗口(Window)和帮助(Help)等8个下拉菜单。其使用方法和常用的Windows软件类似。 工具栏:主要包含了常用命令的快捷按钮。灵活运用工具栏可以极大地方便用户在ISE中的操作。在工程管理中,此工具栏的运用极为频繁。 工程管理区:提供了工程以及其相关文件的显示和管理功能,主要包括源文件视图(Source View),快照视图(Snapshot View)和库视图(Library View)。其中源文件视图比较常用,显示了源文件的层次关系。快照是当前工程的备份,设计人员可以随时备份,也可以将当前工程随时恢复到某个备份状态。快照视图用于查看当前工程的快照。执行快照功能的方法是选择菜单项Project | Take Snapshot。库视图则显示了工程中用户产生的库的内容。 源文件编辑区:源文件编辑区提供了源代码的编辑功能。 过程管理区:本窗口显示的内容取决于工程管理区中所选定的文件。相关操作和FPGA设计流程紧密相关,包括设计输入、综合、仿真、实现和生成配置文件等。对某个文件进行了相应的处理后,在处理步骤的前面会出现一个图标来表示该步骤的状态。 信息显示区:显示ISE中的处理信息,如操作步骤信息、警告信息和错误信息等。信息显示区的下脚有两个标签,分别对应控制台信息区(Console)和文件查找区(Find in Files)。如果设计出现了警告和错误,双击信息显示区的警告和错误标志,就能自动切换到源代码出错的地方。

Verilog-冒泡排序

深圳大学实验报告课程名称: Verilog数字系统设计 实验名称:四个8位2进制输入数据的冒泡排序 学院:信息工程学院 专业:电子信息工程班级: 2010级电子2班 组号:指导教师: 报告人:学号: 实验时间: 2012 年 11 月 6 日星期二 实验地点南区N413 实验报告提交时间: 2012.11.11

A.Verilog测试代码_时钟触发 module Test; // Inputs reg clk; reg [7:0] x_input; // Outputs wire [7:0] ra0; wire [7:0] rb0; wire [7:0] rc0; wire [7:0] rd0; wire [7:0] ra1; wire [7:0] rb1; wire [7:0] rc1; wire [7:0] rd1; // Instantiate the Unit Under Test (UUT) Rank uut ( .clk(clk), .x_input(x_input), .ra0(ra0), .rc0(rc0), .rb0(rb0), .rd0(rd0), .ra1(ra1), .rb1(rb1), .rc1(rc1), .rd1(rd1) ); always #10 clk=~clk; always (posedge clk) x_input={$random}%256;//保证随机数不大于8位 initial begin // Initialize Inputs clk = 0; x_input = 0; #100 $stop; end endmodule 仿真波形

FPGA实验报告实验

西南科技大学 实验报告 课程名称:基于FPGA的现代数字系统设计 实验名称:基于HDL十进制计数、显示系统设计姓名: 学号: 班级:通信1301 指导教师:刘桂华

西南科技大学信息工程学院制

基于HDL十进制计数、显示系统设计 一、实验目的 1、掌握基于语言的ISE 设计全流程; 2、熟悉、应用VerilogHDL描述数字电路; 3、掌握基于Verilog的组合和时序逻辑电路的设计方法; 4、掌握chipscope 片内逻辑分析仪的使用与调试方法。 二、实验原理 1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结 果可以通过七段数码管、发光二极管等进行显示。 2、模块端口信号说明: 输入信号: Clk_50m ---系统采样时钟 clk -------待计数的时钟 clr ---------异步清零信号,当clr=0,输出复位为0,当clr=1, 正常计数 ena---------使能控制信号,当ena=1,电路正常累加计数,否

则电路不工作 输出信号: q[6:0]---------驱动数码管,显示计数值的个位 cout -----------1bit 数据,显示计数值向十位的进位 COM-----------共阳级数码管,公共端(接地,参考开发板原理 图 3、以自顶向下的设计思路进行模块划分: 整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。 1)十进制计数器模块设计 输入: CLK -------待计数的时钟 CLR ---------异步清零信号,当CLR =0,输出复位为0,当CLR =1,正常计数。 EN---------使能控制信号,当EN=1,电路正常累加计数,否则电路不工作

计算机组成原理 FPGA实验指导书范文

《计算机组成原理》 实验指导书 计算机科学与技术学院

目录 实验一熟悉实验平台 (3) 实验二总线传送 (10) 实验三运算器的设计与调试 (14) 实验四存贮器的设计与调试 (20) 实验五控制器的设计与调试 (26) 附录常用器件简介 (30)

实验一熟悉实验平台 一.实验目的 1.熟悉使用Verilog硬件描述语言 2.熟悉ISE开发环境 3.掌握实验箱组成 4.熟悉时序发生器的组成原理; 5.掌握数字逻辑器件Verilog语言的编写; 二.实验设备 1.装有ISE10.1的PC机一台 2.EDK-3SAISE实验箱一台 三.实验内容 1.节拍信号T1—T4波形如图-1所示 图-1 节拍时序波形图 每个节拍内均包含脉冲clk_m1。节拍信号有三种工作方式。这三种工作方式 时标信号的启动,停止受Button,Rstn按钮开关控制。 2.用Verilog语言实现时序代码如下: module Timeen( input Clk, //System Clock 40Mhz - 3 -

input Button, // setep clock input Rstn, // reset, low active input Clk_sel, // sequence timing or step timing select input Clk_sel1, output [4:1] t, // Display(T1-T4) output M1 ); wire Clk_m1; wire Clk_i,Clk_ii; wire PB_R; assign M1=Clk_m1; GenClk_i Clk_i_Module ( .Clk_s(Clk), .Clk_i(Clk_i), .Rstn(Rstn) ); GenClk_ii Clk_ii_Module ( .PB_R(PB_R), .Clk(Clk), .Clk_ii(Clk_ii) ); Debouncer Debouner_Module ( .Clk_s(Clk), .PB(Button), .PB_state(), .PB_up(PB_R), .PB_down() ); ClkSel ClkSel_Module ( .Clk_s(Clk), .Clk_i(Clk_i), .Clk_ii(Clk_ii), .Clk_m1(Clk_m1), .Clk_sel(Clk_sel), .Clk_sel1(Clk_sel1) ); Bit1_Display Bit1_Display_Module ( .Clk_s(Clk), .Clk_m1(Clk_m1), .T(t),

相关文档