《FPGA入门系列实验教程——流水灯》.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《FPGA入门系列实验教程——流水灯》.pdf

艾米电子工作室—让开发变得更简单 FPGA 入门系列实验教程——LED 流水灯 1. 实验任务 让实验板上的8 个LED 实现流水灯的功能。通过这个实验,进一步掌握采用 计数与判断的方式来实现分频的Verilog HDL 的编程方法以及移位运算符的 使用。 2. 实验环境 硬件实验环境为艾米电子工作室型号EP2C8Q208C8 增强版开发套件。 软件实验环境为Quartus II 8.1 开发软件。 3. 实验原理 流水灯,顾名思义就是让LED 象水一样的点亮。如果把流水做慢动作播放, 可以想象到其实就是移动,即:把水块不断地向同一方向移动,而原来的水块保 持不动,就形成了流水。同样,如果使得最左边的灯先亮;然后,通过移位,在 其右侧的灯,由左向右依次点亮,而已经亮的灯又不灭,便形成了向右的流水灯。 初始状态时,8 个灯都不亮。每来一个时钟脉冲CLK,计数器就加1。每当判断 出计数器中的数值达时,就会点亮一个灯,并进行移位。FPGA 输出 的数据就应该首先是,隔 1 秒钟变成…一直变化到 这样,依次点亮所有的灯,就形成了流水灯。而当8 个灯都点亮时, 需要一个操作使得所有的灯恢复为初始状态,即:灯都不亮。然后,再一次流水 即可。如果是右移位,就出现向右流水的现象;反之,向左流水。 4. 实验程序 module ledwater(clk,led); // 模块名及端口参数 output [7:0] led; // 输出端口定义 input clk; // 输入端口定义,50M 时钟 reg[8:0] led_out; // 变量led_out 定义为寄存器型 reg[8:0] led_out1; // 变量led_out 1 定义为寄存器型 reg[25:0]buffer; // 中间变量buffer 定义为寄存器型 always@(posedge clk) begin buffer=buffer+1; if (buffer==26 // 判别buffer 数值时,做输出处理 begin led_out=led_out1; // led 向左移位,空闲位自动添0 补位 if(led_out==9b000000000) led_out=9b111111111; 艾米电子工作室—让开发变得更简单 led_out1=~led_out; //取反输出 end end assign led=led_out1[7:0]; endmodule 5. 实验步骤 (1)建立新工程项目: 打开 Quartus II 软件,进入集成开发环境,点击 File→New project wizard建立一个工程项目ledwater 。 (2 )建立文本编辑文件: 点击File→New 在该项目下新建Verilog HDL 源程序文件ledwater.v, 输入试验程序中的源程序代码保存后选择工具栏中的 按钮启动编 译,若在编译中发现错误,则找出并更正错误,直到编译成功为止。 (3 )选择器件型号及引脚的其他设置: 选择所用的FPGA 器件→EP2C8Q208C8 ,以及进行一些配置。选择配 置器件EPCS4 ,设置不需要使用的IO 功能为As inputs ,tri-stated 。点击 两次ok,回到主界面。 (4 )配置FPGA 引脚: 在Quartus II 软件主页面下,选择Assignments→Pins 或选择工具栏上 按钮,配置led[0]led[7]以及clk 的引脚。 上述配置引脚的方法适合引脚比较少的项目,对于引脚比较多的工程项 目,分配起来就比较麻烦了,下面介绍一种方便快捷的引脚分配方法。 a. 首先建

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档