hallo zusammen ich habe ein IP core fifo 8x8 bit und ein test data_wort 64 bit eingangsignal des Fifo ist DIN 8bit. ich will das wort ins fifo schreiben aber es wird nur die ersten 8 bit gelesen brauche ich ein zähler ? ich komme nicht voran irgendwelche vorschläfe. meine simulation sieht so aus danke im voraus
Du musst deinem FIFO auch die anderen Bits anbieten damit er diese übernehmen kann. Kannst du mal deinen Code zeigen? Nur die Waveform bringt nicht so viel...
danke für die rückmeldung hier ist mein code ich habe zwei fsm eine zum schreiben und die andere zum lesen aus dem fifo ich beschäftige mich erst seit einpaar wochen mit vhdl
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 | |
133 | |
danke im voraus
Beim ersten schnellen drüberschauen springt mir erstmal das hier ins Auge: reno kortes schrieb: > din <= data; din ist ein 8 bit Vektor, data ein 64 bit Vektor. Damit wird din immer die ersten 8 bit von data zugewiesen. Ich vermisse irgendwo die Zuweisung der nächsten 8 bit. z.B. din <= data (63 downto 56) din <= data (55 downto 48) ...
Gast
#3421336
M. D. schrieb: > reno kortes schrieb: >> din <= data; > > din ist ein 8 bit Vektor, data ein 64 bit Vektor. Damit wird din immer > die ersten 8 bit von data zugewiesen. Welcher Compiler/Simulator macht das denn so? Modelsim würde dafür einen Fehler ausgeben...
ja das stimmt aber ich auch schon mit din <= data(63 downto 56) din <= data(55 downto 48) din <= data(47 downto 40) din <= data(39 downto 32) ... probiert aber immer nur die ersten 8bit wie macht er das liest er die alle in einem clk oder jede 8bit in einem clk aber ist die simulation schon richtig überhaupt ich meine die "FULL" UND "EMPTY"
ich habe mir sowas überlegt :
if (clk' event and clk ='1') then
for index in 0 to 7 loop --da mein fifo ist 8x8 bit
din <= data(index*8 to (index*8)+7);
aber wo soll ich die schleife einsetzen in einem processs oder fsm ???
Gast
#3421390
reno kortes schrieb: > ich habe mir sowas überlegt : > > if (clk' event and clk ='1') then > for index in 0 to 7 loop --da mein fifo ist 8x8 bit > din <= data(index*8 to (index*8)+7); > aber wo soll ich die schleife einsetzen in einem processs oder fsm ??? Abgesehen davon, dass der Compiler über "to" ungleich "downto" meckern würde, hätte das denselben Effekt wie die Zuweisungen, die Du vorher beschrieben hast... Ich weiß solche Antworten helfen nicht wirklich weiter, aber da fehlt es eindeutig noch an VHDL-Grundlagen.
Gast
#3421624
Offenbar möchtest Du ein FIFO mit unterschiedlichen Datenbreiten. Trotzdem muß der mittlere Zufluss dem mittleren Abfluss entsprechen. Wenn Du mit einem Takt 64 Bit ins FIFO schreibst (dazu muss muß der Schreibport auch 64 Bit breit sein), kannst Du mit acht Takten auf der anderen Seite 8 x 8 Bit auslesen (dazu muß die Leseseite 8 Bit breit sein). Duke
eingentlich will ich nur simulieren wie es aussieht wenn der fifo voll ist deswegen will ich 64 bit reinschreiben bis er voll ist. ich will nur den satz : "schreibe solange der fifo nicht voll immer wieder daten rein" implimentieren. und das habe ich im zustand_4 probiert
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Gast
#3422140
soweit ich verstehe solls ja nur eine Testbench werden, soll also nicht synthetisiert werden, dann ist so doch einfacher:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
nur so als Anregung, Vorsicht könnte sytaxfehler enthalten!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
