ECE 545 Lecture 7. VHDL Description of Basic Combinational & Sequential Circuit Building Blocks. Required reading. Fixed Shifters & Rotators

Size: px
Start display at page:

Download "ECE 545 Lecture 7. VHDL Description of Basic Combinational & Sequential Circuit Building Blocks. Required reading. Fixed Shifters & Rotators"

Transcription

1 EE 55 Lecture 7 VHL escription o Basic ombinational & Sequential ircuit Building Blocks Required reading P. hu, RTL Hardare esign using VHL hapter 7, ombinational ircuit esign: Practice hapter 5., VHL Process hapter 8, Sequential ircuit esign: Principle (ecept subchapter 8.6) Slides or hapter 8, available at George Mason University 2 Fied Logical Shit Right in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); Fied Shiters & Rotators (3) (2) () () >> L (3) (2) () EE 8 FPG and SI esign ith VHL 3 Fied Logical Shit Right in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); Fied rithmetic Shit Right in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); (3) (2) () () (3) (2) () () >> L >> (3) (2) () (3) (3) (2) () <= '' & (3 donto ); 5 6

2 Fied rithmetic Shit Right in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); Fied Logical Shit Let in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); (3) (2) () () (3) (2) () () >> (3) (3) (2) () << L (2) () () <= (3) & (3 donto ); 7 8 Fied Logical Shit Let in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); Fied Rotation Let in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); (3) (2) () () (3) (2) () () << L (2) () () <<< (2) () () (3) <= (2 donto ) & ''; 9 Fied Rotation Let in VHL SIGNL : ST_LOGI_VETOR(3 OWNTO ); SIGNL : ST_LOGI_VETOR(3 OWNTO ); (3) (2) () () Variable Rotators <<< (2) () () (3) <= (2 donto ) & (3); EE 8 FPG and SI esign ith VHL 2 2

3 8bit Variable Rotator Let 8 3 B <<< B Multipleers 8 To be covered during the net class 3 EE 8 FPG and SI esign ith VHL 2to Multipleer 2to Multipleer s s s s (a) Graphical symbol (b) Truth table (a) Graphical symbol (b) Truth table VHL: VHL: <= WHEN s = '' ELSE ; or <= WHEN s = '' ELSE ; 5 6 ascade o to multipleers ascade o to multipleers 3 2 y 3 2 y VHL: s2 s VHL: s2 s <= WHEN s = '' ELSE 2 WHEN s2 = '' ELSE 3 ; 7 8 3

4 to Multipleer to Multipleer (a) Graphic symbol (b) Truth table (a) Graphic symbol (b) Truth table s s s s s s s s s s WITH s SELET <= WHEN "", WHEN "", 2 WHEN "", 3 WHEN OTHERS ; 9 2 2to ecoder (a) Truth table (b) Graphical symbol y 3 ecoders En y y y y 3 2 y 2 y En y y EE 8 FPG and SI esign ith VHL to ecoder 2to ecoder (a) Truth table (b) Graphical symbol y 3 (a) Truth table (b) Graphical symbol y 3 En y y y y 3 2 y 2 y y En y y y y 3 2 y 2 y y En y En y En <= En & ; WITH En SELET y <= "" WHEN "", "" WHEN "", "" WHEN "", "" WHEN "", "" WHEN OTHERS ; 23 2

5 VHL code or a 2to ecoder entity USE ieee.std_logic_6.all ; ENTITY dec2to IS PORT ( : IN ST_LOGI_VETOR( OWNTO ) ; En : IN ST_LOGI ; y : OUT ST_LOGI_VETOR(3 OWNTO ) ) ; EN dec2to ; RHITETURE datalo OF dec2to IS SIGNL En : ST_LOGI_VETOR(2 OWNTO ) ; En <= En & ; WITH En SELET y <= "" WHEN "", "" WHEN "", "" WHEN "", "" WHEN "", "" WHEN OTHERS ; EN datalo ; Encoders 25 EE 8 FPG and SI esign ith VHL 26 Priority Encoder Priority Encoder 2 3 y y z y 2 3 y y z y 3 2 y y z 3 2 y y d d z Priority Encoder VHL code or a Priority Encoder entity USE ieee.std_logic_6.all ; 3 y y 3 2 y y 2 z d d z y y <= "" WHEN (3) = '' ELSE "" WHEN (2) = '' ELSE "" WHEN () = '' ELSE "" ; z <= '' WHEN = "" ELSE '' ; ENTITY priority IS PORT ( : IN ST_LOGI_VETOR(3 OWNTO ) ; y : OUT ST_LOGI_VETOR( OWNTO ) ; z : OUT ST_LOGI ) ; EN priority ; RHITETURE datalo OF priority IS y <= "" WHEN (3) = '' ELSE "" WHEN (2) = '' ELSE "" WHEN () = '' ELSE "" ; z <= '' WHEN = "" ELSE '' ; EN datalo ;

6 dder mod dders X S Y 6 EE 8 FPG and SI esign ith VHL 3 32 VHL code or an dder mod 2 6 Signed and Unsigned Types USE ieee.std_logic_6.all ; USE ieee.numeric_std.all ; ENTITY adder6 IS PORT ( X : IN ST_LOGI_VETOR(5 OWNTO ) ; Y : IN ST_LOGI_VETOR(5 OWNTO ) ; S : OUT ST_LOGI_VETOR(5 OWNTO ) ) ; EN adder6 ; RHITETURE datalo OF adder6 IS S <= std_logic_vector(unsigned(x) + unsigned(y)); EN datalo ; Behave eactly like ST_LOGI_VETOR plus, they determine hether a given vector should be treated as a signed or unsigned number. Require USE ieee.numeric_std.all; bit Unsigned dder ddition o Unsigned Numbers () 6 6 USE ieee.std_logic_6.all ; USE ieee.numeric_std.all ; out X 6 + S Y in ENTITY adder6 IS PORT ( in : IN ST_LOGI ; X : IN ST_LOGI_VETOR(5 OWNTO ) ; Y : IN ST_LOGI_VETOR(5 OWNTO ) ; S : OUT ST_LOGI_VETOR(5 OWNTO ) ; out : OUT ST_LOGI ) ; EN adder6 ;

7 ddition o Unsigned Numbers (3) RHITETURE datalo OF adder6 IS signal Sum: unsigned(6 OWNTO ) ; Sum <= unsigned('' & X) + unsigned(y) + unsigned('' & in) ) ; S <= std_logic_vector(sum(5 donto )); out <= Sum(6) ; EN datalo ; Multipliers 37 EE 8 FPG and SI esign ith VHL 38 Unsigned vs. Signed Multiplication 88bit Unsigned Multiplier Unsigned Signed a * c b U bit Signed Multiplier 88bit Unsigned and Signed Multiplier a * c b S a cu b cs

8 Multiplication o signed and unsigned numbers LIBRRY ieee; USE ieee.std_logic_6.all; USE ieee.numeric_std.all ; entity multiply is port( a : in ST_LOGI_VETOR(7 donto ); b : in ST_LOGI_VETOR(7 donto ); cu : out ST_LOGI_VETOR(5 donto ); cs : out ST_LOGI_VETOR(5 donto ) ); end multiply; ROM architecture datalo o multiply is begin signed multiplication cs <= ST_LOGI_VETOR(SIGNE(a)*SIGNE(b)); unsigned multiplication cu <= ST_LOGI_VETOR(UNSIGNE(a)*UNSIGNE(b)); end datalo; 3 EE 8 FPG and SI esign ith VHL ROM 86 eample () ROM 86 eample (2) ddr 3 86 ROM out 6 LIBRRY ieee; USE ieee.std_logic_6.all; USE ieee.numeric_std.all; ENTITY rom IS EN rom; PORT ( ); ddr : IN ST_LOGI_VETOR(2 OWNTO ); out : OUT ST_LOGI_VETOR(5 OWNTO ) 5 6 ROM 86 eample (3) RHITETURE datalo OF rom IS SIGNL temp: INTEGER RNGE TO 7; TYPE vector_array IS RRY ( to 7) OF ST_LOGI_VETOR(5 OWNTO ); ONSTNT memory : vector_array := ( X"8", X"59", X"87", X"7853", X"65", X"62F", X"F72", X"F58"); temp <= to_integer(unsigned(ddr)); out <= memory(temp); ROM 86 eample () RHITETURE datalo OF rom IS TYPE vector_array IS RRY ( to 7) OF ST_LOGI_VETOR(5 OWNTO ); ONSTNT memory : vector_array := ( X"8", X"59", X"87", X"7853", X"65", X"62F", X"F72", X"F58"); out <= memory(to_integer(unsigned(ddr))); EN datalo; EN datalo; 7 8 8

9 Tristate Buer e e = Buers (a) tristate buer e e = (b) Equivalent circuit (c) Truth table EE 8 FPG and SI esign ith VHL 9 5 Tristate Buer Four types o Tristate Buers e e e (a) tristate buer e = <= WHEN (e(a) = '') ELSE 'Z'; <= not WHEN (b) (e = '') ELSE 'Z'; e Z Z e = (b) Equivalent circuit e e (c) Truth table <= WHEN (e(c) = '') ELSE 'Z'; <= not WHEN (d) (e = '') ELSE 'Z'; 5 52 Tristate Buer entity () Tristate Buer entity (2) LIBRRY ieee; USE ieee.std_logic_6.all; ENTITY tri_state IS PORT ( e: IN ST_LOGI; : IN ST_LOGI; : OUT ST_LOGI ); EN tri_state; RHITETURE datalo OF tri_state IS <= WHEN (e = ) ELSE Z ; EN datalo;

10 MLU Block iagram MUX_ MUX MLU Eample NEG_ MUX_ MUX_2 IN IN IN2 OUTPUT IN3 SEL SEL Y Y B B L L NEG_Y NEG_B MUX_ MLU: Entity eclaration MLU: rchitecture eclarative Section LIBRRY ieee; USE ieee.std_logic_6.all; ENTITY mlu IS PORT( NEG_ : IN ST_LOGI; NEG_B : IN ST_LOGI; NEG_Y : IN ST_LOGI; : IN ST_LOGI; B : IN ST_LOGI; L : IN ST_LOGI; L : IN ST_LOGI; Y : OUT ST_LOGI ); EN mlu; RHITETURE mlu_datalo OF mlu IS SIGNL : ST_LOGI; SIGNL B : ST_LOGI; SIGNL Y : ST_LOGI; SIGNL MUX_ : ST_LOGI; SIGNL MUX_ : ST_LOGI; SIGNL MUX_2 : ST_LOGI; SIGNL MUX_3 : ST_LOGI; SIGNL L: ST_LOGI_VETOR( OWNTO ); MLU rchitecture Body <= NOT WHEN (NEG_='') ELSE ; B<= NOT B WHEN (NEG_B='') ELSE B; Y <= NOT Y WHEN (NEG_Y='') ELSE Y; MUX_ <= N B; MUX_ <= OR B; MUX_2 <= XOR B; MUX_3 <= XNOR B; L <= L & L; ith (L) select Y <= MUX_ WHEN "", MUX_ WHEN "", MUX_2 WHEN "", MUX_3 WHEN OTHERS; ombinational Logic Synthesis or Beginners EN mlu_datalo; 59 EE 8 FPG and SI esign ith VHL 6

11 Simple rules or beginners Simple rules or beginners For combinational logic, use only concurrent statements concurrent signal assignment (Ü) conditional concurrent signal assignment (henelse) selected concurrent signal assignment (ithselecthen) For circuits composed o simple logic operations (logic gates) simple arithmetic operations (addition, subtraction, multiplication) shits/rotations by a constant use concurrent signal assignment (Ü) 6 62 Simple rules or beginners For circuits composed o multipleers decoders, encoders tristate buers use conditional concurrent signal assignment (henelse) (ending ith ELSE) selected concurrent signal assignment (ithselecthen) (ending ith WHEN OTHERS;) Eample: VHL code or a to MUX USE ieee.std_logic_6.all ; ENTITY muto IS PORT (,, 2, 3 : IN ST_LOGI ; s : IN ST_LOGI_VETOR( OWNTO ) ; : OUT ST_LOGI ) ; EN muto ; RHITETURE datalo OF muto IS WITH s SELET <= WHEN "", WHEN "", 2 WHEN "", 3 WHEN OTHERS ; EN datalo ; 63 6 henelse vs. ithselecthen () henelse vs. ithselecthen (2) "henelse" should be used hen: ) there is only one condition (and thus, only one else), as in the 2to MUX 2) conditions are independent o each other (e.g., they test values o dierent signals) 3) conditions relect priority (as in priority encoder); one ith the highest priority need to be tested irst. "ithselecthen" should be used hen there is ) more than one condition 2) conditions are closely related to each other (e.g., represent dierent ranges o values o the same signal) 3) all conditions have the same priority (as in the to MUX)

12 Let vs. right side o the assignment Let side Internal signals (deined in a given architecture) Ports o the mode out inout <= <= henelse ithselect <= Right side Epressions including: Internal signals (deined in a given architecture) Ports o the mode in inout Behavioral esign Style: Registers & ounters 67 EE 8 FPG and SI esign ith VHL 68 VHL escription Styles datalo oncurrent statements VHL escription Styles synthesizable structural behavioral omponents and Sequential statements interconnects Registers Shit registers ounters State machines and more i you are careul 69 Processes in VHL Processes escribe Sequential Behavior Processes in VHL re Very Poerul Statements llo to deine an arbitrary behavior that may be diicult to represent by a real circuit Not every process can be synthesized Use Processes ith aution in the ode to Be Synthesized Use Processes Freely in Testbenches 7 natomy o a Process PROESS ith a SENSITIVITY LIST OPTIONL [label:] PROESS [(sensitivity list)] [declaration part] statement part EN PROESS [label]; List o signals to hich the process is sensitive. Whenever there is an event on any o the signals in the sensitivity list, the process ires. Every time the process ires, it ill run in its entirety. WIT statements are NOT LLOWE in a processes ith SENSITIVITY LIST. label: process (sensitivity list) declaration part begin statement part end process;

13 omponent Equivalent o a Process priority: PROESS (clk) IF (3) = '' THEN y <= "" ; ELSIF (2) = '' THEN y <= "" ; ELSIF () = c THEN y <= a and b; ELSE z <= "" ; EN PROESS ; clk a b c priority ll signals hich appear on the let o signal assignment statement (<=) are outputs e.g. y, z ll signals hich appear on the sensitivity list are inputs e.g. clk ll signals hich appear on the right o signal assignment statement (<=) or in logic epressions are inputs e.g., a, b, c Note that not all inputs need to be included on the sensitivity list y z Registers 73 EE 8 FPG and SI esign ith VHL 7 latch liplop Graphical symbol Truth table Timing diagram (t+) (t) Graphical symbol Truth table (t+) (t) (t) Timing diagram t t 2 t 3 t t t 2 t 3 t Time Time latch liplop USE ieee.std_logic_6.all ; ENTITY latch IS PORT (, : IN ST_LOGI ; : OUT ST_LOGI) ; EN latch ; USE ieee.std_logic_6.all ; ENTITY liplop IS PORT (, : IN ST_LOGI ; : OUT ST_LOGI) ; EN liplop ; RHITETURE behavioral OF latch IS PROESS (, ) IF = '' THEN <= ; EN PROESS ; EN behavioral; RHITETURE behavioral2 OF liplop IS PROESS ( ) IF rising_edge() THEN <= ; EN PROESS ; EN behavioral2;

14 liplop liplop ith asynchronous reset USE ieee.std_logic_6.all ; USE ieee.std_logic_6.all ; ENTITY liplop IS PORT (, : IN ST_LOGI ; : OUT ST_LOGI) ; EN liplop ; ENTITY liplop_ar IS PORT (, Reset, : IN ST_LOGI ; : OUT ST_LOGI) ; EN liplop_ar ; Reset RHITETURE behavioral OF liplop IS PROESS ( ) IF 'EVENT N = '' THEN <= ; EN PROESS ; EN behavioral ; RHITETURE behavioral OF liplop_ar IS PROESS ( Reset, ) IF Reset = '' THEN <= '' ; ELSIF rising_edge() THEN <= ; EN PROESS ; EN behavioral ; 79 8 liplop ith synchronous reset USE ieee.std_logic_6.all ; ENTITY liplop_sr IS PORT (, Reset, : IN ST_LOGI ; : OUT ST_LOGI) ; EN liplop_sr ; RHITETURE behavioral OF liplop_sr IS PROESS() IF rising_edge() THEN IF Reset = '' THEN <= '' ; ELSE <= ; EN IF; EN PROESS ; EN behavioral ; Reset sychronous vs. Synchronous In the IF loop, asynchronous items are Beore the rising_edge() statement In the IF loop, synchronous items are ter the rising_edge() statement bit register ith asynchronous reset USE ieee.std_logic_6.all ; ENTITY reg8 IS PORT ( : IN ST_LOGI_VETOR(7 OWNTO ) ; Reset, : IN ST_LOGI ; : OUT ST_LOGI_VETOR(7 OWNTO ) ) ; EN reg8 ; RHITETURE behavioral OF reg8 IS PROESS ( Reset, ) IF Reset = '' THEN <= "" ; ELSIF rising_edge() THEN <= ; EN PROESS ; EN behavioral ;` EE 8 FPG and SI esign ith VHL 8 Reset 8 reg8 83 Nbit register ith asynchronous reset USE ieee.std_logic_6.all ; ENTITY regn IS GENERI ( N : INTEGER := 6 ) ; PORT ( : IN ST_LOGI_VETOR(N OWNTO ) ; Reset, : IN ST_LOGI ; : OUT ST_LOGI_VETOR(N OWNTO ) ) ; EN regn ; RHITETURE behavioral OF regn IS PROESS ( Reset, ) IF Reset = '' THEN <= (OTHERS => '') ; ELSIF rising_edge() THEN <= ; EN PROESS ; EN behavioral ; EE 8 FPG and SI esign ith VHL N Reset regn N 8

15 ord on generics Generics are typically integer values In this class, the entity inputs and outputs should be std_logic or std_logic_vector But the generics can be integer Generics are given a deault value GENERI ( N : INTEGER := 6 ) ; This value can be overritten hen entity is instantiated as a component Generics are very useul hen instantiating an otenused component Need a 6bit register in one place, and 6bit register in another an use the same generic code, just conigure them dierently Use o OTHERS OTHERS stand or any inde value that has not been previously mentioned. <= can be ritten as <= ( =>, OTHERS => ) <= can be ritten as <= (7 =>, =>, OTHERS => ) or <= (7 =>, OTHERS => ) <= can be ritten as <= ( donto =>, OTHERS => ) omponent Instantiation in VHL93 omponent Instantiation in VHL87 U: ENTITY ork.regn(behavioral) GENERI MP (N => ) PORT MP ( => z, Resetn => reset, => clk, => t ); U: regn GENERI MP (N => ) PORT MP ( => z, Resetn => reset, => clk, => t ); Nbit register ith enable Implementing to registers in a single process USE ieee.std_logic_6.all ; ENTITY regne IS GENERI ( N : INTEGER := 8 ) ; PORT ( : IN ST_LOGI_VETOR(N OWNTO ) ; Enable, : IN ST_LOGI ; : OUT ST_LOGI_VETOR(N OWNTO ) ) ; EN regne ; out_tmp En En out V_tmp En En V RHITETURE behavioral OF regne IS PROESS () IF rising_edge() THEN IF Enable = '' THEN <= ; EN IF; EN PROESS ; EN behavioral ; N Enable regn N lk Reset lk Reset

16 Implementing to registers in a single process Implementing to registers in a single process PROESS (lk, Reset) IF Reset= '' THEN out <= ''; V <= ''; ELSIF rising_edge(lk) THEN IF En = '' THEN out <= out_tmp ; V <= V_tmp; EN IF; EN PROESS ; out_tmp lk En En Reset out V_tmp lk EnV En Reset V 9 EE 8 FPG and SI esign ith VHL 92 Implementing to registers in a single process PROESS (lk, Reset) IF Reset = '' THEN out <= ; V <= ''; ELSIF rising_edge(lk) THEN IF En = '' THEN out <= out_tmp ; IF EnV = '' THEN V <= V_tmp; EN IF; EN PROESS ; ounters 93 EE 8 FPG and SI esign ith VHL 9 2bit upcounter ith synchronous reset bit upcounter ith asynchronous reset () USE ieee.std_logic_6.all ; USE ieee.numeric_std.all ; ENTITY upcount IS PORT ( lear, : IN ST_LOGI ; : OUT ST_LOGI_VETOR( OWNTO ) ) ; EN upcount ; RHITETURE behavioral OF upcount IS SIGNL ount : unsigned( OWNTO ); upcount: PROESS ( ) IF rising_edge() THEN IF lear = '' THEN ount <= "" ; ELSE ount <= ount + ; EN IF; EN PROESS; <= std_logic_vector(ount); EN behavioral; lear upcount 2 USE ieee.std_logic_6.all ; USE ieee.numeric_std.all ; ENTITY upcount_ar IS PORT (, Resetn, Enable : IN ST_LOGI ; : OUT ST_LOGI_VETOR (3 OWNTO )) ; EN upcount_ar ; Enable Resetn upcount

17 bit upcounter ith asynchronous reset (2) RHITETURE behavioral OF upcount _ar IS SIGNL ount : UNSIGNE (3 OWNTO ) ; PROESS (, Resetn ) IF Resetn = '' THEN ount <= "" ; ELSIF rising_edge() THEN IF Enable = '' THEN ount <= ount + ; EN PROESS ; <= std_logic_vector(ount) ; EN behavioral ; Enable Resetn upcount Shit Registers 97 EE 8 FPG and SI esign ith VHL 98 Shit register internal structure Shit Register With Parallel Load Load (3) (2) () () (3) Sin (2) () () Sin Enable Enable (3) (2) () () 99 bit shit register ith parallel load () USE ieee.std_logic_6.all ; ENTITY shit IS PORT ( : IN ST_LOGI_VETOR(3 OWNTO ) ; Enable : IN ST_LOGI ; Load : IN ST_LOGI ; Sin : IN ST_LOGI ; : IN ST_LOGI ; : OUT ST_LOGI_VETOR(3 OWNTO ) ) ; EN shit ; Enable Load Sin shit bit shit register ith parallel load (2) RHITETURE behavioral OF shit IS SIGNL t : ST_LOGI_VETOR(3 OWNTO ); PROESS () IF rising_edge() THEN IF Enable = THEN IF Load = '' THEN t <= ; ELSE EN IF; EN PROESS ; <= t; EN behavioral ; Enable Load Sin t <= Sin & t(3 donto ); shit 2 7

18 Nbit shit register ith parallel load () USE ieee.std_logic_6.all ; ENTITY shitn IS GENERI ( N : INTEGER := 8 ) ; PORT ( : IN ST_LOGI_VETOR(N OWNTO ) ; Enable : IN ST_LOGI ; Load : IN ST_LOGI ; Sin : IN ST_LOGI ; : IN ST_LOGI ; : OUT ST_LOGI_VETOR(N OWNTO ) ) ; EN shitn ; N Enable Load Sin N shitn Nbit shit register ith parallel load (2) RHITETURE behavioral OF shitn IS SIGNL t: ST_LOGI_VETOR(N OWNTO ); N PROESS () IF rising_edge() THEN IF Enable = THEN IF Load = '' THEN t <= ; ELSE EN IF; EN PROESS ; <= t; EN behavior al; Enable Load Sin t <= Sin & t(n donto ); N shitn 3 Nbit register ith enable USE ieee.std_logic_6.all ; Generic omponent Instantiation ENTITY regn IS GENERI ( N : INTEGER := 8 ) ; PORT ( : IN ST_LOGI_VETOR(N OWNTO ) ; Enable, : IN ST_LOGI ; : OUT ST_LOGI_VETOR(N OWNTO ) ) ; EN regn ; RHITETURE Behavior OF regn IS PROESS () IF ( rising_edge() ) THEN IF Enable = '' THEN <= ; EN IF; EN PROESS ; EN Behavior ; N Enable regn N EE 8 FPG and SI esign ith VHL 5 6 ircuit built o medium scale components s() Structural description eample () VHL93 USE ieee.std_logic_6.all ; r() r() r(2) r(3) r() r(5) s() p() p() p(2) p(3) 2 3 priority y y z q() q() ena En y Enable 3 z(3) t(3) y 2 z(2) t(2) y z() t() En y z() t() dec2to regne lk ENTITY priority_resolver IS PORT (r : IN ST_LOGI_VETOR(5 OWNTO ) ; s : IN ST_LOGI_VETOR( OWNTO ) ; clk : IN ST_LOGI; en : IN ST_LOGI; t : OUT ST_LOGI_VETOR(3 OWNTO ) ) ; EN priority_resolver; RHITETURE structural OF priority_resolver IS SIGNL p : ST_LOGI_VETOR (3 OWNTO ) ; SIGNL q : ST_LOGI_VETOR ( OWNTO ) ; SIGNL z : ST_LOGI_VETOR (3 OWNTO ) ; SIGNL ena : ST_LOGI ; 7 8 8

19 Structural description eample (2) VHL93 u: ENTITY ork.mu2to(datalo) PORT MP ( => r(), => r(), s => s(), => p()); p() <= r(2); p(2) <= r(3); u2: ENTITY ork.mu2to(datalo) PORT MP ( => r(), => r(5), s => s(), => p(3)); u3: ENTITY ork.priority(datalo) PORT MP ( => p, y => q, z => ena); Structural description eample (3) VHL93 u: ENTITY ork.dec2to (datalo) PORT MP ( => q, En => ena, y => z); u5: ENTITY ork.regne(behavioral) EN structural; GENERI MP (N => ) PORT MP ( => z, Enable => En, => lk, => t ); 9 Structural description eample () VHL87 USE ieee.std_logic_6.all ; ENTITY priority_resolver IS PORT (r : IN ST_LOGI_VETOR(5 OWNTO ) ; s : IN ST_LOGI_VETOR( OWNTO ) ; clk : IN ST_LOGI; en : IN ST_LOGI; t : OUT ST_LOGI_VETOR(3 OWNTO ) ) ; EN priority_resolver; RHITETURE structural OF priority_resolver IS SIGNL p : ST_LOGI_VETOR (3 OWNTO ) ; SIGNL q : ST_LOGI_VETOR ( OWNTO ) ; SIGNL z : ST_LOGI_VETOR (3 OWNTO ) ; SIGNL ena : ST_LOGI ; Structural description eample (2) VHL87 OMPONENT mu2to PORT (,, s : IN ST_LOGI ; : OUT ST_LOGI ) ; EN OMPONENT ; OMPONENT priority PORT ( : IN ST_LOGI_VETOR(3 OWNTO ) ; y : OUT ST_LOGI_VETOR( OWNTO ) ; z : OUT ST_LOGI ) ; EN OMPONENT ; OMPONENT dec2to PORT ( : IN ST_LOGI_VETOR( OWNTO ) ; En : IN ST_LOGI ; y : OUT ST_LOGI_VETOR(3 OWNTO ) ) ; EN OMPONENT ; 2 Structural description eample (3) VHL87 OMPONENT regn GENERI ( N : INTEGER := 8 ) ; PORT ( : IN ST_LOGI_VETOR(N OWNTO ) ; Enable, : IN ST_LOGI ; : OUT ST_LOGI_VETOR(N OWNTO ) ) ; EN OMPONENT ; Structural description eample () VHL87 u: mu2to PORT MP ( => r(), => r(), s => s(), => p()); p() <= r(2); p(2) <= r(3); u2: mu2to PORT MP ( => r(), => r(5), s => s(), => p(3)); u3: priority PORT MP ( => p, y => q, z => ena); u: dec2to PORT MP ( => q, En => ena, y => z); 3 9

20 Structural description eample (5) VHL87 u5: regne GENERI MP (N => ) EN structural; PORT MP ( => z, Enable => En, => lk, => t ); onstants 5 EE 8 FPG and SI esign ith VHL 6 onstants Synta: ONSTNT name : type := value; Eamples: ONSTNT init_value : ST_LOGI_VETOR(3 donto ) := ""; ONSTNT N_EXT : ST_LOGI_VETOR(7 donto ) := X"B"; ONSTNT counter_idth : INTEGER := 6; ONSTNT buer_address : INTEGER := 6#FFFE#; ONSTNT clk_period : TIME := 2 ns; ONSTNT strobe_period : TIME := ms; onstants eatures onstants can be declared in a PKGE, RHITETURE, ENTITY When declared in a PKGE, the constant is truly global, or the package can be used in several entities. When declared in an RHITETURE, the constant is local, i.e., it is visible only ithin this architecture. When declared in an ENTITY declaration, the constant can be used in all architectures associated ith this entity. EE 8 FPG and SI esign ith VHL 7 8 Eample o package library ieee; use ieee.std_logic_6.all; package alu_pkg is constant OPOE_NOR : std_logic_vector(2 donto ) := ""; constant OPOE_NN : std_logic_vector(2 donto ) := ""; constant OPOE_XOR : std_logic_vector(2 donto ) := ""; constant OPOE_U : std_logic_vector(2 donto ) := ""; constant OPOE_S : std_logic_vector(2 donto ) := ""; constant OPOE_SSUB : std_logic_vector(2 donto ) := ""; constant OPOE_UMUL : std_logic_vector(2 donto ) := ""; constant OPOE_SMUL : std_logic_vector(2 donto ) := ""; Using objects rom a package library ieee; use ieee.std_logic_6.all; library ork; use ork.alu_pkg.all; entity alu_comb is.. end alu_pkg; 9 2 2

21 VHL escription Styles VHL escription Styles Miing escription Styles Inside o an rchitecture datalo oncurrent statements synthesizable structural behavioral omponents and Sequential statements interconnects Registers Shit registers ounters State machines EE 8 FPG and SI esign ith VHL 2 22 Mied Style Modeling architecture RHITETURE_NME o ENTITY_NME is Here you can declare signals, constants, unctions, procedures omponent declarations begin oncurrent statements: oncurrent simple signal assignment onditional signal assignment Selected signal assignment Generate statement omponent instantiation statement Process statement inside process you can use only sequential statements end RHITETURE_NME; oncurrent Statements PRNG Eample () library IEEE; use IEEE.ST_LOGI_6.all; use ork.prng_pkg.all; ENTITY PRNG IS PORT( oe : in std_logic_vector( donto ); Load_oe : in std_logic; Seed : in std_logic_vector( donto ); Init_Run : in std_logic; lk : in std_logic; urrent_state : out std_logic_vector( donto )); EN PRNG; RHITETURE mied OF PRNG is signal nds : std_logic_vector( donto ); signal Sin : std_logic; signal oe_ : std_logic_vector( donto ); signal Shit5_ : std_logic_vector( donto ); 23 2 PRNG Eample (2) ata Flo Sin <= nds() XOR nds() XOR nds(2) XOR nds(3) XOR nds(); urrent_state <= Shit5_; nds <= oe_ N Shit5_; Behavioral oe_reg: PROESS(lk) IF rising_edge(lk) THEN IF Load_oe = '' THEN oe_ <= oe; EN IF; EN IF; EN PROESS; Structural Shit5_Reg : ENTITY ork.shit5(behavioral) PORT MP ( => Seed, Load => Init_Run, Sin => Sin, => lk, => Shit5_); EN mied; Sequential Logic Synthesis or Beginners 25 EE 8 FPG and SI esign ith VHL 26 2

22 For Beginners Use processes ith very simple structure only to describe registers shit registers counters state machines. Use eamples discussed in class as a template. reate generic entities or registers, shit registers, and counters, and instantiate the corresponding components in a higher level circuit using GENERI MP PORT MP. Supplement sequential components ith combinational logic described using concurrent statements. Sequential Logic Synthesis or Intermediates 27 EE 8 FPG and SI esign ith VHL 28 For Intermmediates For Intermmediates (2). Use Processes ith IF and SE statements only. o not use LOOPS or VRIBLES. 2. Sensitivity list o the PROESS should include only signals that can by themsleves change the outputs o the sequential circuit (typically, clock and asynchronous set or reset) 3. o not use PROESSes ithout sensitivity list (they can be synthesizable, but make simulation ineicient) Given a single signal, the assignments to this signal should only be made ithin a single process block in order to avoid possible conlicts in assigning values to this signal. Process : PROESS (a, b) y <= a N b; EN PROESS; Process 2: PROESS (a, b) y <= a OR b; EN PROESS;

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. Behavioral Design Style: Registers & Counters.

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. Behavioral Design Style: Registers & Counters. ECE 55 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks Required reading P. Chu, RTL Hardware esign using VHL Chapter 5.1, VHL Process Chapter 8, Sequential Circuit esign: Principle

More information

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential

More information

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:

More information

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level

More information

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 3, RT-level

More information

ECEU530. Homework 4 due Wednesday Oct 25. ECE U530 Digital Hardware Synthesis. VHDL for Synthesis with Xilinx. Schedule

ECEU530. Homework 4 due Wednesday Oct 25. ECE U530 Digital Hardware Synthesis. VHDL for Synthesis with Xilinx. Schedule EEU530 EE U530 igital Hardware Synthesis Lecture 11: Prof. Miriam Leeser mel@coe.neu.edu October 18, 2005 Sequential Logic in VHL Finite State Machines in VHL Project proposals due now HW 4 due Wednesday,

More information

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 6 Combinational and sequential circuits

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 6 Combinational and sequential circuits EE 459/5 HL Based igital esign with Programmable Logic Lecture 6 ombinational and sequential circuits Read before class: hapter 2 from textbook Overview ombinational circuits Multiplexer, decoders, encoders,

More information

ELE432. ADVANCED DIGITAL DESIGN HACETTEPE UNIVERSITY Designing with VHDL

ELE432. ADVANCED DIGITAL DESIGN HACETTEPE UNIVERSITY Designing with VHDL ELE432 ADVANCED DIGITAL DESIGN HACETTEPE UNIVERSITY Designing with VHDL Organization of the Week Quartus II and simple I/O Combinational Sequential References Required P. Chu, FPGA Prototyping by VHDL

More information

The process. Sensitivity lists

The process. Sensitivity lists The process process itself is a concurrent statement but the code inside the process is executed sequentially Process label (optional) Process declarative region Process body entity Test is, : in bit;

More information

ECE 545 Lecture 7. Modeling of Circuits with a Regular Structure. Aliases, Attributes, Packages. Mixing Design Styles. George Mason University

ECE 545 Lecture 7. Modeling of Circuits with a Regular Structure. Aliases, Attributes, Packages. Mixing Design Styles. George Mason University ECE 545 Lecture 7 Modeling of Circuits with a Regular Structure Aliases, Attributes, Packages Mixing Design Styles George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapters

More information

! Initially developed under DOD auspices, later standardized as IEEE standards , , & (standard logic data type)

! Initially developed under DOD auspices, later standardized as IEEE standards , , & (standard logic data type) VHDL Introduction, Part I Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer cademic Publishers, 2001, ISN 0-7923-7439-8

More information

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1 Lecture 1: VHDL Quick Start Digital Systems Design Fall 10, Dec 17 Lecture 1 1 Objective Quick introduction to VHDL basic language concepts basic design methodology Use The Student s Guide to VHDL or The

More information

ECE 545 Lecture 9. Modeling of Circuits with a Regular Structure. Aliases, Attributes, Packages. George Mason University

ECE 545 Lecture 9. Modeling of Circuits with a Regular Structure. Aliases, Attributes, Packages. George Mason University ECE 545 Lecture 9 Modeling of Circuits with a Regular Structure Aliases, Attributes, Packages George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapters 14.5 For Generate

More information

Lecture 12 VHDL Synthesis

Lecture 12 VHDL Synthesis CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?

More information

Introduction to VHDL #3

Introduction to VHDL #3 ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)

More information

Digital Systems Design

Digital Systems Design Digital Systems Design Review of Combinatorial Circuit Building Blocks: VHDL for Combinational Circuits Dr. D. J. Jackson Lecture 2-1 Introduction to VHDL Designer writes a logic circuit description in

More information

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University ECE 545 Lecture 5 Data Flow Modeling in VHDL George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 4, Concurrent Signal Assignment Statements of VHDL 2 Types of VHDL Description

More information

ECE 545 Lecture 12. FPGA Resources. George Mason University

ECE 545 Lecture 12. FPGA Resources. George Mason University ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks

More information

VHDL: RTL Synthesis Basics. 1 of 59

VHDL: RTL Synthesis Basics. 1 of 59 VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.

More information

VHDL simulation and synthesis

VHDL simulation and synthesis VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis

More information

Lattice VHDL Training

Lattice VHDL Training Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described

More information

[VARIABLE declaration] BEGIN. sequential statements

[VARIABLE declaration] BEGIN. sequential statements PROCESS statement (contains sequential statements) Simple signal assignment statement

More information

Timing in synchronous systems

Timing in synchronous systems BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines

More information

Chapter 6 Combinational-Circuit Building Blocks

Chapter 6 Combinational-Circuit Building Blocks Chapter 6 Combinational-Circuit Building Blocks Commonly used combinational building blocks in design of large circuits: Multiplexers Decoders Encoders Comparators Arithmetic circuits Multiplexers A multiplexer

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

More information

ECE 545 Lecture 4. Simple Testbenches. George Mason University

ECE 545 Lecture 4. Simple Testbenches. George Mason University ECE 545 Lecture 4 Simple Testbenches George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 2.2.4, Testbenches 2 Testbenches ECE 448 FPGA and ASIC Design with VHDL 3 Testbench

More information

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers

ECE 545 Lecture 12. Datapath vs. Controller. Structure of a Typical Digital System Data Inputs. Required reading. Design of Controllers ECE 545 Lecture 12 Design of Controllers Finite State Machines and Algorithmic State Machine (ASM) Charts Required reading P. Chu, using VHDL Chapter 1, Finite State Machine: Principle & Practice Chapter

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

VHDL in 1h. Martin Schöberl

VHDL in 1h. Martin Schöberl VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

EEL 4712 Digital Design Test 1 Spring Semester 2007

EEL 4712 Digital Design Test 1 Spring Semester 2007 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)

More information

Introduction to VHDL. Main language concepts

Introduction to VHDL. Main language concepts Introduction to VHDL VHSIC (Very High Speed Integrated Circuit) Hardware Description Language Current standard is IEEE 1076-1993 (VHDL-93). Some tools still only support VHDL-87. Tools used in the lab

More information

The Virtex FPGA and Introduction to design techniques

The Virtex FPGA and Introduction to design techniques The Virtex FPGA and Introduction to design techniques SM098 Computation Structures Lecture 6 Simple Programmable Logic evices Programmable Array Logic (PAL) AN-OR arrays are common blocks in SPL and CPL

More information

Computer-Aided Digital System Design VHDL

Computer-Aided Digital System Design VHDL بس م اهلل الر حم ن الر حی م Iran University of Science and Technology Department of Computer Engineering Computer-Aided Digital System Design VHDL Ramin Rajaei ramin_rajaei@ee.sharif.edu Modeling Styles

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION

More information

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification

More information

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized Multi-valued Logic Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized X, unknown 0, logic 0 1, logic 1 Z, high impedance W, unknown L, logic 0 weak H, logic 1 weak - ); don t care Standard

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language

More information

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL IE24 Digital Design L7: Combinational circuits, Introduction to VHDL Elena Dubrova KTH / ICT / ES dubrova@kth.se This lecture BV 38-339, 6-65, 28-29,34-365 IE24 Digital Design, HT 24 2 The multiplexer

More information

Writing VHDL for RTL Synthesis

Writing VHDL for RTL Synthesis Writing VHDL for RTL Synthesis Stephen A. Edwards, Columbia University December 21, 2009 The name VHDL is representative of the language itself: it is a two-level acronym that stands for VHSIC Hardware

More information

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language) Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam February 26, 2003 1. (20 points) Describe the following logic expression (A B D) + (A B C) + (B C ) with a structural VHDL

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial

More information

ELCT 501: Digital System Design

ELCT 501: Digital System Design ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)

More information

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 3: Modeling in VHDL VHDL: Overview 2 VHDL VHSIC Hardware Description Language VHSIC=Very High Speed Integrated Circuit Programming language for modelling of hardware

More information

EEL 4783: Hardware/Software Co-design with FPGAs

EEL 4783: Hardware/Software Co-design with FPGAs EEL 4783: Hardware/Software Co-design with FPGAs Lecture 9: Short Introduction to VHDL* Prof. Mingjie Lin * Beased on notes of Turfts lecture 1 What does HDL stand for? HDL is short for Hardware Description

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap 4:1 Multiplexer CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #18 VHDL for Synthesis I LIBRARY ieee

More information

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu Sept 13, 2006 Lecture 3: Basic VHDL constructs Signals, Variables, Constants VHDL Simulator and Test benches Types Reading: Ashenden

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

VHDL for FPGA Design. by : Mohamed Samy

VHDL for FPGA Design. by : Mohamed Samy VHDL for FPGA Design by : Mohamed Samy VHDL Vhdl is Case insensitive myvar = myvar = MYVAR IF = if = if Comments start with -- Comments can exist anywhere in the line Semi colon indicates the end of statements

More information

Lecture 4. VHDL Fundamentals. George Mason University

Lecture 4. VHDL Fundamentals. George Mason University Lecture 4 VHDL Fundamentals George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 3, Basic Language Constructs of VHDL 2 Design Entity ECE 448 FPGA and ASIC Design with

More information

Counters and Simple Design Example

Counters and Simple Design Example ECE 322 Digital Design with VHDL Counters and Simple Design Example Lecture 2 extbook References n Sequential Logic Review Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design,

More information

SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI)

SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI) SRI SUKHMANI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DERA BASSI (MOHALI) VLSI LAB MANUAL ECE DEPARTMENT Introduction to VHDL It is a hardware description language that can be used to model a digital system

More information

!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"

!#$%&&'(')*+%,%-.#'/'.001$$ !"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"!!"#$%&'#()#*+"+#,-."/0110#230#4."50",+"+#)6# 6+-+#(.6+-0#)4475.8)60#0/#.65-0#230#9+**+"+# 2.48).-0#(.6+-0#! 2+"*5."5*:#,."/0110#;)**0! *),".6*:#-.99-0*0"5."+#2+660,.40"5)#;)*)2)#

More information

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

Introduction to VHDL. Main language concepts

Introduction to VHDL. Main language concepts Introduction to VHDL VHSI (Very High Speed Integrated ircuit) Hardware Description Language urrent standard is IEEE 1076-1993 (VHDL-93). Some tools still only support VHDL-87. Tools used in the lab support

More information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4

More information

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC)

INTRODUCTION TO VHDL ADVANCED COMPUTER ARCHITECTURES. Slides by: Pedro Tomás. Additional reading: - ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) INTRODUCTION TO VHDL Slides by: Pedro Tomás Additional reading: - ADVANCED COMPUTER ARCHITECTURES ARQUITECTURAS AVANÇADAS DE COMPUTADORES (AAC) Outline 2 Hardware Description Languages (HDL) VHDL Very

More information

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL DESCRIPTION OF DIGITAL CIRCUITS USING VHDL Combinatinal circuits Sequential circuits Design organization. Generic design Iterative operations Authors: Luis Entrena Arrontes, Celia López, Mario García,

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Prasad V. Potluri Siddhartha Institute of Technology (Sponsored by: Siddhartha Academy of General & Technical Education) Affiliated

More information

VHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2

VHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2 VHDL 2 Combinational Logic Circuits Reference: Roth/John Text: Chapter 2 Combinational logic -- Behavior can be specified as concurrent signal assignments -- These model concurrent operation of hardware

More information

CMPT 250: Computer Architecture. Using LogicWorks 5. Tutorial Part 1. Somsubhra Sharangi

CMPT 250: Computer Architecture. Using LogicWorks 5. Tutorial Part 1. Somsubhra Sharangi CMPT 250: Computer Architecture Using LogicWorks 5 Tutorial Part 1 Somsubhra Sharangi What is VHDL? A high level language to describe digital circuit Different that a programming language ( such as Java)

More information

Introduction to VHDL #1

Introduction to VHDL #1 ECE 3220 Digital Design with VHDL Introduction to VHDL #1 Lecture 3 Introduction to VHDL The two Hardware Description Languages that are most often used in industry are: n VHDL n Verilog you will learn

More information

EECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements

EECE-4740/5740 Advanced VHDL and FPGA Design. Lecture 3 Concurrent and sequential statements EECE-4740/5740 Advanced VHDL and FPGA Design Lecture 3 Concurrent and sequential statements Cristinel Ababei Marquette University Department of Electrical and Computer Engineering Overview Components hierarchy

More information

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 310/1780-10 ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 VHDL & FPGA - Session 2 Nizar ABDALLH ACTEL Corp. 2061 Stierlin Court

More information

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

Lecture 4. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity

Lecture 4. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity Required reading Lecture 4 VHDL Fundamentals P. Chu, RTL Hardware Design using VHDL Chapter 3, Basic Language Constructs of VHDL George Mason University 2 Example: NAND Gate Design Entity a b z a b z 0

More information

ECEU530. Project Presentations. ECE U530 Digital Hardware Synthesis. Rest of Semester. Memory Structures

ECEU530. Project Presentations. ECE U530 Digital Hardware Synthesis. Rest of Semester. Memory Structures ECEU53 ECE U53 igital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 5, 26 Lecture 8: Student project presentations Memories and FPGAs Tri-state buffers and busses Student project presentations:

More information

Inthis lecture we will cover the following material:

Inthis lecture we will cover the following material: Lecture #8 Inthis lecture we will cover the following material: The standard package, The std_logic_1164 Concordia Objects & data Types (Signals, Variables, Constants, Literals, Character) Types and Subtypes

More information

Hardware Description Languages. Modeling Complex Systems

Hardware Description Languages. Modeling Complex Systems Hardware Description Languages Modeling Complex Systems 1 Outline (Raising the Abstraction Level) The Process Statement if-then, if-then-else, if-then-elsif, case, while, for Sensitivity list Signals vs.

More information

Chapter 2 Basic Logic Circuits and VHDL Description

Chapter 2 Basic Logic Circuits and VHDL Description Chapter 2 Basic Logic Circuits and VHDL Description We cannot solve our problems with the same thinking we used when we created them. ----- Albert Einstein Like a C or C++ programmer don t apply the logic.

More information

EEL 4712 Digital Design Test 1 Spring Semester 2008

EEL 4712 Digital Design Test 1 Spring Semester 2008 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. Also, as always, the best answer gets the most points. COVER SHEET: Problem:

More information

Chapter 3 Part 1 Combinational Logic Design

Chapter 3 Part 1 Combinational Logic Design Universit of Wisconsin - Madison EE/omp Sci 352 igital Sstems undamentals Kewal K. Saluja and Yu Hen Hu Spring 22 hapter 3 Part ombinational Logic esign Originals b: harles R. Kime and Tom Kamisnski Modified

More information

CS/EE Homework 7 Solutions

CS/EE Homework 7 Solutions CS/EE 260 - Homework 7 Solutions 4/2/2001 1. (20 points) A 4 bit twisted ring counter is a sequential circuit which produces the following sequence of output values: 0000, 1000, 1100, 1110, 1111, 0111,

More information

Single Cycle Datapath

Single Cycle Datapath Single Cycle atapath Lecture notes from MKP, H. H. Lee and S. Yalamanchili Section 4.-4.4 Appendices B.7, B.8, B.,.2 Practice Problems:, 4, 6, 9 ing (2) Introduction We will examine two MIPS implementations

More information

CS Spring Combinational Examples - 1

CS Spring Combinational Examples - 1 S 5 - Spring 2 - ombinational Examples - ombinational Logic esign ase Studies General esign Procedure for ombinational Logic General design procedure Examples alendar subsstem to 7-segment displa controller

More information

Digital System Construction

Digital System Construction Digital System Construction FYSIKUM Lecture 4: More VHDL, memory, PRNG Arithmetic Memories Pipelines and buffers Pseudorandom numbers IP core generation in Vivado Introduction to Lab 3 Digital Systemkonstruktion

More information

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

Verilog Behavioral Modeling

Verilog Behavioral Modeling Verilog Behavioral Modeling Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Spring, 2017 ldvan@cs.nctu.edu.tw http://www.cs.nctu.edu.tw/~ldvan/ Source:

More information

EE434 ASIC & Digital Systems

EE434 ASIC & Digital Systems EE434 ASIC & Digital Systems VHDL Sequential Processing Spring 2016 Dae Hyun Kim daehyun@eecs.wsu.edu 1 Sequential Statements Sequential statements are executed sequentially. Format ARCHITECTURE architecture_name

More information

HDL. Hardware Description Languages extensively used for:

HDL. Hardware Description Languages extensively used for: HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:

More information

Luleå University of Technology Kurskod SMD152 Datum Skrivtid

Luleå University of Technology Kurskod SMD152 Datum Skrivtid Luleå University of Technology Kurskod SMD152 Datum 2003-10-24 Skrivtid 9.00 13.00 1 Manual synthesis (10 p, 2 p each) Here you are given five different VHDL models. Your task is to draw the schematics

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009 2065-15 Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis 26 October - 20 November, 2009 FPGA Architectures & VHDL Introduction to Synthesis Nizar Abdallah ACTEL Corp.2061

More information

ECE 448 Lecture 5. FPGA Devices

ECE 448 Lecture 5. FPGA Devices E 448 Lecture 5 FPGA evices E 448 FPGA and ASIC esign with VHL George Mason University Required reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional etails 2 What is an FPGA?

More information

INTRODUCTION TO VHDL. K. Siozios

INTRODUCTION TO VHDL. K. Siozios INTRODUCTION TO VHDL K. Siozios Section of Electronics and Electronic Computers Department of Physics Aristotle University of Thessaloniki (AUTH), Greece Reconfigurable Architectures Today Moore s Law

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

Sign here to give permission to return your test in class, where other students might see your score:

Sign here to give permission to return your test in class, where other students might see your score: EEL 4712 Midterm 1 Spring 2017 VERSION 1 Name: UFID: Sign here to give permission to return your test in class, where other students might see your score: IMPORTANT: Please be neat and write (or draw)

More information

Lecture 5: State Machines, Arrays, Loops. EE 3610 Digital Systems

Lecture 5: State Machines, Arrays, Loops. EE 3610 Digital Systems EE 3610: Digital Systems 1 Lecture 5: State Machines, Arrays, Loops BCD to Excess-3 (XS 3 ) Code Converter Example: Fig. 2-53 2 Easier to use one type of code (e.g. XS 3 ) over the other type (e.g. BCD)

More information

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

More information

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\ CSCI 250 - Lab 3 VHDL Syntax Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\ Objectives 1. Learn VHDL Valid Names 2. Learn the presentation of Assignment and Comments 3. Learn Modes, Types, Array,

More information