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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

使用Verilog语言编写的投篮机模块Word下载.docx

1、4、计时模块初始化之后开始倒计时,每秒递减5、计数模块每次投中球,计数加一三、五个模块的具体完成过程:在上完理论课之后,我们对Verilog和VHDL语言有了初步的了解,老师告诉我们这门课的关键在于自己的动手实践,于是我们实验小组着手开始了投篮机的设计实践。首先通过查阅老师给的课件和网上的一些资料,熟悉了一下Quartusii的操作流程,并对两种硬件描述语言有了一个更深的了解,但同时也遇到很多不明白的地方,通过向老师的咨询,对投篮机模块有了一个感性的认识,并准备采用分解模块的方法,进行初步的实践。随后我们着手进行实现投篮机功能所需模块代码的编写。起初,我们简单的认为,投篮机无非就是一个计数模块

2、,一个倒计时模块,因此我们只编写这两个模块的代码。如下:计数模块:module Counter99(LED, keytouch, clr); input keytouch, clr; output7:0 LED; reg7: always(posedge keytouch or negedge clr) begin if(!clr) LED = 8h00; else if(LED3:0 = 4d9) begin LED3:0 = 4d0; if(LED7:4 = 9) LED7:4 = 4 else 4 = LED7:4 + 1b1; end else = LED3:0 + 1 endendm

3、odule计时模块:module BCD_cnt59(qout, clktouch, reset);0 qout;0qout; input clktouch,reset; always(posedge clktouch or negedge reset ) if(!reset) qout = 0; else if(qout3:d0) qout3:= 9; if(qout7:4 = 0) qout7:= 5; else4 = qout7:4 - 1 else qout3:= qout3:0 - 1 endmodule通过在Quartusii上编译,运行,波形仿真,无误。波形图如下:图1 Coun

4、ter99功能仿真波形图图2 BCD_59功能仿真波形图经过仔细观察开发板,发现KX-7C5T00578型号开发板只有三个数码管,其中有两个直接是BCD形式的,有一个是七段形式的,还少一个数码管,我们决定用LED灯来代替倒计时的十位数字,七段数码管显示倒计时的个位数字,另外两个数码管分别显示计数器的十位、个位。为此我们还需要编写译码器模块。经过几次改写,译码器代码编写成功如下:七段译码模块:module BCD1(in , LED); output4: input3:0 in; reg4: always(in) case(in) 4d0:LED = 5b00000;d1:b10000;d2:b

5、11000;d3:b11100;d4:b11110;d5:b11111 default:bx; endcase对LED灯的译码: module BCD2(in , LED); output6: reg6:LED = 7b1111110;b0110000;b1101101;b1111001;b0110011;b1011011;d6:b1011111;d7:b1110000;d8:b1111111;d9:b1111011; 开发板系统时钟是20MHz ,而计数器采用的是按键触发,考虑到按键一下的平均时间是几个毫秒,所以我们需要把系统时钟分频到1KHz,所以这里就要用到分频模块和按键消抖模块。在老师

6、的指导下,我们写出了这两个程序,如下:分频模块(20MHz1KHz):module clk_div1(clk_20M , clk1k); input clk_20M; output clk1k; reg R_clk1k = 0; assign clk1k = R_clk1k ; reg 15:0 counter = 0; always ( posedge clk_20M ) if(counter = 19999) counter = counter + 1; end = 9999 ) R_clk1k = 1; end endmodule 按键消抖模块:module sample(keyout,

7、 clk, keyin); input clk , keyin; output keyout; reg3:0 samp_count; reg keyout; initial samp_count b0000; always (posedge clk) samp_count3:1 = samp_count2:0; samp_count0 = keyin; if (samp_count = 4b1111) keyout = 1b0;经过这几个步骤,采用按键触发的计时器模块就能成功运行了。考虑到倒计时是每秒数值减一,我们还必须利用系统时钟产生秒信号。之前已经将20MHz时钟分频到1KHz,我们还需要

8、继续分频,把1KHz时钟分频到1Hz,以产生秒时钟。程序如下:分频模块(1KHz1Hz):module clk_div2(inclk , outclk); input inclk; output outclk; reg outclk; integer N = 1000; integer k; always (posedge inclk) if(k N/2) outclk = 1 k = k + 1; if(k = N) k = 0;至此,我们把所有的代码编写完毕。我们将功能需求转换为器件模块图。确定模块名称与每个模块的I/O端口名称,并确定模块之间的连接关系。全部连接好并且成功分配好管脚的图如下:图3 核心控制模块图此处需要注意分配管脚完成后一定要再编译一次,确认无误后把程序下载到开发板中。实验结果:在老师的指点下,成功的使用硬件描述语言编写出投篮机的功能代码,并实现了功能的仿真,达到了预期的设计实践的目的。

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

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