欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    川大数字信息实验FPGA彩灯实验报告.pdf

    • 资源ID:85962671       资源大小:966.42KB        全文页数:14页
    • 资源格式: PDF        下载积分:19.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要19.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    川大数字信息实验FPGA彩灯实验报告.pdf

    1 数字信息技术实验报告 实验名称:彩灯实验 实验时间:班级:实验人:2 一、实验项目 彩灯控制实验:利用开发实验平台上的 8 个 LED 实现常见彩灯实验。二、实验目的 1、学习 QuatusII 开发软件的基本操作。2、熟悉教学实验板的使用。3、初步掌握 VHDL 语言的设计、输入、编译、仿真和调试过程。4、掌握 USBBLASTER 下载工具的安装、以及程序下载方法。三、实验内容 1、首先编译下载给定的 VHDL 硬件描述语言编写的彩灯控制示例程序,仔细观察在实验板上的现象。2、用 VHDL 语言编辑彩灯控制程序,通过按键控制开发实验平台上的 8 个LED 灯的点亮顺序:(1)按键可选择核心板上的按键,或 EDA 主板上矩阵键盘作为按键,或 DKA 系列按键;(2)通过一个按键控制 8 个 LED 灯从左向右依次循环点亮;(3)通过一个按键控制 8 个 LED 灯从右向左依次循环点亮;(4)通过一个按键控制 8 个 LED 灯从中间向两边依次循环点亮;(5)通过一个按键控制 8 个 LED 灯从两边向中间依次循环点亮;(6)通过一个按键控制 8 个 LED 灯全部点亮;(7)通过一个按键控制 8 个 LED 灯全部熄灭。3、扩展内容:能够设置 8 个 LED 灯的点亮频率(通过时钟、分频器实现)。4、在 QuatusII 平台上进行波形仿真,保存一组通过按键控制 8 个 LED 灯从中间向两边依次循环点亮的仿真波形图。5、描述在实验板上观察到的现象。四、实验仪器 计算机、USBBLASTER 下载线、数字系统实验箱、5V 稳压电源。五、实验原理 1、EDA 主板上 8 个 LED 灯的电路连接如图 1 所示。8 个 LED 采用 74LS244进行隔离驱动,当 FPGA 对应 I/O 口为高电平时,相应的 LED 灯点亮;为低电平时,灯熄灭。2、表 1 是对应的 FPGA 映射管脚表,即编译通过后,进行器件管脚分配时必须按照相应的管脚号进行分配,否则就无法进行硬件验证测试。3 图 1 8 个 LED 灯的电路连接图 表 1 LED 灯对应的 FPGA 映射管脚表 器件名 网络名 FPGA 映射管脚 LED0 SD0 165 LED1 SD1 166 LED2 SD2 167 LED3 SD3 168 LED4 SD4 169 LED5 SD5 170 LED6 SD6 173 LED7 SD7 174 3、FPGA 时钟连接电路及管脚分配分别如图 2 和表 2 所示。LED 灯的循环点亮频率根据所选择时钟信号确定,或者选择某个固定时钟,然后通过分频器来改变循环点亮频率。4 图 2 时钟电路连接图 表 2 时钟管脚映射表 器件名 网络名 FPGA 映射管脚 CLK1 CLK1 152 CLK2 CLK2 29 CLK3 CLK3 28 4、核心板上的四个按键电路连接及管脚映射表如图 3 所示。按下键相应的I/O 口为低电平,未按下为高电平。图 3 核心板上的四个按键电路连接及管脚映射表 5 5、EDA 主板上 4 x 4 矩阵键盘电路连接电路图及管脚映射表如图 4 所示。图 4 EDA 主板上 4 x 4 矩阵键盘电路连接电路图及管脚映射表 6、EDA 主板上 DKA 系列按键电路连接图及管脚映射表如图 5 所示。139138137136135134FPGA映射管脚Keys/USBKeys0/LCDkey3key2key1key0网络名Keys/USBKeys0/LCDkey3key2key1key0器件名QK3QK3QK2QK2QK1QK1QK0/REST2QK0/REST2141Keys/U11Keys/U11140Keys/ADKeys/ADFPGA映射管脚网络名器件名 6 图 5 EDA 主板上 DKA 系列按键电路连接图及管脚映射表 根据功能要求,可将 8 路彩灯控制器的输出按花形循环要求列成表格,其中。Q7-Q0 是控制器输出的 8 路彩灯的控制信号,高电平时彩灯亮。当按下不同的按键时,LED 的控制信号不同。按下 Key1,8 个 LED 同时为低电平,即全灭,按下 Key2,8 个 LED 控制信号同时为高电平,即全亮;按下 Key3,8 个 LED 的控制信号按照时钟信号或分频器依次赋值为 1000000-01000000-00100000-00010000-00001000-00000100-00000010-00000001。通过调整时钟或分频器可调整 LED 的点亮速度。同理,按照上述方法分别按下Key4,Key5,Key6,实现不同的点亮方式。全灭 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key1 0 0 0 0 0 0 0 0 全亮 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key2 1 1 1 1 1 1 1 1 器件名 网络名 FPGA 映射管脚 DKA0 DKA0 156 DKA1 DKA1 158 DKA2 DKA2 159 DKA3 DKA3 160 DKA4 DKA4 161 DKA5 DKA5 162 DKA6 DKA6 163 DKA7 DKA7 164 7 从 左 到 右 点 亮 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key3 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 从 右 到 左 点 亮 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 从 中间 到 两边 点 亮 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key5 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 从 两边 到 中间 点 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Key6 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 8 亮 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 六、实验步骤 一、建立工程项目:1、安装 USBBLASTER 编程工具(安装步骤见-文档最后-USB_BLASTER驱动程序的安装);2、在WINDOWS 界面双击QuatusII图标 ,进入QuatusII开发环境;3、选择“File=New Project Wizard”或 Create a New Project,出现向导对话框;4、点击 Next,弹出如下 New Project Wizard 对话框,填写 Directory,Name,Top-Level Entity 等项目。其中第一、第二、第三个文本框分别是工程项目目录、项目名称和项目顶层设计实体的名称弹出如下窗口;5、设置好存储位置和项目名称后点击 Next,弹出出现添加工程文件的对话框;在上述对话框中,我们可以导入已经存在的*.vhd、*.vhdl 或*.verilogwen 文件(注:导入的文件名称需和项目名称一致),若原来己有文件,可选择相应文件。若需要导入已存在文件到当前项目中,则按照以下步骤操作;若无需导入文件则直接点击 Next,跳过步骤(5)、(6)、(7),执行步骤(8)6、点击上图中红色框选中的按钮,弹出如下窗口,选择要导入的文件,如下选中 light.vhd 7、点击“打开”,如下所示 File name:显示需要导入文件的位置:8、点击 Add,将选中的文件添加到项目中,如下所示,9、点击 Next,如下选择 FPGA 器件对话框,在 Family 下拉框中,根据需要选择一种型号的 FPGA,比如 CycloneII 系列 FPGA。然后在“Available devices:”中根据需要的 FPGA 型号选择 FPGA 型号;10、选择器件类型-型号后,点击 Next,如下图,弹出其他 EDA 工具的对话框,由于我们使用 Quartus 的集成环境进行开发,因此不要作任何改动。11、单击 Next 进入工程的信息总概对话框;12、单击 Finish 按钮就建立了一个空的工程项目;二、编辑设计文件:13、执行“File=New”弹出新建文件对话框,Quartus 支持 6 种设计输入法文件(Design Files):“AHDL File”,是 AHDL 文本文件;“Block Diagram/Schematic File”,是流程图和原理图文件,简称原理图文件;“EDIF 9 File”,是网表文件;“SOPC Builder System”,是可编程片上系统的编辑系统;“Verilog HDL File”,是 Verilog HDL 文本文件;“VHDL File”,是VHDL 文本文件。这里我们使用 VHDL 语言,因此选择 VHDL File。14、单击 OK 后,即建立一个空的原理图文件,在 Quartus 窗口的右方看到该文件(Vhdl.vhd),如下图:15、执行 File=Save as 命令,把它另存为文件名是“light”(自己命名)的VHDL 文件,文件后缀为.vhd。使该文件添加到刚建立的工程目录中去。16、点击 保存,则将当前的 VHDL 文件保存至当前工程中,Quartus 窗口的右方看到该文件名为 light.vhd,用 VHDL 语言编辑彩灯控制程序,控制开发实验平台上的 8 个 LED 灯的点亮顺序,将代码写入该文件,如下图:17、选择“Processing=Start Compilation”或通过点击快捷菜单按钮,开始编译;18、编译结束后,会出现如下图所示的对话框,对话框会显示编译的错误和警告的情况。若有错误,则可先双击编译器界面下方出现的第一个错误提示,可使第一个错误处改变颜色。检查纠正,第一个错误后保存再编译,如果还有错误,重复以上操作,直至最后通过。最后通过时应没有错误提示但可有警告提示。19、在 QuatusII 平台上进行波形仿真。单击 Files 菜单下的 New,选择Verification/Debugging Files 下的 Vector Waveform File 后单击 OK 就能创建一个后缀名为.vwf 的文本文件,绘制相应的输入波形文件,根据输入波形仿真输出波形;20、点击 ok,出现波形文件编辑器 21、在上图鼠标所在处(红色框)单击鼠标右键,出现下图所示菜单,选择Insert Node or Bus命令 22、出现如图所示的对话框,单击 Node Finder按键。23、在出现的对话框中单击 List 按键选择需要的输入输出引脚,如图所示 24、如图 2-52 所示,单击选中的按键,选中需要的输入输出引脚。25、然后,单击两次确定按钮,出现如图所示的画面。26、设置仿真时间 执行 Edit=End Time 命令 10 弹出如下设置时间对话框,设置总时间为 1.0us:执行 Edit=Grid Size 命令,设置时间单位为 10 ns 27、设置输入信号波形 单击工具箱中缩放工具按钮,将鼠标移到编辑区内,单击鼠标,调整波形区横向比例(左键放大,右键缩小),单击工具箱中的选择按钮,然后在要设置波形的区域上按下鼠标左键并拖动鼠标,选择要设置的区域。(1)单击工具箱中高电平设置按钮,将该区域设置为高电平,如图所示。(2)用相似的方法设置其他区域的波形,如图所示,注意波形与真值表相对应。28、选择“processing-generate functional simulation netlist”,弹出如下保存对话框:(文件名需要与对应的.vhd文件名一致)29、点击 是,弹出如下对话框,保存路径与工程路径一致,文件名为light:30、点击 保存,将该波形文件保存,保存成功,弹出如下对话框:31、再选择“processing=Start simulation”,进行仿真,仿真成功弹出如下对话框。仿真结果如图,认真核对输入输出波形,可检查设计的功能正确与否。32、单击 Assignments 下的 device 选择器件;33、单击 Assignments 下的 pins 进行管脚分配;34、单击 Processing 下面的 Compiler tool 编译程序;35、单击 Tools 下面的 Programmer,36、单击 Hardware Stup,在 HardwareSettings 选项卡下的 Currently selected hardware 选择 USBBLASTER 下载工具,后点击 close。37、单击 Add File,选择后缀为.sof 的文件,点击打开。38、点击 start,将程序下载到 FPGA 芯片中,仔细观察实验板上的现象,测试验证程序。七、实验结果 1.工程建立及测试文件的生成:根据要求建立工程 light,添加相应的文件,编译,分配芯片的引脚,分析和综合。生成可用于硬件测试的文件light.sof。2.程序烧写:根据要求安装好下载工具 USB BLASTER 的驱动,给器件上电。在 Programmer 界面中选择相应的下载工具即 USB BLASTER,选中相应的文件 light.sof(默认选择)start 下载。3.硬件测试:根据提供的程序可以实现功能:6 位按键控制 6 种不同状态的流水灯 11 修改源程序以实现 3 位按键控制 6 种不同状态的流水灯,具体修改步骤如下:1.端口定义部分:key:in std_logic_vector(5 downto 0)修改位 3位的标准逻辑向量类型即:key:in std_logic_vector(2 downto 0);2.修改行为描述(architecture的 process 部分):原程序为 6 位key 的 6 种二进制编码,对应于 3 位 flag 的 6 种二进制编码,控制 8位 light 的 6 种状态。因此,最简单的修改方法即是将 6 位 key 的 6种二进制编码改为 3 位 key 的 6 种二进制编码(3 位二进制可实现 8种编码)。此外,原程序中对 key5 优先译码可删除不用。这里选用的六种编码分别是:001、010、011、100、101、000。3.重新编译,删除多余分配的 key 的引脚。分析综合,下载测试。八、源程序-*LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-*ENTITY light is PORT(clk1 :IN STD_LOGIC;light:buffer std_logic_vector(7 downto 0)key:in std_logic_vector(5 downto 0)-修改为 std_logic_vector(2 downto 0);END light;-*ARCHITECTURE behv OF light IS constant len :integer:=7;signal banner:STD_LOGIC:=0;signal clk,clk2:STD_LOGIC;BEGIN clk=clk1;12 process(clk)if clkevent and clk=1 then if key=000001the-修改为”001”if flag=000 then light=1&light(len downto 1);if light(1)=1 then flag:=001;end if;elsif flag=001 then light=light(len-1 downto 0)&0;if light(6)=0 then flag:=000;end if;end if;elsif key=000010then-修改为“010”if flag=000 then light=light(len-1 downto 0)&1;if light(6)=1 then flag:=001;end if;elsif flag=001 then light=0&light(len downto 1);if light(1)=0 then flag:=000;end if;end if;elsif key=000100 then修改为“011”if flag=000 then light(len downto 4)=light(len-1 downto 4)&1;light(len-4 downto 0)=1&light(len-4 downto 1);if light(0)=1 then flag:=001;13 end if;elsif flag=001 then light(len downto 4)=0&light(len downto 5);light(len-4 downto 0)=light(len-5 downto 0)&0;if light(2)=0 then flag:=000;end if;end if;elsif key=001000 then修改为“100”if flag=000 then light(len downto 4)=1&light(len downto 5);light(len-4 downto 0)=light(len-5 downto 0)&1;if light(3)=1 then flag:=001;end if;elsif flag=001 then light(len downto 4)=light(len-1 downto 4)&0;light(len-4 downto 0)=0&light(len-4 downto 1);if light(1)=0 then flag:=000;end if;end if;elsif key=010000 then修改为“101”light=11111111;flag:=000;elsif key(5)=1 then light=00000000;flag:=000;-删除改key(5)优先译码 elsif key=000000 then修改为“000”light=00000000;flag:=000;end if;end if;14 end process;end behv;九、数据分析 修改原程序实现新功能具体思路:1.端口定义部分:key:in std_logic_vector(5 downto 0)修改位 3 位的标准逻辑向量类型即:key:in std_logic_vector(2 downto 0);2.修改行为描述(architecture 的 process 部分):原程序为 6 位 key 的 6种二进制编码,对应于 3 位 flag 的 6 种二进制编码,控制 8 位 light 的 6 种状态。因此,最简单的修改方法即是将 6 位 key 的 6 种二进制编码改为 3 位key 的 6 种二进制编码(3 位二进制可实现 8 种编码)。此外,原程序中对 key5优先译码可删除不用。这里选用的六种编码分别是:001、010、011、100、101、000。十、实验体会 通过本次实验,熟悉了 Quartus II 软件对 FPGA 的设计工作流程。将 6位 key 控制 8 位流水灯的六种状态 改为 3 为 KEY 来控制,通过这一过程更加加深了 VHDL 语言设计 FPGA 的方法。本次实验较为成功,收获很大。

    注意事项

    本文(川大数字信息实验FPGA彩灯实验报告.pdf)为本站会员(g****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开