博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RAM建模和初始化
阅读量:6332 次
发布时间:2019-06-22

本文共 1823 字,大约阅读时间需要 6 分钟。

冯诺依曼提出的存储计算,计算存储,因此,几乎所有的CPU和ASIC都会使用存储器,它们的类型很多,包括异步RAM、同步RAM、ZBT RAM、DDR DRAM、ROM等。由于大部分的异步RAM和SRAM都是晶圆代工厂定制的,一次需要修改成适合于FPGA结构的Verilog等效模型。FPGA的综合工具会将这些模型推译出FPGA芯片特有的嵌入式RAM。RAM的特点是一拍写入,两拍读出。所有RAM的设计都是在速度和容量直接的折中。

RAM的Verilog建模:

方式1:

//////  Generic Single-Port Synchronous RAM                         //////module or1200_spram_128x32(    // Generic synchronous single-port RAM interface    clk, rst, ce, we, oe, addr, di, doq);//// Default address and data buses width//parameter aw = 7;parameter dw = 32;//// Generic synchronous single-port RAM interface//input            clk;    // Clockinput            rst;    // Resetinput            ce;    // Chip enable inputinput            we;    // Write enable inputinput            oe;    // Output enable inputinput     [aw-1:0]    addr;    // address bus inputsinput    [dw-1:0]    di;    // input data busoutput    [dw-1:0]    doq;    // output data bus//// Generic single-port synchronous RAM model// Generic RAM's registers and wires//reg    [dw-1:0]    mem [(1<

 

方式2:

1 module bram_inference( 2       input clk, 3       input [15:0] mem_din, 4       input [9:0] mem_addr, 5       input mem_we, 6       output reg [15:0] mem_dout ); 7  8 reg [15:0] ram [0:1023]; 9 10 always (posedge clk)11 begin12       if(mem_we)13            ram[mem_addr] <= mem_din;14       mem_dout <= ram[mem_addr];15 end16 17 endmodule

 

这两种方式建模的区别在于关键路径不同,方式1的关键路径在输入,方式2的关键路径在输出。

RAM的初始化

用Verilog建模的RAM可以采用$readmemh()和$readmemb()函数初始储存器。

 

参考文献:

[1]Evgeni Stavinov. 第53则 存储器的建模. FPGA 高手设计实战正经100则. 电子工业出版社. 2013, 10.

[2] Single Port RAM Synchronous Read/Write .

. 2016,01,27.

[3] Dual Port RAM Synchronous Read/Write.

. 2016,01,27.

[4] ROM, EPROM, EEPROM.

[5] Memory Modeling.

[6] $readmemb和$readmemh.

[7] opencores.org/or1k/OR1K:Community_Portal.

转载于:https://www.cnblogs.com/dpc525/p/5164679.html

你可能感兴趣的文章
springmvc源码解析之@EnableWebMvc六
查看>>
vim入门操作实践
查看>>
Purism Librem笔电将会更安全!新增高安全性启动程序PureBoot
查看>>
实人认证玩出新高度,给千年老城注入新生科技力量
查看>>
java对word文档的在线打开
查看>>
Oracle-数据字典统计信息
查看>>
比原链合约入门教程
查看>>
剥开比原看代码16:比原是如何通过/list-transactions显示交易信息的
查看>>
网站跳转劫持漏洞的发现与修复建议
查看>>
Watchdogs利用Redis实施大规模挖矿,常见数据库蠕虫如何破?
查看>>
Springboot配置文件读取报错Configuration property name 'projectUrl' is not valid:
查看>>
HTTP状态码
查看>>
今天的学习
查看>>
面试必问之JVM原理
查看>>
配置Tomcat监听80端口...
查看>>
ppwjs之bootstrap网格系统:添加行和单元格
查看>>
做社交电商,你还没有用小程序?
查看>>
使用C语言的struct来实现C++的class
查看>>
PHP 数组排序
查看>>
Java第十二天
查看>>