[Ro] Assigment 4 [Bridge 2007] Altinger Harald, Marsalek Alexander, Pilgram Felix, Poeschko Jan,
Testbed simple_cpu p_memory bridge h_clk clk p_sel0 p_en p_write p_sel3 p_addr p_wdata h_rdata h_write h_sel data_tomem h_addr h_ready h_rdata interrupt
Bridge h_ready h_addr h_rdata i_hready i_write b_reset i_sel i_addr i_pready i_rdata h_write h_sel p_en p_sel0 p_sel1 p_sel2 p_sel3 p_write p_addr p_wdata p_rdata h_wdata p_clk HBridgeLBridge h_clk bridge
Ablauf CPU an HB: Schreibbefehl mit Adresse HB veranlasst LB reset i_pready, HB: i_hready Adresse und Operationsart liegen an LB hohlt Daten vom Speicher, setzt i_pready LB fertig, HB h-ready an die CPU
ASM Diagram
ASM Statusnamen
Debug features
CPU Betriebssystem uebung4_cpu_mem.v schmi24f.v
CPU Handshake uebung4_cpu_mem.v schmi24f.v
Simulation FETCH CPU_STATE: DECODE CPU_STATE: WRITE CPU: schreibe 6 auf 0 HIGH_SPEED_BRIDGE: schreibe auf Speicher: 0, Adresse: 0 LOW_SPEED_BRIDGE: schreibe 6 auf Speicher: 0, Adresse: 0 time: 23440, sel=1 en=0 write=1 addr=0 wdata= 6 m[0]= 3 m[1]= 4 m[2]= 5 m[3]= 0 int=0 rdata= x time: 23600, sel=1 en=0 write=1 addr=0 wdata= 6 m[0]= 3 m[1]= 4 m[2]= 5 m[3]= 0 int=0 rdata= 3 time: 23600, sel=1 en=1 write=1 addr=0 wdata= 6 m[0]= 3 m[1]= 4 m[2]= 5 m[3]= 0 int=0 rdata= 3 LOW_SPEED_BRIDGE: fertig mit schreiben von 6 auf Speicher: 0, Adresse: 0 time: 23760, sel=1 en=1 write=1 addr=0 wdata= 6 m[0]= 6 m[1]= 4 m[2]= 5 m[3]= 0 int=0 rdata= x time: 23760, sel=0 en=0 write=0 addr=0 wdata= 0 m[0]= 6 m[1]= 4 m[2]= 5 m[3]= 0 int=0 rdata= x CPU: fertig mit schreiben von 6 auf 0 FETCH CPU_STATE: DECODE CPU_STATE: READ CPU: lese von ,HIGH_SPEED_BRIDGE: lese von Speicher: 0, Adresse: 0 time: 13680, sel=1 en=0 write=0 addr=0 wdata= 0 m[0]= 3 m[1]= 1 m[2]= 2 m[3]= 0 int=0 rdata= x LOW_SPEED_BRIDGE: lese von Speicher: 0, Adresse: 0 time: 13840, sel=1 en=0 write=0 addr=0 wdata= 0 m[0]= 3 m[1]= 1 m[2]= 2 m[3]= 0 int=0 rdata= 3 time: 13840, sel=1 en=1 write=0 addr=0 wdata= 0 m[0]= 3 m[1]= 1 m[2]= 2 m[3]= 0 int=0 rdata= 3 LOW_SPEED_BRIDGE: von Speicher: 0 Adresse: 0 wurde 3 eingelesen time: 14000, sel=1 en=1 write=0 addr=0 wdata= 0 m[0]= 3 m[1]= 1 m[2]= 2 m[3]= 0 int=0 rdata= x time: 14000, sel=0 en=0 write=0 addr=0 wdata= 0 m[0]= 3 m[1]= 1 m[2]= 2 m[3]= 0 int=0 rdata= x 14151,HIGH_SPEED_BRIDGE: von Speicher:0, Adresse: 0 wurde 3 eingelesen CPU: von 0 wurde 3 eingelesen
Neue CPU Befehle
Simulation Tests OK Memory 0: pmem0.mem[ 0]= pmem0.mem[ 1]= pmem0.mem[ 2]= pmem0.mem[ 3]= Exiting VeriLogger at simulation time Errors, 0 Warnings Compile time = , Load time = , Execution time = Normal exit
Daten- und Controllpfad LBridgeData LBridgeControll HBridgeData HBridgeControll h_ready h_addr h_rdata i_hready i_write b_reset i_sel i_addr i_pready i_rdata h_write h_sel p_en p_sel0 p_sel1 p_sel2 p_sel3 p_write p_addr p_wdata p_rdata p_clk HBridgeLBridge h_clk bridge
Datenpfad - HB
Datenpfad - LB
Debug
Controllpath
Ausgangslogik
Next state Logic
Zusatzaufgabe