3. Übung Rechnerentwurf und Mikroprogrammierung SS 2009 (Simulation, Synthese)

Ähnliche Dokumente
Aufgabe 7.2: Mikroprogramm-Steuerwerk analysieren

Lösungsvorschlag 2. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

6. Aufgabenblatt mit Lösungsvorschlag

Lösungsvorschlag 6. Übung Technische Grundlagen der Informatik II Sommersemester Aufgabe 6.1: Multiplikation von positiven Dualzahlen

Semestralklausur Einführung in Computer Microsystems

Lösungsvorschlag 3. Übung Technische Grundlagen der Informatik II Sommersemester 2009

8. Aufgabenblatt mit Lösungsvorschlag

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Beschreibungsmöglichkeiten in Verilog

2. Aufgabenblatt

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

F r e i t a g, 3. J u n i

L 3. L a 3. P a. L a m 3. P a l. L a m a 3. P a l m. P a l m e. P o 4. P o p 4. L a. P o p o 4. L a m. Agnes Klawatsch

R a i n e r N i e u w e n h u i z e n K a p e l l e n s t r G r e v e n T e l / F a x / e

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Laborübung 4. Zustandsautomaten (Finite State Machines)

Mikroprozessortechnik Grundlagen 1

Rechnerentwurf und Mikroprogrammierung

Zyklen: break und continue

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Getaktete Schaltungen

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Hardware Praktikum 2008

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Outline Schieberegister Multiplexer Barrel-Shifter Zähler Addierer. Rechenschaltungen 1. Marc Reichenbach

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe

Kontrollfluss. Kontrollanweisungen. if-anweisung. if-else Anweisung. else. Auswahlanweisungen, Iterationsanweisungen, Blöcke, Sprunganweisungen

Wer möchte, kann sein Programm auch auf echter Hardware testen

Outline Simulation Design-Richtlinien. VHDL Einführung 2. Marc Reichenbach. Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 05/14

Boundary Scan Days 2009

3. Übung: PowerCopy-Verfahren

Übung 5: VHDL Zähler

Übung Hardwareentwurf

Sequenzielle Schaltungen (1)

Lösungsvorschlag 4. Übung Technische Grundlagen der Informatik II Sommersemester 2009


Die Mikroprogrammebene eines Rechners

Schnittstellen & Software

Automaten. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

SIOSLAB. Technische Daten:

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

FPGA-Based Architecture for Pattern Recognition

Wozu dient ein Logikanalysator?

ALGORITHMEN- PARADIGMEN

EHP Einführung Projekt A

Ein- Ausgabeeinheiten

Outline Automaten FSM Synthesis FSM in VHDL FSM auf FPGA. State Machines. Marc Reichenbach und Michael Schmidt

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Westfalia Bedienungsanleitung. Nr

Switching. Übung 2 System Management. 2.1 Szenario

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

2017/01/23 15:50 1/5 Bedienung

L3. Datenmanipulation

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

Modbus TCP/IP Gateway für bis zu vier SDM120 Modbus

OOSE4 Testen mit BlueJ/JUnit 4

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

U5-2 Register beim AVR-µC

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Übung 3: VHDL Darstellungen (Blockdiagramme)

PLM Product Lifecycle Management. SAP R/3 Enterprise

Grundlagen der Rechnerarchitektur

Grundlagen der Technischen Informatik. 13. Übung

Mikrocomputertechnik. Einadressmaschine

Bekanntmachungen der Westsächsischen Hochschule Zwickau

Stephan Brumme, SST, 2.FS, Matrikelnr

Logikverteiler für Sensorik

Active Directory Domain Services 2012 R2 - Grundinstallation

Praktikum Systementwurf mit VHDL HDL Design Lab

Vorlesung 5: Interrupts

Prozessorentwurf (2) Einführung: im weiteren wird der Entwurf des Datenpfades Steuerwerkes eingeführt.

Verilog/VHDL. Mehdi Khayati Sarkandi Uni Siegen

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Chrosziel GmbH Klausnerring Kirchheim b. München Germany Tel , Fax

Kurs 1613 Einführung in die imperative Programmierung

S a m s t a g, 2 1. J a n u a r

Technische Daten USB-Counter 46 TTL / ~ 1 V SS

Herzlich willkommen zur Demo der mathepower.de Aufgabensammlung

Informatikgrundlagen I Grundlagen der Informatik I

IHS2 Praktikum. Zusatzfolien. Integrated HW/SW Systems Group. IHS2 Praktikum Zusatzfolien 2012 Self-Organization 20 April

Modbus TCP/IP Gateway für SDM630/SDM530 Modbus

Übungscomputer mit Prozessor Bedienungsanleitung

Datenpfad einer einfachen MIPS CPU

SONNTAG OFFEN 599. undsparen! LACK LACK HOCH GLANZ HOCH GLANZ. Los je

Modbus TCP/IP Gateway für 1-Wire Sensoren

Realisierung einer 32'768-Punkt-FFT für 2 GBytes/s Datenrate auf einem FPGA

- Messdaten herunterladen - Diagnosis and Analysis of measuring data. - Download of measuring data

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

DST EINFÜHRUNG IN MRT (V2)

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Parametrisierbare Busschnittstelle für IP-Cores

M a t t h i a s K e t t n e r, U n i v e r s i t ä t W i t t e n / H e r d e c k e. 1. W a s b e d e u t e t K u l t u r r e f l e x i o n?

WIRTSCHAFTSINFORMATIK-PROJEKT II. Pflichtenheft. Mobile Agenten. Lego-Roboter NXT. Steffen Christochowitz Alexander Kofahl Mathias Bachul PF0314v2

Chapter 1 : þÿ e r f a h r u n g b e t a t h o m e c h a p t e r

Transkript:

Fachgebiet Rechnerarchitektur, Fachbereich Infrmatik Prf. Dr. R. Hffmann Dr.Ing. W. Heenes 3. Übung Rechnerentwurf und Mikrprgrammierung SS 2009 (Simuatin, Synthese) Aufgabe 1 (Simuatin vn Steuerwerken) Zwei der in der 2. Übung entwrfenen Steuerwerke sen in Verig prgrammiert und zusammen mit dem Rechenwerk für die Mutipikatin simuiert werden. Führen Sie dies a) für das MatrixSteuerwerk aus der Aufgabe 2c) der 2. Übung start ikei ner z1 z0 z1' z0' iset0 ad addif shr ipus 1 stp ANDmatrix[0]={Z,D,Z,Z}; ANDmatrix[1]={E,D,Z,Z}; ANDmatrix[2]={D,D,Z,E}; ANDmatrix[3]={D,E,E,Z}; ANDmatrix[4]={D,Z,E,Z}; ANDmatrix[5]={D,D,E,E}; ORmatrix[0]='h10; ORmatrix[1]='h38; ORmatrix[2]='h44; ORmatrix[3]='h22; ORmatrix[4]='h62; ORmatrix[5]='h61; Seite 1 vn 9

mdue testbed; reg cck; reg [8:1] x, y; reg start; wire stp; wire [17:1] p; wire [1:0] state ; wire [2:0] i; wire [0:5] actine; wire [6:0] bef; // be buffered // be, Eingangswerte // be, startsigna // stp signa vm Mutipizierer // zur Anzeige des Ergebnisses // Anzeige // Anzeige // test // test matrixstw stw(ikeiner7, cck, start, stp, state,ad, addif, shr, iset0, ipus1,actine,bef); rw rw(iset0, ipus1, ad, addif, shr, cck, x,y,p, i, ikeiner7); initia x=8; y=255; // zu muitpiziere Werte initia start=0; #15 start=1; #10 start=0; initia cck=0; #5 repeat (100) #5 cck = ~cck; initia wait (stp); $dispay("%d * %d = %d %h", x, y, p, p); @(psedge cck) $finish; mdue mdue matrixstw(ikeiner7, cck, start, stp, state, ad, addif, shr, iset0, ipus1,actine,bef); input cck; input start, ikeiner7; utput stp; utput [1:0] state ; reg [1:0] state ; initia state=0; utput ad, addif, shr; //Steuersignae für p utput iset0, ipus1; // Steuerssignae für i reg [7:0] ANDmatrix [0:5]; // Dekdiermatrix wire[7:0] extxs = {~start,start,~ikeiner7,ikeiner7,~state[1],state[1],~state[0],state[0]}; utput [0:5] actine; // active ine assign actine[0]= &(extxs ANDmatrix[0]); assign actine[1]= &(extxs ANDmatrix[1]); assign actine[2]= &(extxs ANDmatrix[2]); assign actine[3]= &(extxs ANDmatrix[3]); assign actine[4]= &(extxs ANDmatrix[4]); assign actine[5]= &(extxs ANDmatrix[5]); reg [6:0] ORmatrix [0:5]; utput [6:0] bef; /* assign bef = // utput OR matrix, Cdiermatrix // aktueer mikrbefeh Seite 2 vn 9

*/ assign bef = (actine[0]? ORmatrix[0]:0) (actine[1]? ORmatrix[1]:0) (actine[2]? ORmatrix[2]:0) (actine[3]? ORmatrix[3]:0) (actine[4]? ORmatrix[4]:0) (actine[5]? ORmatrix[5]:0); (ORmatrix[0] & {7{actine[0]}}) (ORmatrix[1] & {7{actine[1]}}) (ORmatrix[2] & {7{actine[2]}}) (ORmatrix[3] & {7{actine[3]}}) (ORmatrix[4] & {7{actine[4]}}) (ORmatrix[5] & {7{actine[5]}}); assign stp=bef[0]; assign ipus1=bef[1];assign shr=ipus1; assign addif=bef[2]; assign ad=bef[3]; assign iset0=bef[4]; parameter Z=2'b01,E=2'b10,D=2'b11; initia ANDmatrix[0]={Z,D,Z,Z}; ANDmatrix[1]={E,D,Z,Z}; ANDmatrix[2]={D,D,Z,E}; ANDmatrix[3]={D,E,E,Z}; ANDmatrix[4]={D,Z,E,Z}; ANDmatrix[5]={D,D,E,E}; ORmatrix[0]='h10; ORmatrix[1]='h38; ORmatrix[2]='h44; ORmatrix[3]='h22; ORmatrix[4]='h62; ORmatrix[5]='h61; aways @(psedge cck) state<=bef[6:5]; mdue Seite 3 vn 9

Seite 4 vn 9 b) für das MikrprgrammSteuerwerk aus der Aufgabe 2d) der 2. Übung, z1 z0 D start ikeiner z1' z0' iset0 ad addif stp shr ipus1

mdue stw(ikeiner7, cck, start, stp, state,ad, addif, shr, iset0, ipus1); input cck; input start, ikeiner7; utput [1:0] state ; reg [1:0] state ; initia state=0; reg [6:0] mpmem [0:15]; // mp speicher wire [3:0] adr; // adresse assign adr={start,ikeiner7,state}; wire [6:0] bef = mpmem[adr]; // mikrbefeh, ausgang speicher utput stp; utput ad, addif, shr; utput iset0, ipus1; // Steuersignae für p // Steuerssignae für i assign stp=bef[0]; assign ipus1=bef[1]; assign shr=ipus1; assign addif=bef[2]; assign ad=bef[3]; assign iset0=bef[4]; aways @(psedge cck) state<=bef[6:5]; initia mpmem[0]='h10; mpmem[1]='h44; mpmem[2]='h62; mpmem[3]='h61; mpmem[4]='h10; mpmem[5]='h44; mpmem[6]='h22; mpmem[7]='h61; mpmem[8]='h38; mpmem[9]='h44; mpmem[10]='h62; mpmem[11]='h61; mpmem[12]='h38; mpmem[13]='h44; mpmem[14]='h22; mpmem[15]='h61; mdue // rw enthät zäher i mdue rw(iset0, ipus1, ad, addif, shr, cck, x,y,p, i, ikeiner7); input cck; input [8:1] x, y; // vn der TestUmgebung input ad, addif, shr; utput [17:1] p; reg [17:1] p; // sync Seite 5 vn 9

aways @(psedge cck) if (ad) p <={9'b0, y}; if (addif) if (p[1]) p[17:9] <= p[16:9] + x; if (shr) p <= p >> 1; input iset0, ipus1; utput [2:0] i; reg [2:0] i; // sync cunter utput ikeiner7; assign ikeiner7=(i<7); initia i=0; aways @(psedge cck) if (iset0) i <= 0; if (ipus1) i <= i+1; mdue // nicht vergessen Aufgabe 2 (Synthese eines Schrittsteuerwerks) Das in der 2. Übung (Aufgabe 2a) entwrfene Schrittsteuerwerk s in Verig HDL impementiert werden und simuiert werden. As Rechenwerk verwen Sie wieder Ihre VerigImpementierung aus Aufgabe 1b) (2. Übung). Nach erfgreicher Simuatin (Quartus II, MdeSim) führen Sie die Synthese für das FPGA EP2C70F896C6 durch. 1. Lösung: mdue uebung_3 (input ck, input [8:1] x,y, input start, utput stp, utput [17:1] p); wire ikeiner7, ad, addif, shr, iset0, ipus1; stw stw(ikeiner7, ck, start, stp, ad, addif, shr, iset0, ipus1); rw rw(iset0, ipus1, ad, addif, shr, ck, x, y, p, ikeiner7); mdue mdue stw(ikeiner7, cck, start, stp, ad, addif, shr, iset0, ipus1); input cck; parameter s1 = 'b0001, s2 = 'b0010, s3 = 'b0100, s4 = 'b1000; input start, ikeiner7; reg [3:0] state ; initia state=s1; aways @(psedge cck) Seite 6 vn 9

case (state) s1: if (start) state <= s2; // ad, iset0 s2: state <= s3; s3: if (ikeiner7) state <= s2; ese state <= s4; // shr, ipus1 s4: state<=s4; defaut: state <= s1; case utput stp; assign stp = (state==s4); utput ad, addif, shr; //Steuersignae für p assign ad = (state==s1)&start; assign addif = (state==s2); assign shr = (state==s3); utput iset0, ipus1; assign iset0 = (state==s1); assign ipus1 = (state==s3); // Steuerssignae für i mdue // rw enthät zäher i mdue rw(iset0, ipus1, ad, addif, shr, cck, x, y, p, ikeiner7); input cck; input [8:1] x, y; reg [8:1] x_int; input ad, addif, shr; utput [17:1] p; reg [17:1] p; aways @(psedge cck) if (ad) p <={9'b0, y}; x_int <= x; ; if (addif) if (p[1]) p[17:9] <= p[16:9] + x_int; if (shr) p <= p >> 1; input iset0, ipus1; reg [2:0] i; // sync cunter utput ikeiner7; assign ikeiner7=(i<7); aways @(psedge cck) if (iset0) i <= 0; Seite 7 vn 9

if (ipus1) i <= i+1; mdue Achtung: Mdifikatin im Rechenwerk. Das Rechenwerk ist um ein Register x_int erweitert wrden. Dieses Register wird ebenfas mit ad geaden. Die krrekte Funktinsweise wird durch Simuatin nachgewiesen. 2. Lösung mdue stw (ikeiner7, cck, reset, start, stp, ad, addif, shr, iset0, ipus1); input cck; input reset; input start, ikeiner7; utput stp; utput iset0, ipus1; utput ad, addif, shr; assign iset0 = qs1; assign ad = ands2ut; assign addif = qs2; assign shr = qs3; assign ipus1 = qs3; assign stp = qs4; wire nstart,ands1ut,ands2ut,rs2ut,ands3ut,nikeiner7,ands4ut,rs4ut; wire qs1,qs2,qs3,qs4; nt nts1 (nstart,start); and ands1 (ands1ut, nstart, qs1); and ands2 (ands2ut, start, qs1); r rs2 (rs2ut, ands2ut, ands3ut); and ands3 (ands3ut, ikeiner7, qs3); nt nts4 (nikeiner7, ikeiner7); and ands4 (ands4ut, nikeiner7, qs3); r rs4 (rs4ut, ands4ut, qs4); // Benutzung des MegaWizzardManagers dff_wn s1 (0,reset,cck,ands1ut,qs1); dff_wn s2 (reset,0,cck,rs2ut,qs2); dff_wn s3 (reset,0,cck,qs2,qs3); dff_wn s4 (reset,0,cck,rs4ut,qs4); /*input acr; input aset; input cck; input data; utput q;*/ mdue Seite 8 vn 9

a) Ermitten Sie den Ressurcenbedarf (Lgikeemente, LUT, Fipfps). 39 Lgikeemente, Kmbinatrische Funktinen 38 LEs reaisiert, 32 Register b) Ermitten Sie die maximae Taktfrequenz, mit der Sie Ihr Design betreiben können und geben Sie den kritischen Pfad an. 351 MHz, Rechenwerk zwischen x_int und p[17] Seite 9 vn 9