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

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 实验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所示一个简单的Verilog HDL模块,用LED来显示这些开关的状态。因为拨动开关SW和LED都是18个,在Verilog HDL代码中,将它们表示成向量的形式更为方便,这样我们可以在编程的时候使用一个赋值语句来代替以下的18个赋值语句。 assign LEDR[17] = SW[17]; assign LEDR[16] = SW[16]; … assign LEDR[0] = SW[0]; 在DE2开发板上,FPGA器件与拨动开关和发光二极管之间已经正确连接。为了正确使用SW17-0和LEDR17-0,必须在Quartus II工程中正确的进行引脚分配(pin assignment)。关于引脚分配可以参考DE2 User Manual。例如,在DE2 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工程导入DE2_assignments.csv才是有效的。在DE2_assignments.csv中对拨动开关和发光二极管的命名分别为SW[0],,SW[17]和LEDR[0],,LEDR[17]。这也是在例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的电路: 新建Quartus II工程,选择Cyclone II EP2C35F672C6作为目标芯片, 将例1所示的Verilog HDL代码加入到Quaruts II工程; 引脚分配,并编译工程该工程; 将编译好的电路下载到FPGA器件。扳动拨动开关观察相应的发光二极管显示,验证电路功能是否正确; 第2部分 图2(a)给出是2选1数据选择器(multiplexer) 有时也称为多路器的电路原理图,2选1数据选择有多种实现方式。图2(a)给出的是积之和(sum-of-product)形式,其中输入s代表选择输入(select input)。如果s = 0,则多路器的输出m等于输入x,如果s = 1则输出等于y。图2(b)给出了2选1数据选择器的真值表(True Table),图 有时也称为多路器 图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数据选择器的电路符号,其中X,Y称为8位宽的数据输入端,M是8位宽的数据输出端。 按如下步骤完成本实验: 图3 8位宽的数据选择器 新建Quartus II工程; 在工程中加入8位宽的2选1数据选择器Verilog HDL代码。使用DE2开发板上的SW17作为输入s,开关SW7-0作为输入X,SW15-8作为输入Y。连接拨动开关SW到红色的发光二极管LEDR,同时连接

文档评论(0)

annylsq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档