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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

可编程逻辑器件设计及应用实验报告DOC 33页.docx

1、可编程逻辑器件设计及应用实验报告DOC 33页可编程逻辑器件设计及应用实验报告(DOC 33页)部门: xxx 时间: xxx整理范文,仅供参考,可下载自行编辑Harbin Institute of Technology可编程逻辑器件设计及应用实验报告 实验一:电路图方法设计:异步16分频 一、 实验内容1、 熟悉ISE M的安装及使用2、 熟悉电路图方式的输入方法;3、 熟悉ISE环境下的波形仿真4、 学习SIE安装过程5、 建立一个新的工程(cpld 9500系列)6、 输入电路图异步16分频,如图1-1所示:图1-1二 实验结果1、异步16分频电路图如图1-2所示:图1-22、 建立测试

2、波形方法仿真激励图形,如图1-3所示:图1-33、 引脚约束条件如下:NET CLK LOC = P6;NET CLR LOC = P7;NET O1 LOC = P42;NET O2 LOC = P37;NET O3 LOC = P40;NET O4 LOC = P39;4、 最终仿真结果如图1-4,1-5所示:图1-4图1-5三 实验结果讨论分析通过本次试验,初步掌握了ISE的使用方法,通过ISE自带库文件完成电路的搭建,实现了对输入时钟的2分频,4分频,8分频和16分频,通过最终的试验验证得到了正确的试验结果。指导教师签字:实验二 电路图方法分层设计:全加器 一、实验内容1、 建立一个新

3、的工程(cpld 9500系列)2、 建立一个独立的电路图(All_ADD)3、 输入电路图: 一位全加器图2-1一位全加器4、 建立测试波形方法仿真激励图形图2-2波形仿真激励5、 功能仿真记录结果,分析正确性。6、 生成电路模块 图2-3模块建立7、 利用电路模块设计8位全加器,(新电路图或者顶层电路图)图2-4 8位全加器(顶层电路图)8、 建立测试波形方法仿真激励图形图2-5 8位全加器波形仿真激励9、 学习总线数据预置方式:通过使用相同名字来对总线进行连接设置,和总线数据格式。二 实验结果一位全加器功能仿真结果:图2-6 功能仿真结果8位全加器功能仿真结果一(无进位):图2-7 功能

4、仿真结果8位全加器功能仿真结果二(有进位):图2-8 功能仿真结果三 实验结果讨论分析 本次试验充分体现了模块化设计思想,首先我们运用库文件实现了一位全加器,也即实验中的ALL_ADD模块,在实现此模块后进行仿真分析,确定无误后,运用8个一位全加器实现实现8位全加器,考虑进位。在实验中进一步熟悉了软件的使用流程和具体的实际操作如操作总线结构等基本操作,可谓知行合一。指导教师签字:实验三 Verilog语言方法设计:8位全加器 一、实验内容1、 建立一个新的工程(cpld 9500系列)2、 建立一个Verilog模块(All_ADD8)图3-1 建立一个新的verilog模块3、 输入全加器图

5、3-2 输入全加器4、 建立测试波形方法仿真激励图形测试波形一:图3-3 测试波形测试波形二:图3-4 测试波形5、 功能仿真记录结果,分析正确性。6、 建立Verilog测试模块源代码如下:7、 功能仿真记录结果,分析正确性。进位结果。理解掌握语言描述。8、 8位可预置计数器(试验扩展)9、 建立一个Verilog模块(Counter8)源代码如下:timescale 1ns / 1psmodule extentest_v; reg 7:0 D; reg CLK; reg CLR; reg PR; wire 7:0 Q; extendex uut ( .D(D), .CLK(CLK), .C

6、LR(CLR), .PR(PR), .Q(Q); parameter PERIOD = 200; always begin CLK = 1b0; #(PERIOD/2) CLK = 1b1; #(PERIOD/2); end initial begin D = 0; CLR = 0; PR = 0; #100;每隔100ns变换一次输入数据 PR = 1; D = 17; CLR = 0; #100; PR = 0; #100; end endmodule10、 学习总线数据预置方式11、 自己建立仿真过程(波形+Verilog测试)二 实验结果测试波形一结果:图3-5 仿真测试结果测试波形二

7、结果:图3-6 仿真测试结果文件测试结果:图3-7 仿真测试结果更改数据测试结果:图3-8 仿真测试结果三 实验结果讨论分析本次试验与上次试验的不同之处在于:上次试验是通过库文件链接电路图先实现1位全加器,在此基础上运用8个1位全加器按照逻辑链接在一起实现8位全加器,而在本次试验中,我们运用的是Verilog语言实现,个人感觉这种更加简单清楚,首先是这种方法省去了电路链接的麻烦,其次是它的实现过程中只需要编程实现模块即可,不用先生成1位全加器,然后再去实现8位全加器,编程仿真实现想要的结果后可以直接生成8位全加器模块,操作极为简单。指导教师签字:实验四 LED显示模块设计 一、实验内容1、 在

8、上一工程基础上继续做a、 工程名称:MyProject1b、 选择器件:Spartan3E2、 建立LED显示模块(verilog)图4-1 LED显示模块 功能说明:a、 数据输入:4bits; b、 数据输出;8bits;c、 功能:翻译16进制到7段LED显示(参照显示16进制数对照表) 过程说明:a、 建立Verilog模块;b、 建立Verilog仿真;c、 验证模块正确性;3、 建立显示数据锁存分配模块(verilog)图4-2 数据锁存模块 功能说明:a、 数据输入:8bits。b、 CK:锁存信号,上升沿锁存输入数据c、 数据输出:锁存输出最后输入的两字节数据,分别对应4位输出

9、 过程说明:a、 建立Verilog模块;b、 建立Verilog仿真;c、 验证模块正确性;4、 建立电路图方式顶层模块显示模块图4-3 顶层5、 联合验证;二 实验结果输入波形一:图4-4 测试波形得到的相应仿真结果图一:图4-5 仿真结果输入波形二:图4-6 测试波形得到的相应仿真波形结果图二:图4-7 仿真结果三 实验结果讨论分析本次试验依然使用的是Verilog语言,个人觉得实现的关键之处在于输入输出的对应,我们对照共阴极发光二极管的显示模式,为每一个输入通过编程实现其对应的输出即可。本次试验更深入了解的Verilog编程语言,以及电路设计的模块化实现,在本次试验中引入了时钟,对时钟

10、的生成与操作有了初步的了解为下一次试验打下了基础,与此同时,我还学习到了Verilog语言一些特有的编程规则。指导教师签字:实验五 串行口设计一、 实验内容预备知识:串行通信:数据一位一位次序发送或接收。异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。无奇、偶校验的工作模式(10位):有奇、偶校验的工作模式(11位):(1) 波特率:在串行通信中,用波特率来描述数据的传输速度,所谓波特率,即每秒

11、钟传送的二进制位数,其单位是bps(bits per second).它是衡量串行数据速度快慢的重要指标.国际上规定的一个标准波特率系列: 110,300,600,1200,1800,2400,4800,9600,14.4K,19.2K,28.8K,33.6K,56Kbps(2) 奇偶校验:对传送数据中1的个数进行校验,若二者不一致,则说明数据传送过程中出现了差错.奇偶校验的特点是按字符校验,数据传输速度将受到影响,一般只用于异步串行通信中。实验过程:1、 建立一个新的工程 a、 工程名称:MyProject1b、 选择器件:Spartan3E2、 建立模式控制模块(verilog)图5-1

12、模式控制模块 功能说明:a、 DataIn:控制数据输入、8bits;低4位用于选择波特率模式,最高位用于选择奇、偶校验是否有效;b、 WR:控制数据写入,1bit;上升沿锁存输入数据;c、 FreOut:波特率模式选择输出,DataIn低4位,由WR上升沿锁存保持;09变化;大于9不变化。d、 ModOut:奇、偶校验模式选择;DataIn最高位,由WR上升沿锁存保持;e、 默认值:FreOut =6;ModOu=1; 过程说明:a、 建立Verilog模块;b、 建立Verilog仿真;c、 验证模块正确性;源代码如下:module ModeCon(DataIn, WR, FreOut,

13、ModOut); input 7:0 DataIn; input WR; output 3:0 FreOut; output ModOut; reg ModOut=1;/ModOut初始值为1 reg 3:0 FreOut=6;/FreOut初始值为6 always (posedge WR) begin ModOut=DataIn7; if(DataIn3:09) FreOut=DataIn3:0; endendmodule测试代码如下:module ModeConTest_v; reg 7:0 DataIn; reg WR; wire 3:0 FreOut; wire ModOut; par

14、ameter PERIOD = 100; /value=时钟周期(单位ns) always begin WR = 1b0; #(PERIOD/2) WR = 1b1; #(PERIOD/2); end / Instantiate the Unit Under Test (UUT) ModeControl uut ( .DataIn(DataIn), .WR(WR), .FreOut(FreOut), .ModOut(ModOut) ); initial begin DataIn = 0; WR = 0; / Wait 100 ns for global reset to finish #100

15、; DataIn=16h12; #100; DataIn=16h23; #100; DataIn=16h44; #100; DataIn=16h96; / Add stimulus here end endmodule3、 建立波特率发生器模块(verilog)图5-2 波特率发生模块 功能说明:a、 FreSel:波特率控制数据输入、4bits;09变化,对应选择波特率300、600、1200、1800、2400、4800、9600、14.4K、19.2K、28.8Kbps共10种变化。b、 CLK:时钟射入,频率为22.1184MHz;c、 CLK_S:对应波特率分频输出,根据FreSel

16、输入控制数据进行对应分频,对应模式有300、600、1200、1800、2400、4800、9600、14.4K、19.2K、28.8Kbpsd、 CLK_S16:对应波特率16倍分频输出; 过程说明:a、 建立Verilog模块;b、 建立Verilog仿真;c、 验证模块正确性;d、 建立电路图方式顶层模块Seriale、 连接波特率发生器模块和模式控制模块进行联合验证;源代码如下:module FreqMod(FreSel, CLK, CLK_S16, CLK_S); input 3:0 FreSel; input CLK; output CLK_S16; output CLK_S; r

17、eg CLK_S=0; reg CLK_S16=0; reg 16:0count=0; reg 16:0count_16=0; reg 16:0num=0; reg 16:0num16=0; always (posedge CLK) begin if(FreSel=0) num=36864;/300 else if(FreSel=1) num=18432;/600 else if(FreSel=2) num=9216;/1200 else if(FreSel=3) num=6144;/1800 else if(FreSel=4) num=4608;/2400 else if(FreSel=5)

18、 num=2304;/4800 else if(FreSel=6) num=1152;/9600 else if(FreSel=7) num=768;/14.4k else if(FreSel=8) num=576;/19.2k else if(FreSel=9) num=384;/28.8k end always (posedge CLK) begin count=count+1; num16=num) begin CLK_S=CLK_S; count=num16) begin CLK_S16=CLK_S16; count_16=0; end endendmodule测试代码如下:modul

19、e FreqModTest_v; / Inputs reg 3:0 FreSel; reg CLK; / Outputs wire CLK_S16; wire CLK_S; parameter PERIOD = 100; /value=时钟周期(单位ns) always begin CLK= 1b0; #(PERIOD/2) CLK = 1b1; #(PERIOD/2); end / Instantiate the Unit Under Test (UUT) BitProducer uut ( .FreSel(FreSel), .CLK(CLK), .CLK_S16(CLK_S16), .CL

20、K_S(CLK_S) ); initial begin / Initialize Inputs / Wait 100 ns for global reset to finish #100; FreSel=1001; / Add stimulus here end endmodule4、 建立发送数据模块(verilog)图5-3 发送数据模块 功能说明:a、 DataIn:发送数据输入、8bits;b、 WR:控制数据写入,1bit;上升沿锁存输入数据;写入后下一个CLK上升沿开始立即发送数据c、 CLK:时钟射入,对应波特率时钟;d、 Mod:模式输入,0对应无奇偶校验;1对应有奇偶校验;e

21、、 TX:串行数据输出,平时高电平,当有数据输入后,下一个CLK上升沿开始立即发送数据;f、 BUSY:空闲指示,当TX输出时为高,其它时间为低; 过程说明:a、 建立Verilog模块;b、 建立Verilog仿真;c、 验证模块正确性;d、 加入顶层模块Seriale、 进行联合验证;源代码如下:module TxMod(DataIn, WR, CLK, Mod, TX, BUSY); input 7:0 DataIn; input WR; input CLK; input Mod; output TX; output BUSY; reg Tx=1; reg Busy=0; reg 7:0

22、data=0; reg flag=0; reg 3:0count=1; reg num=0; always (posedge WR) begin data=DataIn; num=data0+data1+data2+data3+data4+data5+data6+data7; flag=1; end always (posedge CLK) begin if(flag=1) begin Busy=1; if(count=1) Tx=0; else if(count=2) Tx=data0; else if(count=3) Tx=data1; else if(count=4) Tx=data2

23、; else if(count=5) Tx=data3; else if(count=6) Tx=data4; else if(count=7) Tx=data5; else if(count=8) Tx=data6; else if(count=9) Tx=data7; else if(count=10) begin if(Mod=0) Tx=1; else if(Mod=1) Tx=num; count=0; flag=0; end count=count+1; end else Tx=1; Busy=0; endendmodule5、 建立发送数据模块(verilog)图5-4 发送数据

24、模块 功能说明:a、 RX:串行数据输入、1bits;b、 CLK:时钟输入,对应16倍波特率时钟。目的:提高采样率,在第一时刻发现起始脉冲;同时对每一位进行3次采样(时间平均),已剔出干扰;c、 Mod:模式输入,0对应无奇偶校验;1对应有奇偶校验;d、 TX:串行数据输出,平时高电平,当有数据输入后,下一个CLK上升沿开始立即发送数据;e、 DataOut:接收转换后数据;f、 EN:接收完成使能,平时为第电平,接收完成后保持一个波特率周期高电平。g、 ERR:奇偶校验错误指示,平时为第电平,接收完成后保持一个波特率周期高电平。 过程说明:a、 建立Verilog模块;b、 建立Veril

25、og仿真;c、 验证模块正确性;d、 加入顶层模块Serial进行联合验证;二 实验结果(1) 模式选择模块在Mod=1时,进行如下仿真波形设置:图5-5 测试波形设置得到如下仿真结果:图5-6 仿真结果在Mod=0时,进行如下仿真波形设置:图5-7 测试波形设置得到如下仿真结果:图5-8 仿真结果在FreOut =6;ModOut=1默认值时,设置仿真测试波形如下:图5-9 测试波形设置得到仿真结果如下:图5-10 仿真结果(2) 波特率发生模块仿真波形设置如下:图5-11 测试波形设置 仿真结果如下:图5-12 仿真结果(3) 数据发送模块仿真测试输入波形如下:图5-13 测试波形设置 仿

26、真结果如下:图5-14 仿真结果(4) 接收模块测试波形设置如下:图5-15 测试波形设置仿真结果如下:图5-16 仿真结果图5-17 仿真结果(5) 联合仿真验证由上述四个模块构成的顶层文件如下图所示:图5-18 顶层文件 对其进行波形仿真验证,测试波形设置如下图:图5-19 测试波形图5-20 测试波形测试结果如下:图5-21 仿真结果图5-22 仿真结果三 实验结果讨论分析 实验中的串行口模块由4个基本模块组成,分别是模式控制模块、波特率产生模块、接收模块和发送模块,本次试验令我收获最大的地方就是就是对设计流程的逐步熟悉,从模式控制模块、波特率控制模块、接收模块到发送模块一步一步实现,在每一步仿真验证后最终将每个部分合在一起实现本次试验。本次试验耗时时间最长,前期的预备工作及其重要,多和同学讨论最终才能顺利完成本次试验。 指导教师签字:

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

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