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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

FPGA课程设计基于RAM的十口8位计数器.docx

1、FPGA课程设计基于RAM的十口8位计数器西安邮电学院FPGA课程设计报告题 目: 基于RAM的十口8位计数器 院 系: 通信与信息工程学院 专业班级: 电科0902班 学生姓名: 赵荷 导师姓名: 刘正涛 起止时间: 2012-9-10 至 2012-9-21 年 月 日FPGA课程设计报告提纲1任务 用一个108的双口RAM完成10个8位计数器,计数器的初值分别为110,时钟频率为1MHz,计数器计数频率为1Hz。 用FPGA开发板上的按键作为计数器计数值的输出选择控制,数码管 (或led)作为选择计数器的计数值输出。2目的采用RAM实现计数器及FPGA功能验证3使用环境 (软件/硬件环境

2、,设备等)前仿 modelsim 6.1f后仿 Quartus II10.14FPGA课程设计详细内容4.1 技术规范功能:1先由复位键从选定的RAM地址中读出预置的8位初值存入计数模块。 2. 由开始键开始计数,暂停键暂停计数并同时存入RAM中以选定的存储单元。 3. 双端口RAM为108RAM由一个地址切换键按顺序切换110个地址端口。 4.系统工作流程: 切换端口 读出数据 开始计数 暂停计数 存入数据 计数流程 5切换端口 读出数 七段显示译码器译码 输出到数码管显示 读取结果输出流程6分频:1Hz的秒计时频率,用来进行秒计时;4.2 设计方案信号定义:Clk_50MHzclk_1Hz

3、 reset clk_1MHz分频:1Hz的秒计时频率,用来进行秒计时分频:时钟信号clk_50MHz; 分频信号 clk_1Hz; 分频信号 clk_1MHz; clk clk_1hz dout 7:0 din7:0 start start reset切换端口 读出数据 开始计数 暂停计数 存入数据计数:开始计数 start计数器复位 reset; 计数输出 din7:0; 计数置数 add; dout显示模块 RAM:108的RAM存储阵列10个字每个子8位输入端 输入地址 wr_address 3:0; 输入数据 din7:0; 上升沿有效写入信号 wr; 输出端 输出地址rd_addr

4、ess3:0; 输出数据 dout7:0; 上升沿有效读信号 rd;端口I/O功能rd I读使能,高电平有效;系统使能工作,将din数据写入ram的存储单元中wr O写使能,高电平有效;将ram存储单元中的数据读出dout.Wr_address3:0I写地址din7:0 I数据输入口,内部接口dout7:0 O数据输出,内部数据传送reset I复位端,时钟下降沿有效add I计数器置数端startI开始/暂停键,高电平开始,低电平暂停Rd_address3:0I读地址rd_clkI读时钟,下降沿触发wr_clkI写时钟,上升沿触发地址划分:ain3:0Ram存储单元00010000_0001

5、00100000_001000110000_001101000000_010001010000_010101100000_011001110000_011110000000_100010010000_100110100000_10104.3 功能验证方案(1)验证对象及目的 本验证方案将描述对双端口RAM计数器的验证。在本文中验证指使用软件工具对其功能进行验证。 双端口RAM计数器功能和指标的详细描述请参见双端口RAM计数器技术规范.doc在本文所描述的验证过程中侧重对RAM数据的读取进行验证,指标主要在硬件验证和测试过程中完成。在本验证过程中将验证以下内容:(2)验证环境及工具 根据情况验证

6、过程将使用以下的环境和工具进行:a)windows环境下使用ModelSim仿真工具;b)windows环境下使用QuartusII工具。 为进行验证还应当建立仿真激励模块(3)预确认a.系统主要技术参数; 经分析,系统的的主要参数包括:引脚数目,引脚工作电压,电源电压,系统的工作频率。 b.系统的模块数目及各模块实现的功能及如何知道模块工作正常;c.总模块验证,看总系统是否正常工作。( 4)仿真确认:a.目的 初步确认系统是否完成预期设计的功能;先分析芯片所有模块连接关系,如下图 b.逐个完成各个模块的验证 分频模块:由于系统提供的频率为50MHz而计数时需要的是每秒那样计数,故需要将50M

7、Hz分频为1Hz.可为该程序编写激励,得到输出,用输出的频率与想要得到的1Hz的信号进行比较,即可验证。计数模块:编写完成后可通过查看仿真图形确认计数范围,位宽等功能的正确。 RAM存取模块:需在仿真中编写测试激励对RAM进行存取验证,在仿真图形中确认RAM的存取功能的正确性。显示模块:把计数的结果通过七段显示译码器显示在数码管上,观察数码管上的数字变化规律即可验证显示模块是否正确。c.验证空标志产生逻辑:先将复位信号置0(有效),在一定时间内看系统是否产生空标志;d.验证正常情况下的信号:系统运行时,让复位信号为1(即复位无效),根据输入信号得出输出信号,与想要得到的信号进行比较。4.4 电

8、路设计源代码,功能仿真激励源代码及功能仿真结果报告分频器模块:module FPQ (clk_50MHz,clk_1MHz,reset,clk_1Hz); input clk_50MHz,reset; output clk_1MHz,clk_1Hz; reg clk_1Hz=0; reg clk_1MHz=0; reg 31:0 cnt1=32d0; reg 31:0 cnt2=32d0; always(posedge clk_50MHz or negedge reset) begin if(!reset) clk_1Hz=32d0; else begin if(cnt1=32d100) be

9、gin cnt1=32d0;clk_1Hz=clk_1Hz; end else cnt1=cnt1+32d1; end end always(posedge clk_50MHz or negedge reset) begin if(!reset) clk_1MHz=32d0; else begin if(cnt2=32d255) begin cnt2=32d0; clk_1MHz=clk_1MHz; end else cnt2=cnt2+32d1; end end endmodule分频器模块激励:module FPQ_test; reg clk_50MHz,reset; wire clk_1

10、MHz;wire clk_1Hz; always # 2 clk_50MHz=clk_50MHz; FPQ fpq(.reset(reset),.clk_50MHz(clk_50MHz),.clk_1MHz(clk_1MHz),.clk_1Hz(clk_1Hz); initial begin reset=0; clk_50MHz=0; #100 reset=1; endendmodule计数器模块:module JSQ(start,data,clk_1Hz,add,c_out); input clk_1Hz,add;input start;input 7:0data; output c_out

11、; reg 7:0 c_out; always(posedge clk_1Hz or negedge add ) begin if(!add) begin c_out=data; end else begin if(start) begin c_out=c_out+8d1; if(c_out=8d255) begin c_out=0; end else c_out=c_out+8d1; end else c_out=c_out; end end endmodule计数器激励:module JSQ_test; reg start,add; reg clk_1Hz; reg 7:0data; wi

12、re 7:0 c_out; always #1 clk_1Hz=clk_1Hz; JSQ jsq(.start(start),.add(add),.clk_1Hz(clk_1Hz),.data(data),.c_out(c_out); initial begin clk_1Hz=0; add=0; start=0; data=8d1; #15 add=1; #15 start=1; #600 start=0; end endmodule 数码管显示模块:module SMG (clk_1MHz,data,data_g,data_s,data_b); input7:0 data; input c

13、lk_1MHz; output data_b; output data_s; output data_g; reg6:0data_b; reg6:0data_s; reg6:0data_g; reg 7:0mid_b; reg 7:0mid_s; reg 7:0mid_g; always(posedge clk_1MHz) begin mid_b=data/100; mid_s=data%100/10; mid_g=data%10; end always(mid_b) begin case(mid_b) 7d0:data_b=7hC0; 7d1:data_b=7hF9; 7d2:data_b=7hA4; 7d3:data_b=7hB0; 7d4:data_b=7h99; 7d5:data_b=7h92; 7d6:data_b=7h82; 7d7:data_b=7hf8; 7d8:data_b=7h80; 7d9:data_b=7h90; default:data_b=7hC0; endcase end always(mid_s) begin case(mid_s) 7d0:data_s=7hC0; 7d1:data_s=7hF9; 7d2:dat

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

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