verilog симулация въпрос

F

floatgrass

Guest
ако аз употреба posedge часовник triger винаги изявление, но Сигал е posedge промяна, симулатор мисля, че е ниско равнище, но това е за синтеза ОК?

ако Pix_Mux_s1 [7] промяна от 0 до 1,
а в същото време memtemp_v1 промяна frome една стойност до друга стойност, тогава как да присвоите?това е след или преди промяната?
благодарности!
Винаги @ (Mem_Pointer_s1 или pixel_s1 или Pix_Mux_s1)
започвам
ако (Pix_Mux_s1 [7])
започвам
случай (Mem_Pointer_s1)
3'b001: започнем
pixelcol_v1 [23:16] = pixel_s1;
pixelcol_v1 [15:8] = memtemp_v1 [15:8];
pixelcol_v1 [7:0] = memtemp_v1 [7:0];
приключвам

3'b010: започнем
pixelcol_v1 [23:16] = memtemp_v1 [23:16];
pixelcol_v1 [15:8] = pixel_s1;
pixelcol_v1 [7:0] = memtemp_v1 [7:0];
приключвам

3'b100: започнем
pixelcol_v1 [23:16] = memtemp_v1 [23:16];
pixelcol_v1 [15:8] = memtemp_v1 [15:8];
pixelcol_v1 [7:0] = pixel_s1;
приключвам

По подразбиране: pixelcol_v1 = memtemp_v1; / / нищо ново е писано
endcase
приключвам
приключвам

 
Здрасти,

Мисля, че причината е, че "винаги" състояние.

"Винаги @ (Mem_Pointer_s1 или pixel_s1 или Pix_Mux_s1)"
Вие имате три пакета, вие трябва да ги опишат подробно тук.

синтез инструмент desn't грижи тях, но симулация инструмент грижи тях.

Просто се опитват.

BR
z81203

 
z81203, какви ги говориш?Това е verilog, не VHDL.floatgrass е пример не се нуждае от повече обяснения.

Сега тук са проблемите на floatgrass
на пример:
1.Тя ще подразбирам едно мандало, защото, ако информацията не е пълна.(Трябва
да имате ако (Pix_Mux_s1 [7]), но не и "друг".

2.чувствителност на memtemp_v1 липсва.

ОК, сега вашия въпрос е, ако Pix_Mux_s1 [7] промените в същото време като memtemp_v1, какво ще се случи.

Трябва да помни едно нещо,
няма такова нещо като "по същото време" в симулатора.Там винаги заповед.Въпреки че симулатор "разписания" той в същото време има винаги заповед.Редът обикновено е от порядъка на кода, но не задължително, то зависи от симулатора.

Да се разгледат 2 случая, и поема своя симулатор график събитие в зависимост от реда на кода си.
И поеме "Б" промени точно същото време като Pix_Mux_s1.

случай 1:
Винаги @ (Б)
memtemp_v1 = Б;
Винаги @ (Mem_Pointer_s1 или pixel_s1 или Pix_Mux_s1)
.... това е твоята голяма винаги блок

2 случая:
Винаги @ (Mem_Pointer_s1 или pixel_s1 или Pix_Mux_s1)
.... това е твоята голяма винаги блок
Винаги @ (Б)
memtemp_v1 = Б;Нека да разгледаме най вашия въпрос:
в случай 1: pixelcol_v1 ще получи "нов" memtemp_v1 стойност, тъй като memtemp_v1 се изчисли по-рано от вашия винаги блок.

в случай 2: pixelcol_v1 ще получи "старите" memtemp_v1 стойност.*** Основният проблем е, че пропусна memtemp_v1 в чувствителността списък.

Предполагам, memtemp_v1 добавите към вашия списък чувствителност, и в двата случая 1 & 2
pixelcol_v1 ще получи "нов" memtemp_v1 стойност

ЗАЩО?
Погледнете случай 2:
по време T, симулатора график:
1.оценява pixelcol_v1 защото Pix_Mux_s1 промени
2.оценява memtemp_v1 защото Б промени
3.оценява pixelcol_v1 ОТНОВО защото memtemp_v1 промени поради Б промени

Ако нямате memtemp_v1 във вашата чувствителност списък, основно симулатора ще Пропускане "3", затова ще притеснявам.

Радвам се.

 
Благодаря за вашата внимателни отговор.
Аз го добавите към sensitylist, разберете резултата intant е стойност, но преди резултата е преди промяната стойност

 
За първия си въпрос:
Вие можете да се опитате да разрешите делта цикъл зависимостта проблем (които съществуват само за функционална симулация и не съществуват в пост-синтез netlist със закъснение) при followig начин:
поставени малка част от часовник цикъл (позволява кажа 10%),
тъй като има забавяне в последователни процеси (в next_state -> current_state и, ако се върнете синхронни, в reset_state-> current_state), не поставяйте забавяне на комбинаторни процеси
това забавяне ще бъде игнориран от синтеза инструменти (ще произвежда някои Предупреждение messeges, но е маловажно), но това ще решим делта цикъл зависимости проблем
други (но по-сложно possibillity) е да се балансират броя на процесите във всяка часовник път - трудно е да се постигне и трябва да се експериментира с които да се уверите, за резултатите

 

Welcome to EDABoard.com

Sponsor

Back
Top