DDR SDRAM控制器的软核设计

DDR SDRAM控制器的软核设计,第1张

实现数据的高速大容量存储是数据采集系统中的一项关键技术。本设计采用Altera 公司Cyclone系列的FPGA 完成了对DDR SDRAM 的控制,以状态机来描述对DDR SDRAM 的各种时序 *** 作,设计了DDR SDRAM 的数据与命令接口。用控制核来简化对DDR SDRAM 的 *** 作,并采用自顶至下模块化的设计方法,将控制核嵌入到整个数据采集系统的控制模块中,完成了数据的高速采集、存储及上传。使用开发软件Quartus II 中内嵌的逻辑分析仪SignalTap II 对控制器的工作流程进行了验证和调试。最终采集到的数据波形表明,完成了对DDR SDRAM 的突发读写 *** 作,达到了预期设计的目标。

DDR SDRAM 是Double Data Rate SDRAM 的缩写,即双倍速率同步动态随机存储器。

DDR 内存是在SDRAM 内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM 相同的总线时钟频率下达到更高的数据传输率。本设计中采用Altera 公司Cyclone 系列型号为EP1C6Q240C8 的FPGA 实现控制器,以Hynix 公司生产的型号为HY5DU121622B(L)TP 的DDR SDRAM 为存储器,完成了对数据的高速大容量存储。

DDRII的时序实际上并不难,但是要满足TIMING需求就是问题了。也许用VERILOG或VHDL写出来的模块最后无法驱动DDR也有可能。建议调用ALTERA的IP吧。需要的话可联系我:liuphonix@126.com

我这里有六位的

module time_display(clk_100,hour,minute,second,led_light,sm_seg)

input clk_100

input [4:0] hour

input [5:0] minute

input [5:0] second

output [5:0] led_light

output [7:0] sm_seg//假设这里用的是8段数码管

reg [5:0] led_light

reg [7:0] sm_seg

reg [3:0] led

reg [2:0] led_count

always @ (posedge clk_100)

begin

if(led_count==5)

led_count<=3'b0

else

led_count<=led_count+3'b001

case(led_count)

3'b000:

begin

led_light<=6'b00_0001

led<=second%10

end

3'b001:

begin

led_light<=6'b00_0010

led<=second/10

end

3'b010:

begin

led_light<=6'b00_0100

led<=minute%10

end

3'b011:

begin

led_light<=6'b00_1000

led<=minute/10

end

3'b100:

begin

led_light<=6'b01_0000

led<=hour%10

end

3'b101:

begin

led_light<=6'b10_0000

led<=hour/10

end

endcase

end

always @ (led_light)

begin

case(led)

4'h0:sm_seg=8'hc0//"0"

4'h1:sm_seg=8'hf9//"1"

4'h2:sm_seg=8'ha4//"2"

4'h3:sm_seg=8'hb0//"3"

4'h4:sm_seg=8'h99//"4"

4'h5:sm_seg=8'h92//"5"

4'h6:sm_seg=8'h82//"6"

4'h7:sm_seg=8'hf8//"7"

4'h8:sm_seg=8'h80//"8"

4'h9:sm_seg=8'h90//"9"

default:sm_seg=8'hc0//"0"

endcase

end

endmodule


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12126682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存