1、 FPGA 课程设计报告课程设计报告 题 目:采用 RAM 实现计数器及 FPGA 功能验证 院 系: 电子工程学院 专业班级: 学生姓名: 导师姓名: 起止时间:2012-06-18 至 2012-06-29 2012 年 07 月 01 日 FPGAFPGA 课程设计报告提纲课程设计报告提纲 1 任务 用一个 10 8 的双口 RAM 完成 10 个 8 位计数器, 计数器的初值分别为 110,时钟频率为 1MHz,计数器计数频率为 1Hz。 用 FPGA 开发板上的按键作为计数器计数值的输出选择控制,数码管 (或 led)作为选择计数器的计数值输出。 2 目的 采用 RAM 实现计数器及
2、 FPGA 功能验证 3 使用环境 (软件/硬件环境,设备等) 前仿 modelsim 后仿 modelsim FPGA 课程设计详细内容 4.1 技术规范 1、先由 RAM 的数据读控制端在 10 个 RAM 地址中预置的 8 位初值。 2、将 RAM 存储的数据作为计数器的初始值,由计数器的控制端和分频器分频 的时钟信号 1Hz 控制开始计数,暂停键暂停计数并同时存入 RAM 中赋计数 器初始值的存储单元。 3、双端口 RAM 为 10 8RAM 由一个地址切换键按顺序切换 110 个地址端口。 4系统工作流程:切换端口 RAM 预置初始值 读出数据 开始计数 七段显示译码器译码 输出到数
3、码管显示。 5、分频:将时钟频率为 1MHz分频为计数器计数频率 1Hz,用来进行秒计时。 4.2 设计方案,功能验证方案,以及电路设计源代码,功能仿真激励源代码及功 能仿真结果报告: 1、 RAM 的功能模块: wr rd addr_in3:0 din 7:0 dout7:0 RAM:reg 7:0 ram10:1 10 8 的 RAM 存储阵列 10 个字每个子 8 位 输入端 输入地址 addr_in3:0; 输入数据 din7:0; 上升沿有效写入信号 wr; 输出数据 dout7:0; 上升沿有效读信号 rd; 端口 功能 Rd 读使能 高电平有效;系统使能工作,将 din 数据写入
4、 ram 的存储单元中 Wr 写使能 高电平有效;将 ram 存储单元中的数据读出 dout。 Addr_in 模块内控制读写地址;系统的模值控制 Din 数据输入口,内部接口 Dout 数据输出,内部数据传送 Reset 初始化置数,电平触发 RAM的地址切换: 双端口RAM 为10 8RAM由地址切换键按顺序切换110 个地址端口 RAM addr_in3:0 Ram存储单元 0001 0000_0001 0010 0000_0010 0011 0000_0011 0100 0000_0100 0101 0000_0101 0110 0000_0110 0111 0000_0111 100
5、0 0000_1000 1001 0000_1001 1010 0000_1010 程序: input wr,rd; input reset,clk_1mhz; input addr_in; wire3:0 addr_in; input7:0 din; wire7:0 din; output7:0 dout; reg7:0 dout; reg7:0mem10 :1; always(posedge clk_1mhz ,negedge reset ) begin if(!reset) begin mem1=8d1;mem2=8d2; mem3=8d3;mem4=8d4; mem5=8d5;mem6
6、=8d6; mem7=8d7;mem8=8d8; mem9=8d9;mem10=8d10; end else if(wr = 1 else if(rd = 1 end Endmodule 激励模块:module test; reg clk_1mhz,wr,rd,reset; reg 7:0 din; reg 3:0 addr_in; wire7:0 dout; ram ram(wr,rd,reset,dout,clk_1mhz,din,addr_in); initial begin reset=1d1;clk_1mhz=1d0; wr=1d0;rd=1d0; addr_in=4d0; #2 reset=1d0; #2 rd=1d1; #2 addr_in=4d0;#2 addr_in=4d1; #2 addr_i