ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:1,005.11KB ,
资源ID:5987801      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5987801.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Lab2实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Lab2实验报告.docx

1、Lab2实验报告SJTU|F0905103Lab2实验报告王红宾 50905190611实验概述1.1实验名称FPGA基础实验2:4 bits binary counter with time divider1.2 实验目的1掌握Xilinx逻辑设计工具ISE的设计流程; 2掌握UCF(用户约束文件)的用法和作用; 3初步掌握使用VerilogHDL硬件描述语言进行简单的逻辑设计;4熟悉Xilinx Spartan 3E实验板卡。5学习分频器的编写,了解同步信号的工作过程。1.3实验范围本次实验将覆盖以下范围 1ISE的使用2iMPACT的使用3编辑UCF 4Spartan 3E实验板的使用5

2、使用VerilogHDL进行逻辑设计1.4注意事项1. 本实验的逻辑设计工具为Xilinx ISE11.1。1.5实验要求1用Verilog实现一个简单的带同步复位的4位2进制计数器2使用某种仿真器对该计数器进行仿真,本例中采用Xlinx ISE Simulator,也可使用ModelSim3为FPGA提供的高速时钟进行分频,为计数器提供慢速时钟。4将最终得到的解决方案使用Xlinx ISE 11.1进行综合,并在实验板上得到预期结果。2实验内容 2.1实验步骤1 启动ISE 11.1。2 选择File New Project 出现New Project Wizard。3 Project Na

3、me填写lab5,选择工程Project Location,Top-level Source Type选择HDL。点击Next。4. Device Properties 中各属性填写如下: Product Category: ALL Family: Spartan3E Device: XC3S500E Package: FG320 Speed: -4 Synthesis Tool: XST(VHDL/Verilog)Simulator: ISim (VHDL/Verilog) ,也可用Modelsim仿真。Preferred Language: Verilog 确认Enable Enhance

4、d Design Summary 已勾选 下一步,添加要新建的源代码文件。点击NewSource:在对话框中选择Verilog Moudle类型文件,命名为counter,并勾选Add to Project,如图:下一步,添加输入输出端口(注意要设置Direction),如图:下一步,查看信息无误后点击Finish完成新代码文件的创建。此时界面回到New Project Wizard。在此,单击下一步,出现添加已有代码的窗口,可直接下一步跳过。出现信息窗口,检查设置无误后点击Finish,如图:5.如下修改counter.v的代码并保存,实现带同步复位的4 Bits计数器,如图:6.运行仿真器

5、:在Hierarchy中选中counter.v,菜单栏中选择Project- New Source,选择Verilog Test Fixture,输入文件名countert,点击Next,如图:选择 counter模块,Next直到点击 Finish关闭对话框,如图 :在左上侧的Sources for:下拉菜单中选择Behavioral Simulation,然后修改新生成的countert模块的代码,使其如下图所示:在Processes中右键点击Simulate Behavioral Model然后选中Process Properties,更改Simulation Run Time值为500

6、ns,点击OK保存。双击Simulate Behavioral Model即可得到如下仿真波形:7. 在Source For:中选择implementation,双击打开counter.v。由于板子晶振提供的时钟频率速度较高,需要对时钟进行分频,可通过TimerDivider模块来实现。代码更改为如图并保存:8. 在Hierarchy窗口中选中 counter.v,在Processes 窗口 User Constraints 下的展开项中双击Creat Timing Constraints,弹出窗口提示创建 ucf 文件,点Yes。关闭Timing Constraints窗口,选中创建的cou

7、nter.ucf,在 Processes 窗口双击 Edit Constraints (Text) 打开文本编辑器在该UCF文件中输入端口映射的配置,将输出映射至LED,如图:9. 保存后,在菜单栏中Process下点击Implement Top Module,ISE会调用后台工具对工程进行综合和布线。此过程较慢,请注意下方输出窗口中的返回信息。如果成功完成,会有如下提示:选中Hierarchy窗口的 counter.v,在 Processes窗口中选择 Synthesize XST下面的 View RTL Schematic,右键或双击运行。查看产生的模块图:10. 双击左侧Generate

8、 Programming File,系统会自动生成二进制bit流文件counter.bit:11. 将 FPGA 开发板接入计算机,双击Configure Target Device 下的Manage Configuration Project(iMPACT)。会弹出如下图窗口:等待一段 时间,ISE将自动完成 Synthesize,Implement Design和 Generate Programming File。等 iMPACT软件启动后,双击 Boundary Scan ,在 iMPACT右侧窗口右键选择:Initialize Chain。会连续弹出三个对话框,第一个中选择刚刚生成的

9、 counter.bit文件,点击 Open。点击OK,出现如下视图:后两个对话框选择 Bypass或Cancel掉,继续点击 OK。出现图2-20这一步,点击No12.在 counter.bit的模块中右键 Program,在 Program Properties对话框直接点击 OK。等待屏幕出现蓝色Program Success的提示时,说明烧写成功。2.2验证FPGA开发板上 4个 LED,亮起代表该位为 1,灭掉代表该位为 0。四位 LED表示了 4位二进制数字,通过其变化观察计数过程。按下按钮中间的 ENTER键,可以控制计数器同步复位。3实验程序module timerDivide

10、r(clockIn, clockOut);input clockIn;output clockOut;reg clockOut;reg24:0 buffer;always(posedge clockIn)beginbuffer=buffer+1;clockOut=&buffer;endendmodulemodule counter(mianClock,reset,count);input mianClock;input reset;output3:0 count;reg3:0 count;wire slowClock;timerDivider td(.clockIn(mianClock), .

11、clockOut(slowClock);always (posedge slowClock)beginif (!reset)count=4b1111;elsecount=count-1;endendmodulemodule countert;/ Inputsreg mianClock;reg reset;/ Outputswire count;parameter DELY=20;/ Instantiate the Unit Under Test (UUT)counter uut (.mianClock(mianClock),.reset(reset),.count(count);always

12、#(DELY/2) mianClock=mianClock;initial begin/ Initialize InputsmianClock = 0;reset = 0;/ Wait 100 ns for global reset to finish#100;/ Add stimulus herereset=1b1;#(DELY*10) reset=1b0;#(DELY) reset=1b1;endendmoduleNET mainClock LOC=C9 | IOSTANDARD = LVCMOS33;NET count LOC=F11 | IOSTANDARD = LVTTL |SLEW

13、=SLOW |DRIVE=8;NET count LOC=E11 | IOSTANDARD = LVTTL |SLEW=SLOW |DRIVE=8;NET count LOC=E12 | IOSTANDARD = LVTTL |SLEW=SLOW |DRIVE=8;NET count LOC=F12 | IOSTANDARD = LVTTL |SLEW=SLOW |DRIVE=8;NET reset LOC = L13 | IOSTANDARD =LVTTL | PULLUP;4实验结论实验很顺利,成功实现了由程序控制LED灯有序亮灭。实验中产生的模块图如下:并通过修改实验程序实现了LED灯顺序和逆序的亮灭。这个实验中学习了分频器的编写,了解了同步信号的工作过程。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1