dualport RAM
hoyuka
hoyuka at c2.hu
Tue Feb 21 00:40:55 CET 2006
Sziasztok!
Lehetseges elvileg olyan dualport RAM-ot csinalni, aminek 2 write portja van?
Nekem az alabbi kodot az iverilog szo nelkul leforditja, bar ez inkabb sok
portos regiszter tomb:
module RegisterFile(
rdSel0, rdData0, rdSel1, rdData1,
wr0, wrSel0, wrData0,
wr1, wrSel1, wrData1,
);
input wire wr0, wr1;
input wire [4:0] rdSel0, rdSel1, wrSel0, wrSel1;
input wire [7:0] wrData0, wrData1;
output wire [7:0] rdData0, rdData1;
reg [7:0] R[31:0];
assign rdData0=R[rdSel0];
assign rdData1=R[rdSel1];
always @(posedge wr0) R[wrSel0]<=wrData0;
always @(posedge wr1) R[wrSel1]<=wrData1;
endmodule
Az meg oke, hogy ket port van olvasasra, de ket port van irasra is (a ket
always block).
Mi van akkor, ha a ket beiiro portot ugyanazzal a beiro orajellel
pocogtetjuk es kulonbozo adatokat teszunk ra az adatvezetekekre, de azonos
regisztert cimzunk meg mindket porton? Ilyenkor melyik adat fog beirodni?
Gyanus nekem, hogy a gyakorlatban nem gyakori az ilyen "konstellacio"
es/vagy ez a fordito meg csomo minden reszletet elrejt.
Pl. a xilinx forditoja nem forditja le, hanem ezt a hibauzenetet adja:
ERROR:Xst:2072 - You are apparently trying to describe a dual-port RAM
with two separate write ports for signal <R>. This RAM currently cannot be
implemented because it is read asynchronously. Changing to synchronous
read would allow implementation on block RAM resources.
Pedig szerintem egy kis ugyeskedessel meg lehet valositani a fenti
mukodest. Mondjuk, ha egy regiszter 2 felol van irva ugyanarrol az
orajelrol, akkor belekerulhet a ket ertek vagy kapcsolata vagy akarmi.
udv.
hoyuka
--
http://hoyuka.myip.hu
-------------------------------------
C2 MAIL: Levelezés felsõfokon. http://mail.c2.hu
More information about the Elektro
mailing list