- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北航电子实习数字部分实验报告.
报告名称:电子电路设计训练数字部分学院:仪器科学与光电工程学院目录实验报告概述:3一、选做实验总结:3(1)补充练习2:楼梯灯设计3(2)练习题6:用两种不同的设计方法设计一个功能相同的模块,完成4个数据的冒泡排序5(3)练习题3:利用10MB的时钟,设计一个单周期形状的周期波形6(4)练习题4:运用always块设计一个8路数据选择器6(5)练习题5:设计一个带控制端的逻辑运算电路7二、必做实验总结:7(1)练习一:简单组合逻辑设计7(2)练习三:利用条件语句实现计数分频失序电路7(3)练习四:阻塞赋值与非阻塞赋值得区别8(4)练习五:用always块实现较复杂的组合逻辑电路8(5)练习六:在verilog HDL中使用函数9(6)练习七:在verilog HDL中使用任务9(7)练习八:利用有限状态机进行时许逻辑设计10三、实验总结及体会:10四、选作程序源代码11(1)练习题3:利用10MB的时钟,设计一个单周期形状的周期波形11(2)练习题4:运用always块设计一个8路数据选择器12(3)练习题5:设计一个带控制端的逻辑运算电路13(4)练习题6:用两种不同的设计方法设计一个功能相同的模块,完成4个数据的冒泡排序14(5)补充练习2:楼梯灯设计16图表目录Figure 1 楼梯灯任务45Figure 2 组合逻辑5Figure 3 时序逻辑6Figure 4 周期波形6Figure 5 8路数据选择器6Figure 6 逻辑运算电路7Figure 7 组合逻辑设计7Figure 8 计数分频时序电路8Figure 9 阻塞赋值与非阻塞赋值得区别8Figure 10 always块组合逻辑电路9Figure 11 使用函数9Figure 12 使用任务10Figure 13 有限状态机10电子电路设计训练(数字部分)实验报告实验报告概述:本实验报告为对四次电子电路设计训练(数字部分)实验的总结,主要包括以下四部分:第一部分为选做实验总结,主要包括每个选择实验的设计思路、运行结果、注意事项、心得体会;第二部分为必做实验总结,包括运行结果、总结、心得体会;第三部分为课程总结和体会,是对全部实验及课程的总结;第四部分为选做实验部分源代码;选做实验总结:补充练习2:楼梯灯设计设计思路:本题给出楼梯的运行规则,并分别给与四个相应任务进行编程设计,考虑到程序的通用性及FPGA高速并行处理的优点,主要思路如下:根据运行规则(8s内和大于8s等),对每个灯的相应状态进行编程,设计时序逻辑及有限状态机;由于在总体上看,每个灯的状态变化相对独立(只有一个人上楼除外),故对每个灯编程所得到的程序代码可通用于其它灯(只需要改变相应寄存器定义即可),此即为灯控制模块,对4个不同的任务,只需设计其它部分判断逻辑,即可完成任务要求;如此设计,可大大提高程序设计效率、易用性,同时如果面对更多的灯控制需要,也可快速进行修改部署。下面针对不同任务给出不同处理方法:任务1/任务3:由于任务1和任务3在定义上有很大相同点,比如同样是一个人走楼梯,若不考虑一个人同时在两层使两个灯亮,则事实上就是一个人始终只能使一盏灯亮,亮起后盏时熄灭前一盏;在保持每个灯控制模块不改变的情况下,利用非阻塞赋值,判断该人目前所处状态及位置(上楼/下楼,楼层),同时规定输出,同时只能亮一盏灯;任务2:由于输入信号已被赋值给寄存器变量,此时只需在系统时钟作用下对寄存器中输入变量进行判断,满足要求即为正确信号,再输入灯控制模块;任务4:由于已有灯控制模块,此时只需结合任务2防抖电路,直接输出状态信号所对应的结果即可;(单个)灯控制模块代码:always @(posedge clk)begin signal_test[0]=signal[0];if(signal_test[0]==signal[0]) begin i0=i0+1; endelse i0=0;if(i0=5) begin signal_reg[0]=signal[0]; endif(state0==light_off) begin k0=0; k0a=0; k0b=0; endelse k0=k0+1; case(signal_reg[0]) 1: if(!reset) begin state0=light_off; end else begin k0a=k0a+1; if((k0a = 79)(k0=119)) state0=light_on12; else state0=light_on8; end 0:if(!reset) begin state0=light_off; end else if(k0a==0) state0=light_off;endcase case(state0)
文档评论(0)