xilinx a jednorazovy hranou spusteny asynchronni reset

Jakub Slajs xSlajsJ@seznam.cz
Pátek Červenec 2 12:25:57 CEST 2004


> always@(posedge clk or posedge reset or posedge set)
> if(clk)
>  begin
>  ...
>  end
> else ...
> Tohle by melo byt korektni a to jsou tri vzajemne asynchroni
> udalosti. Ale nevim.

Problem je, ze takto zapsany proces se spousti pri nabezne hrane
libovolneho ze signalu clk, reset a set. V dalsich podminkach
pak testujete hladinu signalu, ale uz nezjistite ktery signal se
vlastne zmenil. Ve VHDL se da pouzit zapis ve tvaru:
"if clk and clk'event then ...", ale nevim, ze by neco podobneho
bylo ve Verilogu. Take si musite uvedomit, ze ne kazdy korektni
zapis pujde syntetizovat (i kdyz to ve VHDL pujde napsat, stejne
si s tim pak fitter neporadi).

Pro zajimavost jsem vyzkousel nasledujici kod:

module shifter0 (out, clk, reset);
        output  out;                    
        input           clk, reset;
        
        reg     [4:0]   register;

        always @ (negedge reset)
            if( ~reset ) 
                assign register = 0; 
            else  
                deassign register; 

        always @ (posedge clk)
            begin
                register = register << 1;
                register[0] = 1;
            end
        
        not negout (out, register[4]);
endmodule

a vysledkem byla chybova hlaska ve smyslu, ze to nejde syntetizovat
protoze to ma dvoje hodiny...

Taky mozna zalezi pro jaky Xilinx se to snazite syntetizovat, ale
nejspis to stejne budete muset udelat jak Vam uz tady nekdo radil
(ukazka ve VHDL) tj. resetovat synchronne a pouzit k tomu pomocny
registr. Ten asynchronne nahodite sestupnou hranou signalu reset.
V ramci procesu clk (tj. synchronne) ho pak budete testovat a pokud
bude nastaven shodite jak tento pomocny registr tak i cely shifter.

S pozdravem,

Jakub Slajs

____________________________________________________________
Akce kde vyhrava kazdy! Jednodenni cocky Focus Dailies. Ziskejte 5 cocek v hodnote 115 Kc a navic hrajte o zasobu na pul roku!
<IMG SRC="http://dot.idot.cz/?i=1200041&c=0&s=0" width="1" height="1">
http://ad.seznam.cz/clickthru?spotId=74718



Další informace o konferenci Hw-list