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