VHDL for Logic Synthesis

Size: px
Start display at page:

Download "VHDL for Logic Synthesis"

Transcription

1 VHDL for Logic Synthesis

2 Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis with VHDL, Auburn University Actel HDL Coding Style Guide and other sources 2

3 System Design Flow Electronic System Level (ESL) flow System C TLM, Verification, Profiling -VISTA Mixed-signal Wireless Comm MATLAB model - floating point MATLAB model - fixed point RTL coding (VHDL) Palladium XP Simulink flow Reconfugurable IP Cores Internal & External (SystemC, MATLAB, VHDL) Embedded Computing Architectures HwSw Partitioning based on profiling High Level Synthesis (CtoS, CatapultC, HandelC) Software flow RTL coding (VHDL) Verification flow -based on system level verification -Assertions and formal verification actively used -Smart testbenches - FPGA verification - Palladium verification ASIC Logic Synthesis (Synopsys), FPGA LS (Xilinx ISE) ASIC Back-End (CADENCE SE), FPGA P&R (Xilinx ISE) ASIC DRC & LVS (Cadence Assura, Polyteda) Digital design flow (ASIC; FPGA) DfT flow - BIST for memory and logic - Scan for logic 3

4 VLSI Levels of Abstraction Specification (what the chip does, inputs/outputs) System Level Modeling major resources, connections Register-Transfer logic blocks, FSMs, memory, connections Logic gates, flip-flops, latches, connections Circuit transistors, parasitics, connections Layout mask layers, polygons 4

5 Activity Flow in Digital Design specifications Functional Design Behavioural description and verification RTL Design RTL description and verification Logic Design Netlist synthesis and simulation Circuit Design Timing Closure Power Analysis Physical Design Physical Analysis (DRC, LVS, ERC) GDS description 5

6 ASIC Design flow Applications System Specification IP Library HDL RTL Designs IP HDL Top Module Definition Simulation Test Benches no New synthesis no yes Result OK? yes Logic Synthesis no New layout run sufficient? no ye s Simulation Result OK? yes Layout Synthesis Simulation 6 no Result OK? yes Final Chip Layout 6

7 Design Views and Abstraction Models BEHAVIOURAL STRUCTURAL algorithms Register transfers Signals, expressions gates registers MPSoC processors transistors cells modules chips PHYSICAL Process of ASIC design starts with behavioral model, goes over structural until physical model 7

8 VHDL could be applied at multiple levels of abstraction For detailed view please visit Entwurf Digitaler Systeme VHDL can be used to model the circuit of very abstract behavioral level This description can be refined to the RTL level Also it can be used for describing the structural netlist After synthesis Cell Delay After layout Cell Delay Interconnect Delay 8

9 Synthesis Process and different coding Styles Synthesis converts RTL model to structural model As a result we get some sort of a netlist (VHDL, Verilog (most frequently), EDIF) Behavioral (RTL) model architecture behav of mux is pr: process(a,b,c) if (S = '0') then Y <= A; else Y <= B; end if; end process pr; end; Synthesis Structural model architecture netlist of mux is signal CI, D, E:std_logic g1: not port map (CI,C); g2: and port map (D,A,CI); g3: and port map (E,B,C); g4: or port map (Y,D,E); end; A C B Y 9

10 Why we should know the synthesis outcome while describing VHDL? Expected result of synthesis Behavioral model architecture behav of cont is p1: process(a,b,c1, C2) if (C1 = 1') and (C2 = '1') then Out1 <= A; elsif (C2 = 1') then Out2 <= B; --else we do not care end if; end process p1; end; A C1 C2 Synthesis A B B C1 C2 MUX Out1 Obtained synthesized design! MUX D Out Latch EN Out1 10

11 Why is suboptimal design dangerous? Additional hardware leads to overhead in the area -> additional cost Additional hardware means additional power consumption -> reduced battery time Suboptimal design have reduced performances -> longer critical path Unclarities in the design create potential bugs (Unintentional) use of latches may lead to problems in timing analysis and glitch generation 11

12 Why we should know the synthesis outcome while describing VHDL? - Corrected Design Behavioral model architecture behav of cont is p1: process(a,b,c1, C2) if (C1 = 1') and (C2 = '1') then Out1 <= A; elsif (C2 = 1') then Synthesis A Out2 <= B; else B MUX Out1 Out2<= B ; end if; end process p1; end; C1 C2 Rule of correctly written VHDL: Always define the outputs for all IF cases 12

13 Typical Digital Circuits Combinational logic circuits random logic multiplexers Decoders Arithmetic functions Sequential logic (registers) synchronous & asynchronous inputs Shift registers Finite state machines Memory synthesis More advanced circuits (FIFOs, synchronizers, clock gates) 13

14 How VHDL Simulator works? VHDL blocks are simulated using event based simulator Assignments are concurrently executed Update for all assignments in particular timestamp is performed at the same time Following assignments (depending on the updates from the previous calculations) are updated with delta cycle delay Delta cycle delay is simulation quantum time which cannot be visualized, but enables effective execution of events. When all assignments are eventually resolved (after N delta cycles) the simulator can go to the next timing event in the simulation. X<= Y+ Z; -- assignment executed after delta cycle W<= X-Z; -- after updating the value of X, we will update the value of W as well, -- however with one delta cycle delay compared to the X update Please be careful: A<=B; In this case signals A and B are not identical, and there is a delta delay in between

15 Variables and Signals Variables are used only within the process Usually they are utilized for holding the immediate results of the calculation (it is also difficult to visualize them in the simulation) Variables are updated immediately (without delta cycle delay) They enable sequential execution in the process Signals are always executed with delta delay cycle Behavioral model architecture behav of cont is p1: process(a,b,c1, C2) variable Temp:std_logic:= 0 ; --initial value! if (C1 = 1') and (C2 = '1') then temp := A; elsif (C2 = 1') then temp:= B; else temp:= B ; end if; Out1<=B; end process p1; end; Behavioral model architecture behav of ex1 is p1: process(clk) variable Temp1, Temp2:std_logic; if (clk = 1') and clk event then temp1 := A; temp2 :=temp1; Out1:=temp2; end if; end process p1; end; Behavioral model architecture behav of ex2 is p1: process(clk) variable Temp1, Temp2:std_logic; if (clk = 1') and clk event then Out1:=temp2; temp1 := A; temp2 :=temp1; -- order of operation matters! end if; end process p1; end;

16 VHDL Coding Styles Structural architecture netlist of cont is signal CI, D, E:std_logic g1: not port map (CI,C); g2: and port map (D,A,CI); g3: and port map (E,B,C); g4: or port map (Out1,D,E); end; Behavioural Behavioral model architecture behav of cont is p1: process(a,b,c1, C2) if (C1 = 1') and (C2 = '1') then Out1 <= A; else Out2 <= B; end if; end process p1; end; Dataflow architecture dataflow of cont is Out1<=A when C1= 1 and C2= 1 else B; end;

17 Sensitivity list in Combinational Logic All signals affecting results of the combinational process need to be in the sensitivity list Otherwise the simulation results will not be representative For synchronous circuits it is only required to have clock (and asynchronous set/reset in the list Why is this so? Behavioral model architecture behav of cont is p1: process(a,b, C2) missing C1 if (C1 = 1') and (C2 = '1') then Out1 <= A; else Out2 <= B; end if; end process p1; end; 17

18 Multiplexer: Using case Statement entity Mux4 is port (in1: in std_logic_vector(3 downto 0); s1: in std_logic_vector (1 downto 0); m: out std_logic); end Mux4; in1 MUX m architecture behav of Mux4 is process(s1, in1) case s1 is when "00" => m <= i(0); when "01" => m <= i(1); when "10" => m <= i(2); when others => m <= i(3); -- why this? end case; end process; end behav; S1 18

19 Multiplexer: dataflow implementation entity Mux4 is port (in1: in std_logic_vector(3 downto 0); s1: in std_logic_vector (1 downto 0); m: out std_logic); end Mux4; in1 MUX m architecture behav of Mux4 is with s1 select when "00" => m <= i(0); when "01" => m <= i(1); when "10" => m <= i(2); when others => m <= i(3); end behav; S1 This implementation is safer for unexperienced designers => no problems with sensitivity list and complete definition of cases 19

20 Priority encoder entity enc is port (in1: in std_logic_vector(3 downto 0); s1: in std_logic_vector (1 downto 0); m: out std_logic); i3 end enc; architecture behav of enc is process(s1, in1) If S1 = "00" then m <= i(0); elsif S1= "01" then m <= i(1); elsif S1= "10" m <= i(2); else m <= i(3); -- why this? end if; end process; end behav; i2 MUX S1=10 i1 MUX S1=01 MUX S1=00 What is the difference between priority encoder and mux? Which one has shorter critical path? i0 20 m

21 Synthesizing arithmetic circuits Basic arithmetic operations are synthesizable +,-,*, and abs However, special multiplication architectures are not per default supported and need to be described Division operator functions in simulation, but it is not in general synthesizable Exception is division with 2 N How this could be implemented? Special operations: +1, -1, unary - Relational Operators: =, /=, <, >, <=, >= For arithmetic functions one (but not both at the same time) of the packages can be used std_logic_arith numeric_std 21

22 Ranges of signals/variables It is important to define the correct range of logic Example: please observe the consequences of two different definitions signal i1 : integer range 0 to 15; -- how many bits? signal i1 : integer; If we already know the value of some operand, constant should be used x<= y +3; -- is less complex in synthesis as x<=y+z; 22

23 Signed and Unsigned Arithmetic We cannot directly calculate with std_logic type It is not clear which kind of arithmetic need to be used Therefore such signals need to be converted to SIGNED or UNSIGNED arithmetic The corresponding arithmetic packages need to be used library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity SUB is port ( in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(3 downto 0) ) ; end SUB; architecture Behav of SUB is out1<= in1 - in2; -- please observe the width of the operands and result end Behav; 23

24 Taking overflow into account library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity SUB_ex is port ( in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(4 downto 0) ) ; end SUB_ex; architecture Behav of SUB_ex is out1<= in1(3)&in1 in2(3)& in2; end Behav; What we should do for unsigned arithmetic? 24

25 Combining combinational and sequential logic library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity SUB_ex_clk is port ( clk, reset: in std_logic; in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(4 downto 0) ) ; end SUB_ex_clk; architecture Behav of SUB_ex_clk is Begin px: process(clk, reset) why those signals? if reset= 1 then -- how we should name reset active 0? out1<=(others=> 0 ); -- what this means? elsif clk event and clk= 1 then out1<= in1(3)&in1 in2(3)& in2; end if; end process px; end Behav; 25

26 Combining combinational and sequential logic Alternative approach library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity SUB_ex_clk is port ( clk, reset: in std_logic; in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(4 downto 0) ) ; end SUB_ex_clk; architecture Behav of SUB_ex_clk is Signal out_s: SIGNED(4 downto 0); Begin Out_s<= in1(3)&in1 in2(3)& in2; px: process(clk, reset) if reset= 1 then out1<=(others=> 0 ); elsif clk event and clk= 1 then out1<= out_s; -- could we visualize such circuit after synthesis? end if; end process px; end Behav; ; 26

27 Combining combinational and sequential logic adding conditions library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity ACU_ex_clk is port ( clk, reset, cnt: in std_logic; in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(4 downto 0) ) ; end ACU_ex_clk; architecture Behav of ACU_ex_clk is Signal out_s: SIGNED(4 downto 0); Begin Out_s<= in1(3)&in1 in2(3)& in2 when cnt= 1 else in1(3)&in1 in2(3)& in2; px: process(clk, reset) if reset= 1 then out1<=(others=> 0 ); elsif clk event and clk= 1 then out1<= out_s; end if; end process px; end Behav; ; 27

28 Combining combinational and sequential logic adding conditions library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; entity ACU_ex_clk is port ( clk, reset, cnt: in std_logic; in1, in2 : in SIGNED(3 downto 0) ; out1: out SIGNED(4 downto 0) ) ; end ACU_ex_clk; architecture Behav of ACU_ex_clk is Signal out_s: SIGNED(4 downto 0); Begin px: process(clk, reset) if reset= 1 then out1<=(others=> 0 ); elsif clk event and clk= 1 then case cnt is when 1 => out1<= in1(3)&in1 in2(3)& in2; when others => out1<= in1(3)&in1 + in2(3)& in2; end case; end if; end process px; end Behav; ; 28

29 Resource Sharing S1 process (s1,s2,s3,cnt) if (cnt= 0 ) then Out1 <= S1 * S2 ; else Out1 <= S3 * S2 ; end if ; end process ; process (s1,s2,s3,cnt) if (cnt= 0 ) then Out1_s <= S1 ; else Out1_s <= S3 ; end if ; Out1<= Out1_s*S2; end process ; X S2 X MUX equivalent S1 S3 MUX X S3 cnt cnt S2 29

30 Latches and Flip-flops (reminder) Sequential elements are latches and flip-flops Flip-flops are more frequently used in synchronous designs Latches process (EN, D, RSTN) please check the sensitivity list if RSTN= 0 then if (EN = 1 ) then Q <= D ; end if; end process; Flip-flops process (CLK) if (CLK event and CLK= 0 ) then what this means? Q <= D ; end if; end process; 30

31 Reset/Set as synchronous and asynchronous signals Asynchronous reset/set corresponds to equivalent flip-flop standard cells where activation/deactivation or reset is not related to clock activity How to describe this in VHDL? Asynchronous signals could be critical in synchronous system since we do not know timing relation to the clock Metastability issue Synchronization of reset from the external world Synchronous reset behaves as any other signal within the synchronous pipeline. Could be seen as multiplexer before the flip-flop More rarely used, often in specific applications (space) How to describe this in VHDL? D 0 MUX RST D Out D-FF CLK CLK Q 31

32 Try your examples Try with simple circuits: 8-bit counter with Load and Asynchronous Reset Shift register (Shift left, right, rotate) Tri-state buffer Input Output En Bi-directional buffer Not frequently used for on-chip communication 32

33 Moore/Mealy FSMs Moore Format Mealy Format 33

34 State machine synthesis issues Two-types of FSM models Mealy model: outputs = f ( inputs, state) Moore model: outputs = f ( state ) Present_state and next_state Enumeration type state encoding Two processes combinational and sequential Using case statement rather than if-then-elsif to avoid generation of priority encoder Next state assigned in a synchronous template 34

35 Models of Synchronous Systems Moore and Mealy FSMs 35

36 Moore Model in VHDL library IEEE; use IEEE.STD_LOGIC_1164.all; entity Moore is port ( Inp1, clk, reset : in std_logic ; Out1 : out std_logic ); end Moore; architecture FSM of Moore is type state is (s1, s2, s3); signal present_state, next_state : state; process ( inp1, present_state ) combinational part case present_state is when s1 => Out1 <= '0'; if ( Inp1 = '1') then next_state <= s3; else next_state <= s2; end if; when s2 => Out1 <= 0'; if ( Inp1 = '1') then next_state <= s3; else next_state <= s1; end if; when s3 => Out1 <= '1'; next_state <= s1; end case; end process; process (clk, reset) -- sequential part if reset= 1 then present_state<=s1; if clk= 1 and clk event then present_state <= next_state ; -- taking the result of combinational logic and storing into reg end if; end process; end FSM ; 36

37 Mealy Model in VHDL library IEEE; use IEEE.STD_LOGIC_1164.all; entity Mealy is port ( Inp1, clk, reset : in std_logic ; Out1 : out std_logic ); end Mealy; architecture FSM of Mealy is type state is (s1, s2, s3); signal present_state, next_state : state; process ( inp1, present_state ) combinational part case present_state is when s1 => if ( Inp1 = '1') then next_state <= s3; Out1 <= '0'; else next_state <= s2; Out1 <= 1'; end if; when s2 => if ( Inp1 = '1') then next_state <= s3; Out1 <= 0'; else next_state <= s1; Out1 <= 1'; end if; when s3 => Out1 <= '1'; next_state <= s1; end case; end process; process (clk, reset) -- sequential part if reset= 1 then present_state<=s1; if clk= 1 and clk event then present_state <= next_state ; -- taking the result of combinational logic and storing into reg end if; end process; end FSM ; What is the difference? 37

38 Memory Synthesis Approaches: Sequential logic using flip-flops or latches easy to be used, ineffective in respect to area and power D-flip-flop ~ 26 transistors Register files in datapaths SRAM Static RAM 6 transistors per cell SRAM memory standard components no configurability, hard macros DRAM only 1 transistor per cell, but needs for refresh ROM, PROM, Embedded Flash Emerging memories: RRAM, MRAM, PCRAM memory compilers one can choose the configuration and architecture, much more optimal then FF based, limited number of access ports Single port, dual-port, two-port memories 38

39 Memory Generator Source: Xilinx

40 Involving memories in Code For generating memory models one should use memory generators Memory instances should be included in the structural VHDL code For memory wrappers (glue logic) generate the separate instance Normally for behavioral simulation use VHDL memory models For back-annotation use verilog memory models 40

41 FIFO Implementation FIFOs should be implemented as circular buffers W_add R_add we Write pointer (counter) Read pointer (counter) re W_data RAM R_data 41

42 Combinational and sequential logic Coding Guidelines Avoid the instances with only combinational logic The output signals should be registered For pure combinational path use non-process description style (dataflow) For sequential parts always use flip-flop template For most of the applications is best to use consistently asynchronous reset 42

43 Design Organization & Partitioning Don t mix structural and behavioral code Avoid glue logic in structural designs; if necessary put the glue logic in a separate design entity. Use comments to describe important issues related to the code functionality. Make the header for each entity with corresponding comments For large designs try to organise your files to be distributed in separate folders; each folder should contain data related to a larger structural unit of the design. Avoid using generics at the top level; it is recommended to use packages with definitions of constants instead of generics Make clock dividers and reset synchronisers as separate entities and include them on the top 43

44 Naming conventions Design name and entity name should be the same example (vhdl): design.vhd; example (verilog): design.v entity design is module design Port, signal, process, and instance names should be meaningful clk, data, data, reset, ack, cs, wr, rd, test_si, etc Don t mix lower and upper case (however VHDL is not case sensitive) For signals and variables that are active low, this shall be clearly indicated by their name, by suffixing _n Every process shall have a name; the name shall be formed by suffixing _proc Architecture name shall be formed by suffixing _arch 44

45 Architectural Decisions When some system is coded on RTL level, the designer has to have in mind the system architecture Memory insertion must be considered Area trade-off Performance trade-off Power trade-off 45

46 Reset Issue Ensure that all the registers in the design are resettable; Non-resettable registers are not testable and their behaviour is hard to debug If the design requirements prefer non-resettable cells make sure to provide proper initialisation procedure in the simulation; Asynchronous resets are most commonly used Don t mix synchronous and asynchronous resets. Use reset synchronizers 46

47 Clocking strategy Reasonable clock frequencies are (rule of thumb) for 0.25 um up to 100 MHz, for 0.13 um up to 166 MHz. If possible avoid different clock domains Clock control circuits (gates, divider, multiplexers) should be grouped in the single entity on the top level of design For high performance design or complex clocking (divided clock domains) use PLL (DLL) in design Take care about the delta cycles! 47

48 Clock issues and clock-gating Don t mix rising and falling edge flip-flops Use glitch-free clock gates for clock gating or special standard cells (if they are available) 48

49 Synchronization If you have to transfer the data between the different unrelated clock domains use synchronizers Otherwise you will have problems with metastability. Two-flop or single-flop synchronizers for a single bit For bus synchronization do not synchronize each bit individually; introduce an enable signal and then synchronize this enable signal 49

50 Making design testable Provide test_mode signal In this mode all clocks must come directly from PADs without any gating In this mode all reset signals must come directly from PADs without any gating or registering DFT strategies commonly used Structural test (Scan test) Memory BIST Logic BIST Standard and Scan Flip-Flop Advanced rules for memory insertion, combinational loops, reset definition, complex clocking with DFT 50

51 Test and Verification Writing the good testbench is as much important as making the good design The input data could be read from the file (textio package) The output data should be compared to the golden model (coming from C, MATLAB etc.) The tests should be as much exhaustive as possible Code coverage shall be reported to ensure the quality and the thoroughness of the testbench Use assertions and avoid relying on GUI

52 Conclusions Writing a VHDL is not the same as writing C-code The designer must understand the concequences of particular coding style The designer should write the code such that this fully defines resulting hardware after synthesis Some guidelines should be followed to have the efficient code generation 52

VHDL for Logic Synthesis

VHDL for Logic Synthesis VHDL for Logic Synthesis Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis

More information

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions Logic Synthesis Overview Design flow Principles of logic synthesis Logic Synthesis with the common tools Conclusions 2 System Design Flow Electronic System Level (ESL) flow System C TLM, Verification,

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

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

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

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

FPGA for Software Engineers

FPGA for Software Engineers FPGA for Software Engineers Course Description This course closes the gap between hardware and software engineers by providing the software engineer all the necessary FPGA concepts and terms. The course

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

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

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

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

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques FSM Components XST features: Specific inference capabilities for synchronous Finite State Machine (FSM) components. Built-in FSM encoding strategies to accommodate your optimization goals. You may also

More information

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University

More information

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Hardware Design Environments Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University Outline Welcome to COE 405 Digital System Design Design Domains and Levels of Abstractions Synthesis

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

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2

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

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

State Machine Descriptions

State Machine Descriptions State Machine Descriptions Can be modelled using many different coding styles Style guidelines available for Moore or Mealy type machines Several encoding schemes for state variables used in FSM descriptions

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

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

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

Field Programmable Gate Array

Field Programmable Gate Array Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational

More information

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State

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

V1 - VHDL Language. FPGA Programming with VHDL and Simulation (through the training Xilinx, Lattice or Actel FPGA are targeted) Objectives

V1 - VHDL Language. FPGA Programming with VHDL and Simulation (through the training Xilinx, Lattice or Actel FPGA are targeted) Objectives Formation VHDL Language: FPGA Programming with VHDL and Simulation (through the training Xilinx, Lattice or Actel FPGA are targeted) - Programmation: Logique Programmable V1 - VHDL Language FPGA Programming

More information

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis Spring 2007 Lec #8 -- HW Synthesis 1 Logic Synthesis Verilog and VHDL started out

More information

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008

TKT-1212 Digitaalijärjestelmien toteutus. Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 TKT-1212 Digitaalijärjestelmien toteutus Lecture 7: VHDL Testbenches Ari Kulmala, Erno Salminen 2008 Contents Purpose of test benches Structure of simple test bench Side note about delay modeling in VHDL

More information

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory CS211 Digital Systems/Lab Introduction to VHDL Hyotaek Shim, Computer Architecture Laboratory Programmable Logic Device (PLD) 2/32 An electronic component used to build reconfigurable digital circuits

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for

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

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

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

קורס VHDL for High Performance. VHDL

קורס VHDL for High Performance. VHDL קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב

More information

3 Designing Digital Systems with Algorithmic State Machine Charts

3 Designing Digital Systems with Algorithmic State Machine Charts 3 Designing with Algorithmic State Machine Charts An ASM chart is a method of describing the sequential operations of a digital system which has to implement an algorithm. An algorithm is a well defined

More information

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad - 00 0 ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK Course Name : DIGITAL DESIGN USING VERILOG HDL Course Code : A00 Class : II - B.

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

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

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

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly

More information

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March

More information

Luleå University of Technology Kurskod SMD098 Datum Skrivtid

Luleå University of Technology Kurskod SMD098 Datum Skrivtid Luleå University of Technology Kurskod SMD098 Datum 2001-12-17 Skrivtid 14.00 18.00 Tentamen i Beräkningstrukturer Antal uppgifter: 6 Max poäng: 35 Lärare: Jonas Thor Telefon: 2549 Tillåtna hjälpmedel:

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

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

More information

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis

Graphics: Alexandra Nolte, Gesine Marwedel, Universität Dortmund. RTL Synthesis Graphics: Alexandra Nolte, Gesine Marwedel, 2003 Universität Dortmund RTL Synthesis Purpose of HDLs Purpose of Hardware Description Languages: Capture design in Register Transfer Language form i.e. All

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

Contents. Chapter 9 Datapaths Page 1 of 28

Contents. Chapter 9 Datapaths Page 1 of 28 Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for

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

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna Advanced FPGA Design Jan Pospíšil, CERN BE-BI-BP j.pospisil@cern.ch ISOTDAQ 2018, Vienna Acknowledgement Manoel Barros Marin (CERN) lecturer of ISOTDAQ-17 Markus Joos (CERN) & other organisers of ISOTDAQ-18

More information

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks. Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:

More information

CS232 VHDL Lecture. Types

CS232 VHDL Lecture. Types CS232 VHDL Lecture VHSIC Hardware Description Language [VHDL] is a language used to define and describe the behavior of digital circuits. Unlike most other programming languages, VHDL is explicitly parallel.

More information

MLR Institute of Technology

MLR Institute of Technology MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Course Name Course Code Class Branch ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK : DIGITAL DESIGN

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

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but

More information

8 Register, Multiplexer and

8 Register, Multiplexer and 8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state

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

: : (91-44) (Office) (91-44) (Residence)

:  : (91-44) (Office) (91-44) (Residence) Course: VLSI Circuits (Video Course) Faculty Coordinator(s) : Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Chennai 600036 Email Telephone : srinis@iitm.ac.in,

More information

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

FPGA briefing Part II FPGA development DMW: FPGA development DMW: FPGA briefing Part II FPGA development FPGA development 1 FPGA development FPGA development : Domain level analysis (Level 3). System level design (Level 2). Module level design (Level 1). Academical focus

More information

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library :

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library : UNIT I Introduction to VHDL VHDL stands for very high-speed integrated circuit hardware description language. Which is one of the programming languages used to model a digital system by dataflow, behavioral

More information

Note: Closed book no notes or other material allowed, no calculators or other electronic devices.

Note: Closed book no notes or other material allowed, no calculators or other electronic devices. ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Exam Review Note: Closed book no notes or other material allowed, no calculators or other electronic devices. One page

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

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

VHDL Essentials Simulation & Synthesis

VHDL Essentials Simulation & Synthesis VHDL Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using VHDL standard language. The course

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

HDL Design Cube. Synthesis and VHDL

HDL Design Cube. Synthesis and VHDL HDL Design Cube time causality (algorithmic level) timing clock related (register-transfer level) propagation delay (gate level) structure dataflow behavior bit values view composite bit values values

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

C-Based Hardware Design

C-Based Hardware Design LECTURE 6 In this lecture we will introduce: The VHDL Language and its benefits. The VHDL entity Concurrent and Sequential constructs Structural design. Hierarchy Packages Various architectures Examples

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

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS Contents i SYLLABUS osmania university UNIT - I CHAPTER - 1 : BASIC VERILOG HDL Introduction to HDLs, Overview of Digital Design With Verilog HDL, Basic Concepts, Data Types, System Tasks and Compiler

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

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more

More information

Digital System Design with SystemVerilog

Digital System Design with SystemVerilog Digital System Design with SystemVerilog Mark Zwolinski AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo

More information

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control ECE 4514 Digital Design II Lecture 15: FSM-based Control A Design Lecture Overview Finite State Machines Verilog Mapping: one, two, three always blocks State Encoding User-defined or tool-defined State

More information

EL 310 Hardware Description Languages Midterm

EL 310 Hardware Description Languages Midterm EL 3 Hardware Description Languages Midterm 2 3 4 5 Total Name: ID : Notes: ) Please answer the questions in the provided space after each question. 2) Duration is minutes 3) Closed books and closed notes.

More information

RTL Design (Using ASM/SM Chart)

RTL Design (Using ASM/SM Chart) Digital Circuit Design and Language RTL Design (Using ASM/SM Chart) Chang, Ik Joon Kyunghee University Process of Logic Simulation and Synthesis Design Entry HDL Description Logic Simulation Functional

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

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

101-1 Under-Graduate Project Digital IC Design Flow

101-1 Under-Graduate Project Digital IC Design Flow 101-1 Under-Graduate Project Digital IC Design Flow Speaker: Ming-Chun Hsiao Adviser: Prof. An-Yeu Wu Date: 2012/9/25 ACCESS IC LAB Outline Introduction to Integrated Circuit IC Design Flow Verilog HDL

More information

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. World Class SystemVerilog & UVM Training Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings

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

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL) Pinit Kumhom VLSI Laboratory Dept. of Electronic and Telecommunication Engineering (KMUTT) Faculty of Engineering King Mongkut s University

More information

Actel HDL Coding. Style Guide

Actel HDL Coding. Style Guide Actel HDL Coding Style Guide Actel Corporation, Mountain View, CA 94043 2006 Actel Corporation. All rights reserved. Printed in the United States of America Part Number: 5029105-7 Release: November 2006

More information

Chapter 2 Using Hardware Description Language Verilog. Overview

Chapter 2 Using Hardware Description Language Verilog. Overview Chapter 2 Using Hardware Description Language Verilog CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Algorithm development isa usually done in MATLAB, C, or C++ Code

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

VHDL for Complex Designs

VHDL for Complex Designs ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 VHDL for Complex Designs This lecture covers VHDL features that are useful when designing complex logic circuits. After

More information

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines Lecture 3 Behavioral Modeling Sequential Circuits Registers Counters Finite State Machines Behavioral Modeling Behavioral Modeling Behavioral descriptions use the keyword always, followed by optional event

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

PINE TRAINING ACADEMY

PINE TRAINING ACADEMY PINE TRAINING ACADEMY Course Module A d d r e s s D - 5 5 7, G o v i n d p u r a m, G h a z i a b a d, U. P., 2 0 1 0 1 3, I n d i a Digital Logic System Design using Gates/Verilog or VHDL and Implementation

More information

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS Note: Closed book no notes or other material allowed apart from the one

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

Actel HDL Coding. Style Guide

Actel HDL Coding. Style Guide Actel HDL Coding Style Guide Actel Corporation, Mountain View, CA 94043 2003 Actel Corporation. All rights reserved. Printed in the United States of America Part Number: 5029105-6/05.04 Release: May 2004

More information

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007

EECS Components and Design Techniques for Digital Systems. Lec 20 RTL Design Optimization 11/6/2007 EECS 5 - Components and Design Techniques for Digital Systems Lec 2 RTL Design Optimization /6/27 Shauki Elassaad Electrical Engineering and Computer Sciences University of California, Berkeley Slides

More information

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous

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

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 2.2.2: VHDL-3 Liang Liu liang.liu@eit.lth.se 1 Outline Inference of Basic Storage Element Some Design Examples DFF with enable Counter Coding Style:

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

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering

More information

Topics. Midterm Finish Chapter 7

Topics. Midterm Finish Chapter 7 Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory

More information