Angi forsinkelse regs manuelt eller ved parametere i Verilog?

K

korgull

Guest
Hei,
Jeg er for øyeblikket modellering en AES design med en 256-biters nøkkel.Mitt dilemma er at jeg har et tilfelle hvor nøkkelen utvidelse rørledning er raskere enn rør som gjør det faktiske kryptering.Jeg har et eksempel på VHDL som forfatter parametrisk forsinkelsen for nøkkelen utvidelse slik at den samsvarer med kryptering rør og hver generert nøkkel kommer til riktig tid i addRoundKey syklus.

Nå ser jeg ikke en enkel måte å gjøre dette i Verilog, så jeg har vært manuelt angi registrerer jeg trenger dem og trykker på de kryptering runder når jeg trenger det:
Code:/ / Key Expansion Forsinkelse kretser

delayReg128 D0 (. IN (KEY [127:0]). clk (klokke). OUT (KEYDLY0));

delayReg128 D1 (. IN (KEYDLY0). clk (klokke). OUT (KEYDLY1));

delayReg256 D2 (. IN (KXP1). clk (klokke). OUT (KEYDLY2));

delayReg128 D3 (. IN (KEYDLY2 [255:128]). clk (klokke). OUT (KEYDLY3));

delayReg128 D4 (. IN (KEYDLY2 [127:0]). clk (klokke). OUT (KEYDLY4));

delayReg128 D5 (. IN (KEYDLY4). clk (klokke). OUT (KEYDLY5));

delayReg128 D6 (. IN (KEYDLY5). clk (klokke). OUT (KEYDLY6));

delayReg256 D7 (. IN (KXP2). clk (klokke). OUT (KEYDLY7));

[blah ..
blah.
blah ..
 
Jeg er ikke sikker jeg forstår spørsmålet ditt riktig
Jeg tror det er mange måter å løse det, for eksempel
1, angir forsinkelsen i RTL-kode, som er kun for atferden simulering, mens satt begrensninger når du syntese, slik DC kan sette inn forsinkelse celle i banen
2, beregne forsinkelse og hvor mye forsinkelse celle eller buffer vil være nødvendig, og legge til forsinkelsen celle eller buffer direkte i RTL akkurat som det gjøres i VHDL eksempel

 
Hei,

Jeg tror du kan gjøre dette selv i verilog.

1.Lignende som vhdl du kan parametrize forsinkelsen verdier.
2.Annen måte å håndtere dette er pass nøkkelen utvidelse signaler gjennom en lang kjede av buffere squentially.Kan si sende dem gjennom en buffer kjeden lengde 30.Nå gjør et fall tilfellet statement å velge forskjellige forsinkelse verdier.la si for sel er utvalget linje.For Sel "00" pickup nøkkelen utvidelse signal som sendes gjennom 0 buffere (dvs. ingen forsinkelse).For sel "01" pickup nøkkelen utvidelse signal som er passert 10 buffere.For sel "10" pickup nøkkelen utvidelse signal som sendes gjennom 20 buffere.For sel "11" pickup nøkkelen utvidelse signal som er passert 30 buffere.

Håper dette hjelper

 
Jeg tror du må legge til forsinkelsen regs manuelt.
Og husk "set_dont_touch" til disse forsinkelse regs, eller de kan forsvinne etter syntese.Du kan skrive én verilog for simulering som dette:
`ifdef funcsim
tildele # 100 a = b;
`else
delayReg ...
...
...
`endif

 

Welcome to EDABoard.com

Sponsor

Back
Top