Forum: FPGA, VHDL & Co. DCM und Ram Simulieren


von Fresh (Gast)


Lesenswert?

Hi

Habe zwar schon einen Beitrag zu diesen Thema im Forum gefunden 
allerdings konnte ich mein Problem auch mit diesen nicht lösen. Ich 
verwende in meinen Desing eine DCM von Xilinx und ein Blockram und würde 
beides gerne in Modelsim simulieren. Habe dazu in meine do file die vhdl 
Files des Rams und der DCM dazugenommen und in der Testbench folgende 
Zeilen einegefügt:

library UNISIM;
use UNISIM.Vcomponents.ALL;

Wenn ich nun mein do fiole ausführe erhalte ich von der Testbench zwar 
den 40Mhz Takt aber mein mit der dcm erzeugte 80MHz takt kommt nicht!?

Muss ich sonst noch etwas beachten wenn ich die dcm simulieren muss? 
Habe gelesen das man die Zeit auf 1ps stellen muss?!

Danke im vorhinein für die Hilfe.

MFG Fresh

von Klaus F. (kfalser)


Lesenswert?

Normalerweise sollten DCM und Blockram sich ohne Probleme simulieren 
lassen, wobei mir jetzt nicht klar ist, wofür Du die do Files brauchst.

Nach meiner Erfahrung muss die Auflösung auf < 1ns gesetzt werden, es 
kommt aber eine Meldung, wenn man das nicht macht.
Ob deshalb die DCM nicht anschwingt oder simuliert, weiss ich nicht.
Vielleicht hast Du noch ein Problem mit dem Reset der DCM.

Wenn Du ein paar Quellen zeigt, dann kann man sie mit einem 
funktionierenden Design vergleichen. Vielleicht probierst Du zuerst auch 
nur mit einem einfachen Programm, das nur die DCM enthält.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich verwende in meinen Desing eine DCM von Xilinx und ein Blockram
Wie hast du die erzeugt?
Selber instantiiert oder mit dem Wizzard gerneriert?
Welche Version (Tools+Core)?

von Wolfgang Kopp (Gast)


Lesenswert?

Hallo Fresh,

man kann den DCM mit Modelsim einfach simulieren, mit UNISIM bist du da 
genau richtig.

Ggf. hast du den feedback (CLKFB) nicht richtig angeschlossen. Z.B.:

        DCM1: DCM
            generic map (
                CLKFX_DIVIDE    => 1,
                CLKFX_MULTIPLY  => 3,
                CLKIN_PERIOD    => 10.0)
            port map (
                CLKIN       => iClk,
                CLKFB       => CLK1,
                DSSEN       => GND,
                PSINCDEC    => GND,
                PSEN        => GND,
                PSCLK       => GND,
                RST         => sReset,
                CLK0        => CLK1,
                CLKDV       => open,
                CLKFX       => sClkFx1,
                LOCKED      => dcmlocked1);


Lass die Simulation auch etwas länger laufen, kann sein ,dass die DCM 
länger zum anlaufen benötigt...


Wolfgang

von Fresh (Gast)


Lesenswert?

Hi
Danke für die Antworten. Habe gerade ein Problem entdeckt welches 
vielleicht die Lösung ist. Ich habe die simulation Libs compeliert und 
dabei sagt er das es ModelSim6.3c benötigt. Ich arbeite aber mit 
QuestaSim 6.3e. Kann das ein Problem sein bei der Simulation?!?

von Christian R. (supachris)


Lesenswert?

Naja, du musst die Libs schon mit deinem Simulator für deinen Simulator 
kopilieren. Die Quellcodes sind ja im Xilinx Programm-Ordner.

von Fresh (Gast)


Lesenswert?

Aber er zeigt mir im questasim im workspace bereits die ordner unisim 
und xilinxcorelib an und dort sollten die ja drin sein wie ich anehme 
oder?

MFG Fresh

von berndl (Gast)


Lesenswert?

wie Klaus oben schon schrieb: Hast du ueberprueft, dass dein Simulator 
mit '1ps' Aufloesung arbeitet?

Das scheint der DCM zu brauchen, sonst geht da gar nix. Ich arbeite hier 
unter Linux mit GHDL und habe bisher auch nicht heraus gefunden, wie ich 
den DCM zum 'funken' kriege. Ich hab' mir dann fuer Simulation einen 
eigenen DCM geschrieben...

von berndl (Gast)


Lesenswert?

PS: Du hast doch auch ein BRAM instanziiert? Dann lass doch deinen 
Design mal mit der Eingangsclock laufen. Tut das BRAM dann? Das wuerde 
naemlich den Verdacht mit der Simulatoraufloesung erhaerten...

von Fresh (Gast)


Lesenswert?

Hi

Also ich habe in der Arbeit das Questasim 6.3e und zuhause eine ältere 
Modelsim Version. Mit der Modelsim Version funktioniert zumindest die 
DMC einmal. Wenn ich in der Arbeit die simulation Libs compiliere sagt 
er das er Questasim 6.3c benötigt. Wie bzw woher bekomme ich nun die 
Libs für die 6.3e version?! Danke im vorhinein!

MFG fresh

von Klaus F. (kfalser)


Lesenswert?

Üblicherweise sind die Libraries nicht so spezifisch, dass sie genau 
eine bestimmte Version eines Simulators benötigen, deshalb wundert mich 
dies.

Compilierst Du die Libraries wirklich aus dem Quellcode?
Versuch es mit der allerneusten Version von Xilinx.
Du musst auch unterscheiden, es gibt mehrere Libraries, welche macht 
Probleme beim compilieren?
UNISIM ist wichtig für die funktionale Simulation.
Die Core-Generator Library ist für alles, was mit dem CoreGenerator 
erzeugt wird, der DCM core ist aber in UNISIM.
SIMPRIM ist nur für die Timing-Simulation, diese braucht man 
normalerweise nicht.

Man kann die Libraries auch getrennt compilieren, im Prinzip sollest Du 
nur UNISIM brauchen, die core generator library eventuell für das BRAM.

von Fresh (Gast)


Lesenswert?

Hi

Also meine DCM läst sich nun simulieren aber dafür kann ich den Blockram 
nichts reinschreiben. Habe nun eine eigene kleine Simulation für den 
Blockram erstellt und dort ist ständig die Adresse und die Daten 
angelegt und auch das WEN ist auf 1 gesetzt aber im Speicher steht nur 
"UUUUU...". Der Speicher ist mit den CoreGen generiert. Hätte eigtenlich 
aufgrund der vhd datei gedacht das er mit 0 initialisiert ist.

MFG fresh
1
LIBRARY ieee;
2
USE ieee.std_logic_1164.ALL;
3
-- synthesis translate_off
4
Library XilinxCoreLib;
5
-- synthesis translate_on
6
ENTITY ram_swconfig IS
7
  port (
8
  clka: IN std_logic;
9
  dina: IN std_logic_VECTOR(24 downto 0);
10
  addra: IN std_logic_VECTOR(9 downto 0);
11
  wea: IN std_logic_VECTOR(0 downto 0);
12
  clkb: IN std_logic;
13
  addrb: IN std_logic_VECTOR(9 downto 0);
14
  doutb: OUT std_logic_VECTOR(24 downto 0));
15
END ram_swconfig;
16
17
ARCHITECTURE ram_swconfig_a OF ram_swconfig IS
18
-- synthesis translate_off
19
component wrapped_ram_swconfig
20
  port (
21
  clka: IN std_logic;
22
  dina: IN std_logic_VECTOR(24 downto 0);
23
  addra: IN std_logic_VECTOR(9 downto 0);
24
  wea: IN std_logic_VECTOR(0 downto 0);
25
  clkb: IN std_logic;
26
  addrb: IN std_logic_VECTOR(9 downto 0);
27
  doutb: OUT std_logic_VECTOR(24 downto 0));
28
end component;
29
30
-- Configuration specification 
31
  for all : wrapped_ram_swconfig use entity XilinxCoreLib.blk_mem_gen_v2_7(behavioral)
32
    generic map(
33
      c_has_regceb => 0,
34
      c_has_regcea => 0,
35
      c_mem_type => 1,
36
      c_prim_type => 1,
37
      c_sinita_val => "0",
38
      c_read_width_b => 25,
39
      c_family => "spartan3",
40
      c_read_width_a => 25,
41
      c_disable_warn_bhv_coll => 0,
42
      c_write_mode_b => "READ_FIRST",
43
      c_init_file_name => "no_coe_file_loaded",
44
      c_write_mode_a => "READ_FIRST",
45
      c_mux_pipeline_stages => 0,
46
      c_has_mem_output_regs_b => 0,
47
      c_load_init_file => 0,
48
      c_xdevicefamily => "spartan3",
49
      c_has_mem_output_regs_a => 0,
50
      c_write_depth_b => 1024,
51
      c_write_depth_a => 1024,
52
      c_has_ssrb => 0,
53
      c_has_mux_output_regs_b => 1,
54
      c_has_ssra => 0,
55
      c_has_mux_output_regs_a => 0,
56
      c_addra_width => 10,
57
      c_addrb_width => 10,
58
      c_default_data => "0",
59
      c_use_ecc => 0,
60
      c_algorithm => 1,
61
      c_disable_warn_bhv_range => 0,
62
      c_write_width_b => 25,
63
      c_write_width_a => 25,
64
      c_read_depth_b => 1024,
65
      c_read_depth_a => 1024,
66
      c_byte_size => 9,
67
      c_sim_collision_check => "ALL",
68
      c_use_ramb16bwer_rst_bhv => 0,
69
      c_common_clk => 0,
70
      c_wea_width => 1,
71
      c_has_enb => 0,
72
      c_web_width => 1,
73
      c_has_ena => 0,
74
      c_sinitb_val => "0",
75
      c_use_byte_web => 0,
76
      c_use_byte_wea => 0,
77
      c_use_default_data => 0);
78
-- synthesis translate_on
79
BEGIN
80
-- synthesis translate_off
81
U0 : wrapped_ram_swconfig
82
    port map (
83
      clka => clka,
84
      dina => dina,
85
      addra => addra,
86
      wea => wea,
87
      clkb => clkb,
88
      addrb => addrb,
89
      doutb => doutb);
90
-- synthesis translate_on
91
92
END ram_swconfig_a;

von berndl (Gast)


Lesenswert?

Fresh schrieb:
> Also meine DCM läst sich nun simulieren

und woran lag's?

von Fresh (Gast)


Lesenswert?

Hi

Ich habe aus den Xilinix heraus die Unisim Lib für meine Questasim 
Version generiert und jetzt läuft die DCM. Nachdem daher die Unisim geht 
verstehe ich aber nicht ganz warum der Ram nicht funktioniert. Ich teste 
das ganze dadurch das ich eine adresse anlege und daten und dann setzte 
ich das Wen für immer auf 1 aber im Memory steht immer uuuuuuuuu und das 
obwohl er als initwert doch 0 stehen haben sollte. Daher sieht man schon 
das die simulation nicht funktioniert. Hat jemand eine tip wie ich das 
Problem lösen kann?!

DANKE

MFG Fresh

von Klaus F. (kfalser)


Lesenswert?

Kann es sein, dass kein Model für das BRAM eingebunden ist?
Man merkt dies nur an den Meldungen beim Starten der Simulation, die 
Simulation läuft trotzdem!

von Fresh (Gast)


Lesenswert?

Hi

Also ich bekomme wenn ich die Simulation starte leider nicht mal ne 
Fehlermeldung. Habe die Ausgabe von Questasim einmal kopiert.

MFG Fresh
1
do ramtest.do 
2
# Modifying modelsim.ini
3
# Modifying modelsim.ini
4
# ** Warning: (vlib-34) Library already exists at "work".
5
# QuestaSim vcom 6.3e Compiler 2008.02 Feb  2 2008
6
# -- Loading package standard
7
# -- Loading package std_logic_1164
8
# -- Loading package numeric_std
9
# -- Loading package vcomponents
10
# -- Compiling entity dcm8024
11
# -- Compiling architecture behavioral of dcm8024
12
# QuestaSim vcom 6.3e Compiler 2008.02 Feb  2 2008
13
# -- Loading package standard
14
# -- Loading package std_logic_1164
15
# -- Compiling entity ram_swconfig
16
# -- Compiling architecture ram_swconfig_a of ram_swconfig
17
# -- Loading package textio
18
# -- Loading package std_logic_arith
19
# -- Loading package std_logic_unsigned
20
# -- Loading entity blk_mem_gen_v2_7
21
# QuestaSim vcom 6.3e Compiler 2008.02 Feb  2 2008
22
# -- Loading package standard
23
# -- Loading package std_logic_1164
24
# -- Loading package numeric_std
25
# -- Compiling entity test
26
# -- Compiling architecture rtl of test
27
# -- Loading entity ram_swconfig
28
# -- Loading package vcomponents
29
# -- Loading entity dcm8024
30
# QuestaSim vcom 6.3e Compiler 2008.02 Feb  2 2008
31
# -- Loading package standard
32
# -- Loading package std_logic_1164
33
# -- Loading package vcomponents
34
# -- Compiling entity test_tb
35
# -- Compiling architecture dut of test_tb
36
# -- Compiling configuration test_tb_dut_cfg
37
# -- Loading entity test_tb
38
# -- Loading architecture dut of test_tb
39
# -- Loading package numeric_std
40
# -- Loading entity test
41
# vsim -lib work -t 1ps test_tb 
42
# ** Note: (vsim-3813) Design is being optimized due to module recompilation...
43
# Loading std.standard
44
# Loading ieee.std_logic_1164(body)
45
# Loading unisim.vcomponents
46
# Loading work.test_tb(dut)#1
47
# Loading ieee.numeric_std(body)
48
# Loading work.test(rtl)#1
49
# Loading std.textio(body)
50
# Loading ieee.std_logic_arith(body)
51
# Loading ieee.std_logic_unsigned(body)
52
# Loading work.ram_swconfig(ram_swconfig_a)#1
53
# Loading ieee.std_logic_textio(body)
54
# Loading xilinxcorelib.blk_mem_gen_v2_7(behavioral)#1
55
# Loading xilinxcorelib.blk_mem_gen_v2_7_output_stage(behavioral)#1
56
# Loading work.dcm8024(behavioral)#1
57
# Loading unisim.bufg(bufg_v)
58
# Loading unisim.ibufg(ibufg_v)
59
# Loading ieee.vital_timing(body)
60
# Loading ieee.vital_primitives(body)
61
# Loading unisim.vpkg(body)
62
# Loading unisim.dcm(dcm_v)#1
63
# Loading unisim.dcm_clock_divide_by_2(dcm_clock_divide_by_2_v)
64
# Loading unisim.dcm_maximum_period_check(dcm_maximum_period_check_v)
65
# Loading unisim.dcm_clock_lost(dcm_clock_lost_v)
66
# .main_pane.mdi.interior.cs.vm.paneset.cli_0.wf.clip.cs.pw.wf
67
# .main_pane.workspace.interior.cs.nb.canvas.notebook.cs.page8.cs
68
# .main_pane.variables.interior.cs
69
# .main_pane.signals.interior.cs
70
run 2000ns

von Fresh (Gast)


Lesenswert?

Bekomme geradeinmal folgende Meldung wenn ich beginne den Ram zu 
beschreiben:
1
# ** Note: Block Memory Generator CORE Generator module is using a behavioral model for simulation which will not precisely model memory collision behavior.
2
#    Time: 5237500 ps  Iteration: 4  Instance: /test_tb/dut/xilinx_blockram_inst/u0

von Fresh (Gast)


Lesenswert?

Hi

Habe gerade entdeckt das ich das setzen auf den init wert deaktiviert 
hatte und habe es nun aktiviert:
1
# Loading xilinxcorelib.blk_mem_gen_v2_7(behavioral)#1
2
# ** Note:  Block Memory Generator CORE Generator module loading initial data...
3
#    Time: 0 ps  Iteration: 0  Instance: /test_tb/dut/xilinx_blockram_inst/u0

Allerdings steht weiterhin nicht 0 oder 1 sondern U drin.

MFG Harald

von berndl (Gast)


Lesenswert?

Also mit dem Core Generator hab' ich noch nie was gemacht. Hast du mal 
versucht, aus den Xilinx Templates ein BRAM 'normal' zu instantiieren? 
So mache ich das immer. Und ich hatte bisher nur eine Stolperfalle: 
ENA_A und ENA_B muessen sowohl beim lesen als auch beim schreiben aktiv 
sein.
In deinem Bsp. oben sehe ich nur WEA/WEB. Wo ist da das 'allgemeine' RAM 
enable?

von Fresh (Gast)


Lesenswert?

Hi
Das allgemeine Ram Enable kann man beim core generator auf always enable 
stellen daher braucht man es nicht mehr extra. Das mit den Ram selber 
zusammenbauen habe ich auch schon gehört aber ich brauche ein ram mit 
1023x25 das gibts natürlich nicht standardmässig!?

MFG Fresh

von berndl (Gast)


Lesenswert?

Du kannst dir aber 2 RAMs 1024x16 (bevorzugt) oder 2 RAMs 512x32 
instantiieren, wo ist das Problem? Das ganze in eine entity verpackt, 
dann sieht das nach aussen wie 1024x32 aus.
Und da du ja die UNISIM compiliert hast (dein DCM tut ja jetzt) ist das 
m.M. nach einen Versuch wert. Vlt. hat dein Simulator ein Problem mit 
dem Coregen-Zeugs...

von Klaus Falser (Gast)


Lesenswert?

Das Modell wird aus xilinxcorelib geladen, das sieht man, soweit sollte 
das in Ordnung sein.
Ich denke auch nicht, dass das Modell einen Fehler hat, deshalb denke 
ich, dass das Umstellen auf direkte BRAMs nichts bringt.

Mir ist noch nicht ganz klar, hast Du im Core Generator Startwerte für 
das RAM angegeben, und erwartest dass diese jetzt gelesen werden?
Oder schreibt Du ins BRAM und liest trotzdem nichts zurück?
Was auffällt ist, dass im Modell

c_init_file_name => "no_coe_file_loaded",

steht, aber dazu weiss ich nicht viel.

Der Wert 'U' steht jedenfalls für uninitialisiert.
Vielleicht zeigst Du einmal ein paar VHDL Files und eventuell einen 
Screenshot des Simulationsvorgangs.

von fresh (Gast)


Lesenswert?

Hi

Also ich habe derzeit eine Testbench laufen die nur aus einer DCM und 
den Ram besteht:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4
5
entity test is
6
  port (
7
    clk40   : in std_logic;             -- System clock
8
    reset_b : in std_logic;             -- Aynchronous reset
9
10
    dina  : in std_logic_vector(24 downto 0);
11
    addra : in std_logic_vector(9 downto 0);
12
    wea   : in std_logic_vector(0 downto 0)
13
    );
14
end test;
15
16
architecture rtl of test is
17
18
  signal addrb : std_logic_vector(9 downto 0) := (others => '0');
19
  signal doutb : std_logic_vector(24 downto 0);
20
  
21
  -- signals for general use
22
  signal reset_n   : std_logic;
23
  signal reset_dcm : std_logic;
24
  signal clk80     : std_logic;
25
  signal clk40buf  : std_logic;
26
  signal clk24     : std_logic;
27
28
    
29
begin
30
31
  -- Resetsignal for the DCM module
32
  reset_dcm <= not reset_b;
33
34
  xilinx_blockram_inst : entity work.ram_swconfig 
35
    port map (
36
      clka  => clk80,
37
      dina  => dina,
38
      addra => addra,
39
      wea   => wea,
40
      clkb  => clk80,
41
      addrb => addrb,
42
      doutb => doutb);
43
44
  xilinx_dcm8024_inst : entity work.dcm8024
45
    port map (
46
      CLKIN_IN        => clk40,
47
      RST_IN          => reset_dcm,
48
      CLKFX_OUT       => clk24,
49
      CLKIN_IBUFG_OUT => clk40buf,
50
      --CLK0_OUT => clk40s,
51
      CLK2X_OUT       => clk80,
52
      LOCKED_OUT      => reset_n);
53
  
54
55
end rtl;

In der testbench wir einfach ab einen gewissen Zeitpunkt das Wen SIgnal 
un die Daten sowie die Adresse gesetzt und ich würde dann gerne im Ram 
den Wert sehen.
Testbench:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
library UNISIM;
4
use UNISIM.Vcomponents.ALL;
5
library XilinxCoreLib;
6
7
architecture dut of test_tb is
8
9
  component test
10
    port (
11
      clk40   : in std_logic;
12
      reset_b : in std_logic;
13
      dina    : in std_logic_vector(24 downto 0);
14
      addra   : in std_logic_vector(9 downto 0);
15
      wea     : in std_logic_vector(0 downto 0));
16
  end component;
17
18
  -- component ports
19
  signal clk40   : std_logic := '0';
20
  signal reset_b : std_logic := '0';
21
  signal dina    : std_logic_vector(24 downto 0):= (others => '0');
22
  signal addra   : std_logic_vector(9 downto 0) := (others => '0');
23
  signal wea     : std_logic_vector(0 downto 0) := (others => '0');
24
25
26
begin  -- dut
27
28
  -- component instantiation
29
  DUT: test
30
    port map (
31
      clk40   => clk40,
32
      reset_b => reset_b,
33
      dina    => dina,
34
      addra   => addra,
35
      wea     => wea);
36
37
  -- clock generation
38
  clk40   <= not clk40 after 12.5 ns;
39
  reset_b <= '1' after 250 ns;
40
  
41
  process
42
  begin  -- process
43
    wea <= "0";
44
    wait for 50000 ns;
45
    dina  <= (others => '1');
46
    addra <= "0000000001";
47
    wea   <= "1";
48
    wait;
49
  end process;
50
51
end dut;

Die Adresse und die Daten sowie das Wen Signal werden auch richtig 
gesetzt aber im memory_i des Rams steht nicht drin außer UUUUUUU. 
Vielleicht sieht ja jemand den Fehler sofort und kann ihn mir bitte 
mitteilen?! DANKE

MFG Fresh

von Klaus Falser (Gast)


Lesenswert?

Dazu müßte man wissen, wie das interne Modell des BRAMs funktioniert, 
aber ich würde zumindest einmal die Adressen zählen lassen, oder 
zumindest ändern.

Die internen Daten oder Variblen eines Simulationsmodell anzuschauen, 
das man nicht selbst geschrieben hat oder nicht kennt, ist sicher nicht 
der richtige Weg um auf die Funktion zu schließen.
Schreibe eine Testbench die das Verhalten von AUSSEN beobachtet, also 
lege verschiedene Daten an, schreibe sie hinein und schau nach, ob das 
sie beim Auslesen wieder auftauchen.
Und irgendwo steht auch die Warnung, dass das Modell Kollisionen nicht 
richtig behandelt.
Man kann jedenfalls davon ausgehen, dass sich ein BRAM simulieren lässt, 
Du bist sicher nicht der erste, der das macht :-)

von berndl (Gast)


Lesenswert?

aehm, was moechtest du mit der TB eigentlich sehen? Dein Port B ist 
aussen gar nicht angeschlossen, an deinen Port A legst du eine Adresse, 
Daten sowie das write-enable an. Und was erwartest du da jetzt auf 
welchen Signalen?

Dein RAM soll mit der rising_edge der DCM clock arbeiten, richtig? Dann 
synchronisier dich in der TB mal auf die Clock80 falling_edge ein, dann 
lass mit jeder Clock mal die Adresse von 0 bis 1023 hochzaehlen, 
gleichzeitig aenderst du die Daten (einfach mal von 0 aus hochzaehlen). 
Das ganze einmal mit WEA=1 und danach nochmal mit WEA=0.
Da die Clock80 nur in der Component verfuegbar ist, kannst du auch die 
TB clock mit 40MHz nehmen und mal direkt ans BRAM anschliessen.

Und dann sollte das eigentlich funktionieren, zumindest mache ich das so 
beim instantiieren von BRAMs...

von berndl (Gast)


Lesenswert?

PS: Deine TB sollte auch eine entity ohne I/O ports haben

von manne (Gast)


Lesenswert?

Wurde das Problem gelöst? Ich hänge an demselben Ding....

von manne (Gast)


Lesenswert?

Die library legt wohl aus Performancegründen den Speicherinhalt nicht 
nach außen.

Lösung:
In der Datei: 
C:\Xilinx\11.1\ISE\vhdl\src\XilinxCoreLib\BLK_MEM_GEN_V3_3.vhd

DEBUG auf 1 setzen und mit Modelsim neu compilieren

(memory_i <= memory when DEBUG=1;)

von Fresh (Gast)


Lesenswert?

Hi
Also das mit den Debug funktioniert bei der BLK_MEM_GEN_V2_7.vhd 
zumindest bei mir nicht. Ich habe mir damals einfach eine Testbench 
geschrieben die in den Ram schreibt und dann vom Ram liest und es 
funktioniert. Habe dann im ganzen Design ach getestet und es geht auch. 
Ebenfalls konnte ich es schon in der Hardware erfolgreich testen.

MFG fresh

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
Noch kein Account? Hier anmelden.