ist es möglich ein 1kByte RAM so zu implementieren, dass auf der einen Seite ein 32Bit Datenbus und auf der anderen Seite ein 16Bit Datenbus zur Verfügung stehen? Wenn ja, wie?
Ich kenne es von den Altera Blockramzellen her: Dort ist das möglich: Der eine Bus hat eine Adresse weniger, wobei zwei Teilzellen zu 16 bit gleichzeitig adressiert und beschrieben werden. Das kann man aber auch per Hand aus zwei 16-Wort RAMs aufbauen.
Sicherlich. Kannst ja auf der 16Bitseite mit highword und lowwordzugriff arbeiten.
Wenn Du ein internes Dual-Port-Ram in einem FPGA meinst, dann ist es bei Xilinx auch möglich. Am besten Du verwendest den Core-Generator und setzt Width A und Width B nach deinen Wünschen. Klaus
Die Antwort von Jürgen kommt der Sache schon recht nahe. Doch wie formuliere ich das in VHDL? Im Moment ist das RAM so formuliert: (auf Seite A nur Schreiben, auf Seite B nur Lesen) ------------------------------------------------------ architecture ReadThroughRAM512Byte16Bit_arch of ReadThroughRAM512Byte16Bit is -- RAM Definition type ram_type is array (511 downto 0) of STD_LOGIC_VECTOR(15 downto 0); signal RAM : ram_type; signal AB_sig : STD_LOGIC_VECTOR(8 downto 0); -- wait Signale signal WAITA_sig : STD_LOGIC; signal WAITB_sig : STD_LOGIC; begin process (INT_CLK) begin if rising_edge(INT_CLK) then if WEA = '1' then RAM(conv_integer(AA)) <= DA; end if; AB_sig <= AB; end if; end process; DB <= RAM(conv_integer(AB_sig)); -- wait Signal auf die andere Seite weitergeben WAITA_sig <= CSB; WAITA <= WAITA_sig; WAITB_sig <= CSA; WAITB <= WAITB_sig; end ReadThroughRAM512Byte16Bit_arch; ------------------------------------------------------
hallo schau doch mal unter den code templates : VHDL -> Device Primitive Instantiation -> FPGA -> RAM\ROM -> Block RAM -> Virtex2 Spartan 3 -> Dual Port Ram Missmatched Port Size .... Weis ja nicht was du für ein FPGA hast .... vielleicht hillfts ja weiter ....
Ich sehe nicht ganz, was die waits dort machen. DP heisst ja eigentlich simultaner, ungeblockter Zuriff. Oder sind das interne Signale, anderer Bedeutung?
Jürgen, Sorry, das sind wirklich "andere" Signale. Die haben mit dem eigentlichen DP RAM nichts zu tun und werden nur für den Zugriffsschutz gebraucht, sozusagen als Handshaking dass die andere Seite jeweils weiss, was die eine gerade tut. Eine Art Einfachst-RAM-Arbiter also. Gruss, Martin
@chris: Wo genau finde ich diese Code Templates? Im ISE? (habe 6.3 und 8.1 im Einsatz)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.