[CALU] Re: anti-synchroner Reset bei neg. Taktflanke

  • From: Martin Elshuber <e9825286@xxxxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Wed, 19 May 2010 11:39:40 +0200

hab mal eine lösung in den branch origin/aresetmod gepushed:

reset logic wurde verändert, das es sowohl zusätzlich ein reset signal generiert as mit der rising edge steurt wird, und dem anderen in halben cyclus voraus eilt,
dieses wird anstadt deim sreset vom günther im instruction mem verwendet.

(hoffentlich ist der kritische pfad jetzt nicht intern in der reset logic :)

lg martin

Martin Elshuber wrote:
So wie ich das im modelsim lese, wird jetzt die 2te instruction übersprungen :(

probier mal das program

nop (p1)  ; iword = 0x010000
nop (p2)  ; iword = 0x020000
nop (p3)  ; iword = 0x030000
lbl:
 bp lbl

wenn du dir das id register ansiehst steht dort: 0x010000, 0x010000, 0x030000

grund:
takt x (reset 1->0): status: pc=0, imem.addresreg=0, imem.sreset=1, new-pc=1; -- am ende des cycles folgt: takt x+1 : status: pc=1, imem.addresreg=0, imem.sreset=0, new-pc=1; -- npc wird in das pc-reg geschrieben (reset is bereits 0), npc wird nicht in das imem.addresreg geschrieben (sreset ist 1) takt x+2 : status: pc=2, imem.addresreg=2, imem.sreset=0, new-pc=1; -- npc wird in das pc-reg imem.addresreg geschrieben,geschrieben (sreset ist 0)
es wird daher nie die 2te instruction gelesen

lg martin

Günther Wimpassinger wrote:
Zitat von Martin Elshuber <e9825286@xxxxxxxxxxxxxxxxxxxx>:

Hab gerade gesehen, daß du da was gändert hast?
löst das das problem?

lg martin

Zumindest im Quartus. Wir unterhalten uns heute Nachmittag, warum das so gelöst wurde.

lg
Günther






Other related posts: