单双口RAM

// Quartus II Verilog Template
// Simple Dual Port RAM with separate read/write addresses and
// single read/write clock

module simple_dual_port_ram_single_clock
#(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=6)
(
input [(DATA_WIDTH-1):0] data,
input [(ADDR_WIDTH-1):0] read_addr, write_addr,
input we, clk,
output reg [(DATA_WIDTH-1):0] q
);

// Declare the RAM variable
reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0];

always @ (posedge clk)
begin
// Write
if (we)
ram[write_addr] <= data;

// Read (if read_addr == write_addr, return OLD data). To return
// NEW data, use = (blocking write) rather than <= (non-blocking write)
// in the write assignment. NOTE: NEW data may require extra bypass
// logic around the RAM.
q <= ram[read_addr];
end

endmodule

// Quartus II Verilog Template
// True Dual Port RAM with dual clocks

module true_dual_port_ram_dual_clock
#(parameter DATA_WIDTH=8, parameter ADDR_WIDTH=6)
(
input [(DATA_WIDTH-1):0] data_a, data_b,
input [(ADDR_WIDTH-1):0] addr_a, addr_b,
input we_a, we_b, clk_a, clk_b,
output reg [(DATA_WIDTH-1):0] q_a, q_b
);

// Declare the RAM variable
reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0];

always @ (posedge clk_a)
begin
// Port A
if (we_a)
begin
ram[addr_a] <= data_a;
q_a <= data_a;
end
else
begin
q_a <= ram[addr_a];
end
end

always @ (posedge clk_b)
begin
// Port B
if (we_b)
begin
ram[addr_b] <= data_b;
q_b <= data_b;
end
else
begin
q_b <= ram[addr_b];
end
end

endmodule

引自:Quartus II 13.1 insert template

时间: 2024-10-12 13:10:13

单双口RAM的相关文章

单口RAM、双口RAM、FIFO

单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行.而双口有两组数据线与地址线,读写可同时进行.FIFO读写可同时进行,可以看作是双口.    双口RAM分伪双口RAM(Xilinx称为Simple two-dual RAM)与双口RAM(Xilinx称为true two-dual RAM).伪双口RAM,一个端口只读,另一个端口只写:而双口RAM两个端口都可以读写.    FIFO也是一个端口只读,另一个端口只写.FIFO与伪双口RAM的区别在于,FIFO为先入先出,没有地

【iCore3 双核心板_FPGA】实验十九:基于双口RAM的ARM+FPGA数据存取实验

实验指导书及代码包下载: http://pan.baidu.com/s/1slOm60d iCore3 购买链接: https://item.taobao.com/item.htm?id=524229438677

双口电源设计小结

一. 双口电源控制器项目1. 双口控制器整体模块描述 双口共用一个开关电源,LDOA用于提供5V和100mA的驱动能力.主要作用是在双口都插入设备的时候,当A口设备充满电量的时候,此时会由LDOA进行供电,并释放开关电源,C口具备完整的快充能力:比如手机经过测试发现其充电电流小于100ma(50ma),但是由于波动需要数字电路提供滤波的电路设计,大于100ma持续0.5s才会认为发生了ALV欠压. ISENSEA用于检测A口设备的接入和拔出,检测ALC欠流模块:技术难度比较高,因为要通过一个小电

关于单双引号与数组冲突问题,解决方法

最近在写站群程序,想把配置都搞成文件存放起来.在开发过程中出现了单双引号与数组冲突的问题. 错误提示: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 给大家举个栗子: <?php $a['aaa'] = 'bbb'; echo "'$a['aaa']'"; ?> 解决方法:把中括号中的2个单引号

设置表格单双行颜色

<script type="text/javascript"> $(document).ready(function () { $("table").attr("bgColor", "#222222"); //设置表格的背景颜色 $("tr").attr("bgColor", "#3366CC"); //为单数行表格设置背景颜色 $("tr:ev

html table单双行颜色间隔(转载)

直接上代码: 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb3212"> 4 <title>单双行显示不同颜色</title> 5 <script type="text/javascript"> 6 window.onload = function color

sql语句的单双引号问题

$current_account_url='<a class="mini-button" iconcls="icon-edit" onclick="printabc('html/达能益力贸易(深圳)有限公司-[101]广东 2016-04-01-2016-04-30对账单.html')">查看/打印1</a>'; $sql_url="update tools_current_account set current

json包含单双引号问题解决方案

原创作品  转载请注明出处 最近项目中  遇到需要JSON传数据  但是某个字段 里面可能含有 双引号和单引号  导致出现错误 为了方便 写了一个工具类,比较好用. 支持"链式编程" 分享给大家 360网盘下载地址:http://yunpan.cn/cjCrRZj9uc8hE  访问密码 79f3 效果DEMO: JsonQuotesUtil.js /** * 解决json传输数据时存在 同时存在单引号和双引号的问题 * * 思路: * 将 单双引号用不容易在字符串中出现的字符分别替换

Gridview单双行

.table01_singlar        {            background-color: #FFFFFF;        }.table01_double        {            background-color: #e5eaf0;        } OnRowDataBound="gvData_RowDataBound" protected void gvData_RowDataBound(object sender, GridViewRowEve