FPGA课程设计报告---采用RAM实现计数器及FPGA功能验证.doc

FPGA课程设计报告---采用RAM实现计数器及FPGA功能验证.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

FPGA课程设计报告

题目:采用RAM实现计数器及FPGA功能验证

院系:电子工程学院

专业班级:

学生姓名:

导师姓名:

起止时间:2012-06-18至2012-06-29

2012年07月01日

FPGA课程设计报告提纲

任务

用一个10×8的双口RAM完成10个8位计数器,计数器的初值分别为1~10,时钟频率为1MHz,计数器计数频率为1Hz。

用FPGA开发板上的按键作为计数器计数值的输出选择控制,数码管(或led)作为选择计数器的计数值输出。

目的

采用RAM实现计数器及FPGA功能验证

使用环境(软件/硬件环境,设备等)

前仿modelsim

后仿modelsim

FPGA课程设计详细内容

4.1技术规范

1、先由RAM的数据读控制端在10个RAM地址中预置的8位初值。

2、将RAM存储的数据作为计数器的初始值,由计数器的控制端和分频器分频的时钟信号1Hz控制开始计数,暂停键暂停计数并同时存入RAM中赋计数器初始值的存储单元。

3、双端口RAM为10×8RAM由一个地址切换键按顺序切换1~10个地址端口。

4.系统工作流程:切换端口→→RAM预置初始值→→读出数据→→

开始计数→→七段显示译码器译码→→ 输出到数码管显示。

分频:将时钟频率为1MHz分频为计数器计数频率1Hz,用来进行秒计时。

4.2设计方案,功能验证方案,以及电路设计源代码,功能仿真激励源代码及功能仿真结果报告:

1、RAM的功能模块:

wr

rd

RAM

RAM

addr_in[3:0]

din[7:0]dout[7:0]

RAM:reg[7:0]ram[10:1]10×8的RAM存储阵列10个字每个子8位

输入端输入地址addr_in[3:0];

输入数据din[7:0];

上升沿有效写入信号wr;

输出数据dout[7:0];

上升沿有效读信号rd;

端口

功能

Rd

读使能高电平有效;系统使能工作,将din数据写入ram的存储单元中

Wr

写使能高电平有效;将ram存储单元中的数据读出dout。

Addr_in

模块内控制读写地址;系统的模值控制

Din

数据输入口,内部接口

Dout

数据输出,内部数据传送

Reset

初始化置数,电平触发

RAM的地址切换:双端口RAM为10×8RAM由地址切换键按顺序切换1~10个地址端口

addr_in[3:0]

Ram存储单元

0001

0000_0001

0010

0000_0010

0011

0000_0011

0100

0000_0100

0101

0000_0101

0110

0000_0110

0111

0000_0111

1000

0000_1000

1001

0000_1001

1010

0000_1010

程序:

inputwr,rd;

inputreset,clk_1mhz;

inputaddr_in;

wire[3:0]addr_in;

input[7:0]din;

wire[7:0]din;

output[7:0]dout;

reg[7:0]dout;

reg[7:0]mem[10:1];

always@(posedgeclk_1mhz,negedgereset)

begin

if(!reset)

begin

mem[1]=8d1;mem[2]=8d2;

mem[3]=8d3;mem[4]=8d4;

mem[5]=8d5;mem[6]=8d6;

mem[7]=8d7;mem[8]=8d8;

mem[9]=8d9;mem[10]=8d10;

end

elseif(wr==1rd==0)

mem[addr_in]=din;

elseif(rd==1wr==0)

dout=mem[addr_in];

end

Endmodule

激励模块:moduletest;

regc

文档评论(0)

A~下一站守候 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档