pytanie

F

floatgrass

Guest
jeśli ja używać posedge triger zegar zawsze oświadczenie, ale Sigal jest posedge zmian, symulator myśleć jako niski poziom, ale to za ok syntezy?

jeśli Pix_Mux_s1 [7] Zmiany od 0 do 1, w tym samym czasie jedna wartość memtemp_v1 Frome zmienić na inną wartość, to w jaki sposób przypisać?jest przed czy po zmianie?
dzięki!
always @ (Mem_Pointer_s1 lub pixel_s1 lub Pix_Mux_s1)
zacząć
if (Pix_Mux_s1 [7])
zacząć
sprawy (Mem_Pointer_s1)
3'b001 begin
pixelcol_v1 [23:16] = pixel_s1;
pixelcol_v1 [15:8] = memtemp_v1 [15:8];
pixelcol_v1 [7:0] = memtemp_v1 [7:0];
koniec

3'b010 begin
pixelcol_v1 [23:16] = memtemp_v1 [23:16];
pixelcol_v1 [15:8] = pixel_s1;
pixelcol_v1 [7:0] = memtemp_v1 [7:0];
koniec

3'b100 begin
pixelcol_v1 [23:16] = memtemp_v1 [23:16];
pixelcol_v1 [15:8] = memtemp_v1 [15:8];
pixelcol_v1 [7:0] = pixel_s1;
koniec

domyślnie: pixelcol_v1 = memtemp_v1 / / nic nowego jest napisane
endcase
koniec
koniec

 
Cześć,

Myślę, że powodem jest się "zawsze" stanie.

"always @ (Mem_Pointer_s1 lub pixel_s1 lub Pix_Mux_s1)"
masz trzy wiązki, należy je opisać szczegółowo tutaj.

Narzędzie opieki syntezy desn't nich, ale narzędzie symulacyjne opieki im.

po prostu spróbować.

BR
z81203

 
z81203, co ty mówisz?To Verilog, nie VHDL.floatgrass 's przykład nie wymaga dalszych wyjaśnień.

Teraz tutaj są problemy floatgrass na przykład:
1.It's gonna wnioskować zatrzask, ponieważ jeżeli oświadczenie nie jest kompletna.(Musisz if (Pix_Mux_s1 [7]), ale nie "inny".

2.czułość memtemp_v1 brakuje.

OK, teraz pytanie brzmi, czy Pix_Mux_s1 [7] Zmiany w tym samym czasie, co memtemp_v1, co się wydarzy.

Musisz pamiętać o jednej rzeczy, nie ma czegoś takiego jak "w tym samym czasie" w symulatorze.Zawsze zamówienia.Chociaż symulator "planu" w tym samym czasie, zawsze porządek.ZWYKLE celu jest porządek w kodzie, ale niekoniecznie, zależy to od symulatora.

Rozważmy 2 przypadki, i zakładamy, że zdarzenie harmonogram symulator zgodnie z kolejnością w kodzie.
I odpowiada "B" zmian dokładnie tym samym czasie co Pix_Mux_s1.

case 1:
always @ (B)
memtemp_v1 = B;
always @ (Mem_Pointer_s1 lub pixel_s1 lub Pix_Mux_s1)
.... to jest twój wielki blok zawsze

case 2:
always @ (Mem_Pointer_s1 lub pixel_s1 lub Pix_Mux_s1)
.... to jest twój wielki blok zawsze
always @ (B)
memtemp_v1 = B;Let's spojrzeć na Twoje pytanie:
w przypadku 1: pixelcol_v1 dostanie "NEW" memtemp_v1 wartości od memtemp_v1 było obliczyć wcześniej niż zawsze bloku.

w przypadku 2: pixelcol_v1 dostanie "starych" memtemp_v1 wartości.*** Głównym problemem jest to, że przegapiłeś memtemp_v1 na liście czułości.

Załóżmy, że Dodaj memtemp_v1 do listy wrażliwości, zarówno w przypadku 1 i 2
pixelcol_v1 dostanie "NEW" memtemp_v1 wartości

DLACZEGO?
Spójrz na case 2:
w czasie t, harmonogram symulatora:
1.oceny pixelcol_v1 ponieważ Pix_Mux_s1 zmiany
2.oceny memtemp_v1 ponieważ zmiany B
3.oceny pixelcol_v1 po wtóre memtemp_v1 zmiany wynikające ze zmian B

Jeśli nie masz memtemp_v1 na liście czułości, w zasadzie symulator pominąć "3", dlatego będzie to śruba się.

Baw się dobrze.

 
dziękuję za staranne odpowiedzi.
i dodać go do sensitylist, dowiedz się wynik jest Intant wartości, ale zanim wynik jest przed zmianami wartości

 
O swoim pierwszym pytaniu:
możesz spróbować rozwiązać problem uzależnienia delta cyklu (które istnieją tylko dla funkcjonalnej symulacji i nie istnieją w post-netlist syntezy z opóźnieniem) w followig sposób:
umieścić niewielką część cyklu zegara (powiedzmy, że 10%), a opóźnienie w kolejnych procesów (w next_state -> current_state, a jeśli reset jest synchroniczne, w reset_state-> current_state), nie należy wprowadzać żadnych opóźnień w kombinowanych procesów
Spowoduje to opóźnienie będzie ignorowany przez narzędzia do syntezy (będzie produkować około messeges ostrzegawcze, ale to nie jest ważne), ale będzie to rozwiązanie delta cyklu zależności problem
inne (ale bardziej skomplikowane possibillity) jest zrównoważenie liczby procesów w każdej ścieżce zegara - to trudne do osiągnięcia i trzeba eksperymentować z tym, aby upewnić się o wyniki

 

Welcome to EDABoard.com

Sponsor

Back
Top