微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:XILINX中Block Ram的问题

求助:XILINX中Block Ram的问题

时间:10-02 整理:3721RD 点击:
我自己参考xilinx的帮助编写了一个block ram,但不知怎样可以把我的reset添加进去,但xilinx本身提供的block ram模块是有复位的,怎样才可以编写带reset呢?
xilinx提供的模块之一如下:
RAMB16_S1_S2 (DOA, DOB, ADDRA, CLKA, DIA, ENA, SSRA, WEA, ADDRB, CLKB, DIB, ENB, SSRB, WEB);
xilinx提供的block ram代码,但与上面的比较缺少了复位,怎样才可以把复位加进去?谢谢!
/ Only XST supports RAM inference
// Infers Dual Port Block Ram

module dpblockram_v (clk, we, a, dpra, di, spo, dpo);

input        clk;
input        we;
input  [4:0] a;
input  [4:0] dpra;
input  [3:0] di;
output [3:0] spo;
output [3:0] dpo;

reg    [3:0] ram [31:0];
reg    [4:0] read_a;
reg    [4:0] read_dpra;

always @(posedge clk) begin
if (we)
ram[a] <= di;
read_a <= a;
read_dpra <= dpra;
end

assign spo = ram[read_a];
assign dpo = ram[read_dpra];

endmodule

求助:XILINX中Block Ram的问题
xilinx的BlockRAM是不带复位的!不能通过复位信号清除BlockRAM的内容。如果模块有复位信号,也仅仅是复位输入/输出寄存器。

求助:XILINX中Block Ram的问题
不错,是我看漏了,谢谢 一声叹息  !资料里有说:
The reset pin forces the data output bus latches to zero synchronously.This does not affect the memory cells of the RAM and does not disturb a write operation on the other port.
但倘若我自己怎么可以做复位呢?

求助:XILINX中Block Ram的问题
我的做法是向BlockRAM中写0。

求助:XILINX中Block Ram的问题
这也是一个办法。我看了一下xilinx里block ram的仿真程序,是在接收到reset是用for把memory的内容写零,这样可行吗?

求助:XILINX中Block Ram的问题
可行,我一直这么做,只是没用for语句,呵呵。

求助:XILINX中Block Ram的问题
谢谢!

设计个中断,可行不,求大仙指路

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top