FPGA课程设计报告基于RAM的十口8位计数器

上传人:共*** 文档编号:136707894 上传时间:2020-07-01 格式:DOC 页数:20 大小:533KB
返回 下载 相关 举报
FPGA课程设计报告基于RAM的十口8位计数器_第1页
第1页 / 共20页
FPGA课程设计报告基于RAM的十口8位计数器_第2页
第2页 / 共20页
FPGA课程设计报告基于RAM的十口8位计数器_第3页
第3页 / 共20页
FPGA课程设计报告基于RAM的十口8位计数器_第4页
第4页 / 共20页
FPGA课程设计报告基于RAM的十口8位计数器_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《FPGA课程设计报告基于RAM的十口8位计数器》由会员分享,可在线阅读,更多相关《FPGA课程设计报告基于RAM的十口8位计数器(20页珍藏版)》请在金锄头文库上搜索。

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

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

3、行秒计时分频:时钟信号clk_50MHz; 分频信号 clk_1Hz; 分频信号 clk_1MHz; 计数模块由RAM读出初值dout clkclk_1hz dout 7:0din7:0 start startreset切换端口 读出数据 开始计数 暂停计数 存入数据计数:开始计数 start计数器复位 reset; 计数输出 din7:0; 计数置数 add;七段显示译码器数码管dout显示模块 wr7:0dinclk_50MHz108RAM计数器dout7:03:0wr_addressrd3:0rd_adddressreseteetetstartaddRAM:108的RAM存储阵列10个字

4、每个子8位输入端 输入地址 wr_address 3:0; 输入数据 din7:0; 上升沿有效写入信号 wr; 输出端 输出地址rd_address3: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_addre

5、ss3:0I读地址rd_clkI读时钟,下降沿触发wr_clkI写时钟,上升沿触发地址划分:ain3:0Ram存储单元00010000_000100100000_001000110000_001101000000_010001010000_010101100000_011001110000_011110000000_100010010000_100110100000_1010En数码管(或led)显示模块startRAM输入/输出 110clk_1hzclk计数模块置数控制分频模块控制模块:开始、暂停、返回初值,计数器显示切换4.3 功能验证方案(1)验证对象及目的 本验证方案将描述对双端口R

6、AM计数器的验证。在本文中验证指使用软件工具对其功能进行验证。 双端口RAM计数器功能和指标的详细描述请参见双端口RAM计数器技术规范.doc在本文所描述的验证过程中侧重对RAM数据的读取进行验证,指标主要在硬件验证和测试过程中完成。在本验证过程中将验证以下内容:(2)验证环境及工具 根据情况验证过程将使用以下的环境和工具进行:a)windows环境下使用ModelSim仿真工具;b)windows环境下使用QuartusII工具。 为进行验证还应当建立仿真激励模块(3)预确认a.系统主要技术参数; 经分析,系统的的主要参数包括:引脚数目,引脚工作电压,电源电压,系统的工作频率。 b.系统的模

7、块数目及各模块实现的功能及如何知道模块工作正常;c.总模块验证,看总系统是否正常工作。( 4)仿真确认:a.目的 初步确认系统是否完成预期设计的功能;先分析芯片所有模块连接关系,如下图 时钟分频模块计数模块,实现计数,暂停,和与RAM之间的数据存取clk(50M)en clk_1Hz显示模块led显示clk (50M)地址控制108RAMenb.逐个完成各个模块的验证 分频模块:由于系统提供的频率为50MHz而计数时需要的是每秒那样计数,故需要将50MHz分频为1Hz.可为该程序编写激励,得到输出,用输出的频率与想要得到的1Hz的信号进行比较,即可验证。 计数模块:编写完成后可通过查看仿真图形

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

9、_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) begin cnt1=32d0;clk_1Hz=clk_1Hz; end else cnt1=cnt1+32d1; end end always(

10、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_1MHz;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; reg 7:0 c_out;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号