求助: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提供的模块之一如下:
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的问题
谢谢!
设计个中断,可行不,求大仙指路
