可编程逻辑器件实验指导书V1

上传人:新** 文档编号:461411743 上传时间:2022-12-12 格式:DOC 页数:81 大小:5.36MB
返回 下载 相关 举报
可编程逻辑器件实验指导书V1_第1页
第1页 / 共81页
可编程逻辑器件实验指导书V1_第2页
第2页 / 共81页
可编程逻辑器件实验指导书V1_第3页
第3页 / 共81页
可编程逻辑器件实验指导书V1_第4页
第4页 / 共81页
可编程逻辑器件实验指导书V1_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《可编程逻辑器件实验指导书V1》由会员分享,可在线阅读,更多相关《可编程逻辑器件实验指导书V1(81页珍藏版)》请在金锄头文库上搜索。

1、实验1 开关、发光二极管和多路器本实验的目的是学习如何连接一个简单的外部输入、输出器件到FPGA芯片以及如何在FPGA器件上实现逻辑电路控制简单外部器件。考虑使用DE2开发板上拨动开关SW17-0(toggle Switch)作为电路的输入。使用发光二极管(Light Emitting Diodes,LEDs)和7段显示数码管(7-segment Display)作为电路的输出。第1部分DE2开发板提供了18个拨动开关,分别被命名为SW17-0,这些开关可以用作为电路的输入。DE2开发板同时还提供了18个红色的LED,被命名为LEDR17-0,用于显示电路的输出值。图1所示一个简单的Veril

2、og HDL模块,用LED来显示这些开关的状态。因为拨动开关SW和LED都是18个,在Verilog HDL代码中,将它们表示成向量的形式更为方便,这样我们可以在编程的时候使用一个赋值语句来代替以下的18个赋值语句。assign LEDR17 = SW17;assign LEDR16 = SW16;assign LEDR0 = SW0;在DE2开发板上,FPGA器件与拨动开关和发光二极管之间已经正确连接。为了正确使用SW17-0和LEDR17-0,必须在Quartus II工程中正确的进行引脚分配(pin assignment)。关于引脚分配可以参考DE2 User Manual。例如,在DE

3、2 User Manual中已经指明,拨动开关SW0被连接到FPGA的N25引脚,LEDR0被连接到AE23引脚。最好的引脚分配方式是在Quartus II软件中导入DE2_pin_assignments.csv文件,该文件可以在DE2 System CD上或者Altera公司的大学计划网站上获得。引脚分配过程在Quartus II Introduction using Verilog Design中有详细描述,该文件也可以从Altera公司网站上获得。注意:只有在Verilog HDL代码中使用的端口名与DE2_assignments.csv使用的名字完全一致时,向Quarutus II工程

4、导入DE2_assignments.csv才是有效的。在DE2_assignments.csv中对拨动开关和发光二极管的命名分别为SW0,SW17和LEDR0,LEDR17。这也是在例1中使用SW和LEDR作为模块端口的原因。例1 DE2开发板上使用拨动开关和发光二极管的Verilog代码/连接拨动开关SW和红色的发光二极管LEDR的简单的Verilog HDL模块module part1(SW,LEDR);input 17:0 SW;output 17:0 LEDR;assign LEDR = SW;endmodule执行以下步骤在DE2开发板上实现例1的电路:1、 新建Quartus II

5、工程,选择Cyclone II EP2C35F672C6作为目标芯片,该芯片是DE2开发板上的FPGA芯片;2、 将例1所示的Verilog HDL代码加入到Quaruts II工程;3、 引脚分配,并编译工程该工程;4、 将编译好的电路下载到FPGA器件。扳动拨动开关观察相应的发光二极管显示,验证电路功能是否正确;第2部分图2(a)给出是2选1数据选择器(multiplexer) 有时也称为多路器的电路原理图,2选1数据选择有多种实现方式。图2(a)给出的是积之和(sum-of-product)形式,其中输入s代表选择输入(select input)。如果s = 0,则多路器的输出m等于输入

6、x,如果s = 1则输出等于y。图2(b)给出了2选1数据选择器的真值表(True Table),图2(c)给出的是2选1数据选择器的电路符号。图2 二选一的数据选择器2选1数据选择器可以使用Verilog HDL的连续赋值语句语句描述assign m = (s & x) | (s & y);本部分要求编写Verilog HDL模块实现图3(a)所示的电路,该模块包含8个类似于上面连续赋值语句。电路包括2个8位输入X和Y,产生一个8位的输出M。如果s=0,那么M =X,如果s = 1,则M=Y。通常称具有上述功能的逻辑电路为8位宽的2选1数据选择器。图3(b)给出了8位2选1数据选择器的电路符

7、号,其中X,Y称为8位宽的数据输入端,M是8位宽的数据输出端。按如下步骤完成本实验:图3 8位宽的数据选择器1、 新建Quartus II工程;2、 在工程中加入8位宽的2选1数据选择器Verilog HDL代码。使用DE2开发板上的SW17作为输入s,开关SW7-0作为输入X,SW15-8作为输入Y。连接拨动开关SW到红色的发光二极管LEDR,同时连接输出M到绿色的发光二极管LEDG7-0。3、 引脚分配,确保作为电路的输入端口的Cyclone II FPGA的引脚正确连接到拨动开关SW,作为电路输出的PPGA引脚正确与LEDR和LEDG连接;4、 编译;5、 将编译好的电路下载到FPGA器

8、件。通过扳动拨动开关SW改变电路输入,同时观察LEDR和LEDG的显示是否与之匹配,测试8位宽的2选1数据选择器的功能是否正确。第3部分图2给出的2选1数据选择器,可以从2个输入x和y中选择一个作为输出。本部分考虑一个稍微复杂的电路5选1数据选择器,5选1数据选择器从5个输入信号u,v,w,x和y选择一个作为输出m的值。图4(a)给出如何通过2选1数据选择器构建5选1数据选择器。电路使用3个数据选择位作为输入s2s1s0,图4(b)给出了电路真值表。图4(c)给出5选1数据选择器的电路符号。第2部分曾经介绍了8位宽的2选1数据选择器,通过实例化8个2选1数据选择器可以容易地实现8位宽的2选1数

9、据选择器。按照类似的思路,图5给出的3位宽的5选1数据选择器,可以通过实例化3个1位宽的5选1数据选择器实现。图4 1位宽5选1数据选择器图5 三位宽5选1数据选择器按照以下步骤实现3位宽的5选1数据选择器:1、 新建QuartusII工程;2、 编写3位宽的5选1数据选择器的Verilog HDL源文件。使用拨动开关SW17-15作为5选1数据选择器的选择输入,使用其余的15个拨动开关SW14-0作为5个3位宽的输入U,V,W,X和Y。连接拨动开关SW到红色发光二极管LEDR,同时连接输出M到绿色发光二极管LEDG2-0。3、 引脚分配,编译该工程;4、 下载编译好的电路到FPGA芯片。扳动

10、拨动开关改变电路的输入,观察LEDs显示情况测试3位宽的5选1数据选择器是否工作正常。确保每个输入都能被输出M正确选择。第4部分图6给出一个具有3个输入c2,c1,c0的7段显示译码电路模块。该译码电路具有7个输出用于在驱动7段显示数码管显示字符。表1列出每个输入c2,c1,c0的值所对应的显示字符。为了使本实验不至太复杂,表1中只列出了4个字符(另外如果输入为100-111,数码管显示“blank”,即不显示)。图6 每个数码管共有7个笔段,分别标注为0-6。当与每个笔段连接的信号被驱动成逻辑0时,相应的笔段就会被点亮(共阴极数码管)。本实验要求采用Verilog HDL设计显示译码电路,其

11、功能是根据输入值的不同产生相应的显示编码,用于驱动数码管显示合适的字符(表1)。要求:只能使用连续赋值语句实现该电路。表1具体操作步骤如下:1. 新建Quartus II工程;2. 编写7段显示译码电路的Verilog HDL文件。连接拨动开关SW2-0到译码电路的输入c2,c1,c0,连接译码电路的输出到DE2开发板上的数码管HEX0。数码管的每个笔段分别叫做HEX00,HEX01,HEX06,如图6所示。代码中需要声明7位宽的输出端口output 6:0HEX0;这样可以保证电路输出名与DE2 User Manual和DE2_pin_assignments.csv中的文件名匹配。3. 引脚

12、赋值,并编译该工程;4. 下载编译好的电路到FPGA芯片,扳动拨动开关改变电路的输入,观察数码管显示是否正确。第5部分考虑图7所示的电路。3位宽的5选1数据选择器用于从5个需要在数码管显示的字符中选择1个。第4部分设计的7段显示译码电路可以显示5个字符“H”,“E”,“L”,“O”以及“blank”中任意1个。字符显示对应的编码通过拨动开关SW14-0设置,具体需要显式哪个字符通过拨动开关SW17-15选择。图7 图7所示电路对应的Verilog HDL代码的框架如图8所示。注意该实现中使用了第3部分和第4部分设计的电路。本部分要求对图8所示的电路进行扩展,使用5个5选1数据选择器和5个7段显

13、示译码电路,每个译码电路连接1个数码管。改变拨动开关SW17-15时,以循环滚动的在5个数码管上显示字符。例如,如果显示字符“HELLO”,那么电路显示模式如表2所示。表2按照如下步骤完成实验1. 新建Quartus II工程;2. 编写电路的Verilog HDL代码,并将其包含到Quartus II工程中。连接拨动开关SW17-15到5个3位宽5选1数据选择器的选择输入端。按照表2的方式,将拨动开关SW14-0连接的每个3位宽5选1数据选择器的数据输入端。分别连接数据选择器的输出到5个7段显示数码管HEX4,HEX3,HEX2,HEX1和HEX0。3. 引脚分配,编译整个工程;4. 下载编

14、译好的电路到FPGA器件。正确设置开关SW14-0的值,扳动拨动开关SW17-15改变电路输入,观察电路工作是否正常。第6部分对第5部分设计的电路进行扩展,使用DE2开发板上的全部8个数码管至少显示5个字符。当拨动开关SW17-15变化时,显示模式可以循环滚动。如果希望显示“HELLO”,电路的显示如表3所示。表3具体操作过程如下:1. 新建Quartus II工程,选择Cyclone II EP2C35F672C6作为目标芯片;2. 设计电路的Verilog HDL源文件,并将其加入到工程中。连接拨动开关SW17-15到8个3位宽5选1数据选择器的选择输入端。按照表3的方式,将拨动开关SW1

15、4-0连接的每个3位宽5选1数据选择器的数据输入端。分别连接数据选择器的输出到8个7段显示数码管HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1和HEX0。提示:(1)数据选择器的某些输入必须选择字符“blank”;(2)使用8选1数据选择器,不能使用5选1数据选择器;3. 引脚分配;4. 下载电路的FPGA芯片,扳动拨动开关改变电路输入,观察显示字符是否正确;实验2 数码和显示本试验的目的是练习设计组合逻辑电路,试验的主要内容是二进制-十进制译码器和BCD码加法器等组合逻辑电路。第1部分考虑将拨动开关SW15-0所代表的值显示在7段显示数码管HEX3-HEX0上。即分别将开关SW15-12,SW11-8,SW7-4和SW3-0所表示的十进制数显示在数码管HEX3,HEX2,HEX1,HEX0上。要求设计电路显示数码0-9。把数值1010-1111处理为dont care。inputoutputabcdHEXn6HEXn5HEXn4HEXn3HEXn2HEXn1HEXn00000100000000011111001001001

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号