VHDL Quick Start. Edward Gatt

Size: px
Start display at page:

Download "VHDL Quick Start. Edward Gatt"

Transcription

1 VHDL Quick Start Edward Gatt

2 Modeling Digital Systems VHDL is for writing models of a system Reasons for modeling requirements specification design needs to meet specifications which maybe incomplete or ambiguous and formal model is necessary to communicate requirements formal modeling useful to communicate understanding of the function to the user. designer cannot predict all uses of the system. therefore presents model to user to check it against set of inputs also useful in documentation Edward Gatt VHDL 2

3 Modeling Digital Systems Reasons for modeling testing using simulation and formal verification - systems can be designed from subsystems each with its own model of behaviour. compare outputs/inputs froom circuit to simulation if they coincide the design is fine otherwise need re-designing process can be reiterated until we arrive at the bottom level in the design hierarchy and the manufactured product can be verified to meet specifications synthesis modeling allows automatic synthesis of circuits function is translated to circuitry saving human costs Edward Gatt VHDL 3

4 Modeling Digital Systems Goal most reliable design process, with minimum cost and time allows optimisation normally speed vs gate count compromise avoid design errors! Edward Gatt VHDL 4

5 Domains and Levels of Modeling Structural Functional high level of abstraction low level of abstraction Geometric Y-chart due to Gajski & Kahn Edward Gatt VHDL 5

6 Domains and Levels of Modeling Structural Functional Algorithm (behavioral) Register-Transfer Language Boolean Equation Differential Equation Geometric Y-chart due to Gajski & Kahn Edward Gatt VHDL 6

7 Domains and Levels of Modeling Behavioural Model - Function of the entire system may be described by an algorithm similar to programming eg. loop for each data input loop read the value on the input scale the value using a scale factor end loop wait for 10 ms; end loop; Edward Gatt VHDL 7

8 Domains and Levels of Modeling Register-Transfer Level (RTL) Storage of data is represented using register variables and transformations are represented by arithmetic and logical operations eg. MAR PC, memory_read 1 PC PC + 1 wait until ready = 1 IR memory_data memory_read 0 Boolean Algebra Truth Tables Differential Equations Transistor Behaviour Edward Gatt VHDL 8

9 Domains and Levels of Modeling Structural Processor-Memory Switch Functional Register-Transfer Gate Transistor Geometric Y-chart due to Gajski & Kahn Edward Gatt VHDL 9

10 Domains and Levels of Modeling Processor Memory Switch (PMS) Describing a system as interconnections of Processing Elements Memory Components Input/Output Devices Processor Interconnection Switch Memory Input/Outputs PMS Model for a Controller Edward Gatt VHDL 10

11 Domains and Levels of Modeling Register Transfer Level Register-Transfer- Level for Controller System can then be translated to gates and transistor implementation Edward Gatt VHDL 11

12 Domains and Levels of Modeling Structural Functional Polygons Sticks Standard Cells Floor Plan Geometric Y-chart due to Gajski & Kahn Edward Gatt VHDL 12

13 Domains and Levels of Modeling Floor Planning Reset VSS_Osc ADC [0..3] CAN OSC VDD_Osc NC Capa NC VDD PortA PortB VSS NC PortC NC Edward Gatt VHDL 13

14 Domains and Levels of Modeling Geometric Level of Abstraction Standard Library Cells are used to implement the Registers and Data Transformation Units and must be placed in the areas allocated in the Chip Floor Plan Stick Diagrams Use of Stick Diagrams to Implement Gate Layout Floorplanning Edward Gatt VHDL 14

15 Domains and Levels of Modeling Geometric Level of Abstraction Polygons for Layout Masks Edward Gatt VHDL 15

16 Digital Circuit Design Circuit Design Schematic Entry HDL State Diagrams VHDL Verilog 16

17 VHDL VHDL or VHSIC Hardware Description Language is commonly used as a design-entry language for field-programmable gate arrays and applicationspecific integrated circuits in electronic design automation of digital circuits. VHDL is a fairly general-purpose language, although it requires a simulator on which to run the code. It can read and write files on the host computer, so a VHDL program can be written that generates another VHDL program to be incorporated in the design being developed. Because of this general-purpose nature, it is possible to use VHDL to write a test bench that verifies the functionality of the design using files on the host computer to define stimuli, interacts with the user, and compares results with those expected. The key advantage of VHDL when used for systems design is that it allows the behaviour of the required system to be described (modeled) and verified (simulated) before synthesis tools translate the design into real hardware (gates and wires). 17

18 VHDL VHDL allows the description of a concurrent system (many parts, each with its own sub-behaviour, working together at the same time). When a VHDL model is translated into the "gates and wires" that are mapped onto a programmable logic device such as a CPLD or FPGA, then it is the actual hardware being configured, rather than the VHDL code being "executed" as if on some form of a processor chip. To start coding in VHDL, one needs a simulation tool. While very few open source VHDL simulators exist today, most commercial vendors offer free, but often limited, versions of their software. Furthermore, it is highly recommended to use a synthesis tool even when you do not plan to test your code on real hardware. The reason for this is that you can often see the graphical representation (i.e. gates) of your code after synthesis. Seeing what kind of hardware correspond to your code is a very important step in learning any HDL and becoming a good designer. 18

19 Design Flow Design Entry Functional Simulation Library Elements Vendor Synthesis Schematic {Basic Gates; Flip Flop; Complex Gates} Place and Route {Parasitic Cap Extraction} Post Layout Simulation {Check Timing Constraints} 19

20 VHDL Architectures VHDL architectures are divided into two main categories: structural: with full circuit details {netlist form} functional: description of the functionality of the circuit no need of circuit details 20

21 Constructs in VHDL There are three main constructs in VHDL: Component Declaration Component Instantiation Component Configuration 21

22 Component Declaration Define Component name and input/output ports A B component component_name port ( A,B: In BIT; Y: Out BIT); end component component_name Y More versatile types Can have different values other than {1,0} VHDL logic types: e.g u,w,x,z u unresolved BIT {1,0} z tri-state BIT_VECTOR x don t care STD_LOGIC STD_LOGIC_VECTOR 22

23 Component Instantiation Instance = occurrence component port names A1 B1 signal names signal names have to be declared before hand A B Y Y1 These statements represent the use of a component. They specify: A unique name for each instance of the component How the ports of the component are to be connected to the rest of the signals. 23

24 Component Instantiation component port names A1 B1 signal names A B Y Y1 instance_name: component_name port map (A => A1, B => B1, Y=> Y1); component ports wire/signal names 24

25 Component Configuration Maps component instantiations to pre-compiled VHDL library design units. Component Configurations are named to allow multiple configurations to exist for a single design, allowing design alternatives and modifications to be explored in parallel. ALL refers to all instances configuration config_name of entity_name is for component_label: component_name use entity library_name.entity_name(architecture_name); end for end config_name Low Level vs High level Description 25

26 Example 1: Half Adder Structural VHDL Description Entity Name: Halfadder Architecture Name: Structural 26

27 Example 1: Half Adder Structural VHDL Description entity Halfadder is port (A1,B1: In BIT; Sum,Carry: Out BIT); end Halfadder; architecture structural of Halfadder is component Xor2 port (A,B: IN Bit; Y: OUT Bit); end component; component Nand2 port (A,B: IN Bit; Y: OUT Bit); end component; component declaration in this section the components to be used are declared signal icarry: BIT; 27

28 Example 1: Half Adder Structural VHDL Description begin Gate1: Xor2 port map (A => A1,B => B1,Y => sum); Gate2: Nand2 port map (A => A1,B => B1,Y => icarry); Gate3: Nand2 port map (A => icarry,b => icarry,y => carry); end structural; component instantiation in this section the different components are connected together via the port map 28

29 Example 1: Half Adder Structural VHDL Description configuration Halfadderconfig of Halfadder is for structural entity name for Gate1:Xor2 use entity work.xorgate2(simple); end for; refers to all instances for ALL:Nand2 use entity work.xorgate2(simple); end for; library name architecture name end for; Assume that Xor2 and Nand2 are pre-compiled in library called work. Component Name Entity Name Architecture Name Xor2 XorGate2 simple Nand2 NandGate2 simple component configuration end Halfadderconfig; 29

30 Testing VHDL description using a test bench TB: Testbench HA: Halfadder A DriveA1 A1 Sum Monitorsum B DriveB1 B1 Carry Monitorcarry Entity Name: HalfadderTop Architecture Name: Structural 30

31 Testing VHDL description using a test bench entity HalfadderTop is -- no i/o ports end HalfadderTop; architecture structural of HalfadderTop is component Halfadder is (A1, B1: In BIT; Sum, Carry: Out BIT); end component; component Testbench is (A, B: Out BIT); end component; component declaration Structural VHDL is used for VHDL testing signal declaration signal DriveA1, DriveB1, MonitorSum, MonitorCarry: Bit; continues 31

32 Testing VHDL description using a test bench continues begin HA: Halfadder Requires configuration file & pre-compiled testbench entity port map (A1=>DriveA1,B1=>DriveB1, sum=>monitorsum, Carry=>MonitorCarry); TB: Testbench component instantiation port map (A=>DriveA1,B=>DriveB1); TB: Testbench HA: Halfadder end structural; A B DriveA1 DriveB1 A1 Sum B1 Carry Monitorsum Monitorcarry 32

33 VHDL Functional Description Functional descriptions can be made using: Concurrent VHDL statements Sequential VHDL statements Concurrent VHDL statements: no implied sequence/timing i.e. statements are executed in parallel. Sequential VHDL statements: statements are executed one after the other as in a normal programming language {order is important}. Sequential VHDL statements are identified since they have to be in a process block. 33

34 The Process Block process_label: process (sensitivity list) begin Sequential statements; end process process_label; optional Process A Process B The sensitivity list is a list of signals which will trigger (start) the process. If no sensitivity list exists, then the process will continue to loop indefinitely: in this case the execution is typically controlled by wait statements forming part of the sequential statements in the process block. A process will therefore typically have a sensitivity list or wait statements, but it cannot have both. There can be more than one process running concurrently. However the statements in each process block would be executed sequentially. Changes in the value of any one of the signals in the sensitivity list will cause the process to be executed. The process will continue serial execution until the last statement has been executed. The process then suspends execution until another change occurs in one of the signals referenced in the sensitivity list. 34

35 Example 2: Half Adder Functional VHDL Description library IEEE; use IEEE.std_logic_1164.all; entity Halfadder is port (A1, B1: in std_logic; sum, carry: out std_logic); end Halfadder; Concurrent VHDL Description architecture functional of Halfadder is begin sum <= A1 xor B1; carry <= A1 and B1; end functional; Alternatively: sum <= A1+B1; where sum is a 2-bit vector sum: out std_logic_vector(1 downto 0); 35

36 Example 3: Half Adder Functional VHDL Description library IEEE; use IEEE.std_logic_1164.all; entity Halfadder is port (A1, B1: in std_logic; sum, carry: out std_logic); end Halfadder; Sequential VHDL Description architecture functional of Halfadder is Adder: process (A1,B1) begin sum <= A1 xor B1; carry <= A1 and B1; combinational logic end process Adder; end functional; 36

37 Example 4: Latched Half Adder Functional VHDL Description library IEEE; use IEEE.std_logic_1164.all; entity Halfadder is port (A1, B1: in std_logic; sum, carry: out std_logic); end Halfadder; Sequential VHDL Description architecture functional of Halfadder is Latch_Adder: process (Clk) begin If (Clk = 1 ) then sum <= A1 xor B1; carry <= A1 and B1; end if; sequential logic end process Latch_Adder; end functional; 37

38 VHDL Basic Statements 38

39 Wait Statements Execution of a process suspends when a wait statement is encountered. Execution restarts when the condition of the wait statement is met. Syntax: process block : sequential statements : wait condition : sequential statements end process wrap 39

40 Type of Wait Statements (1) wait wait forever: usually used within a test bench (2) wait on <signal list> Waits for an event on any one of the signals (same purpose as sensitivity list) (3) wait until <condition> Waits until condition becomes true e.g. wait until A = 1 ; (4) wait for <time> e.g. wait for 10ns; {typically this is not supported by synthesis tool} 40

41 Example for Wait Statements Adder: process begin sum <= A xor B; carry <= A and B; wait on A,B; If in the wait statement we remove B, we would require memory to store value of B since a change in it will keep the adder idle -> it becomes a sequential logic circuit. end process Adder; 41

42 If statement If condition then sequential statements elsif condition then sequential statements optional else sequential statements end if; 42

43 Case statement Allows selection of sequential statements to be executed, based on the value of a selection expression. Choice of a case statement must be unique. If not all possible values of the selector expression are listed, an others choice must be included. Example: type select is array (3 downto 0) of BIT; -- defining a new type signal operationselect: select; case operationselect is when 0000 => sequential statements; when 0001 => sequential statements; when others => sequential statements; end case; The NULL statement signifies no operation. It is useful to explicitly show that no action is required for a particular choice in a case statement. e.g. : : when 0101 => NULL; 43

44 Loop Statement Syntax: while condition loop sequential statements; end loop; Boolean condition is checked each time before the loop is executed. If condition is true, loop is executed. If condition is false, execution continues with the next statement after the end loop. 44

45 Generic Loop A loop label is used in this case: Syntax: loop_label: loop sequential statements; end loop; Infinite loop used in conjunction with a wait statement or exit statement exit and next statements can be used to control the flow of a generic loop. Syntax: next loop_label when condition; exit loop_label when condition; The exit statement also terminates the current Iteration and additionally also exists the loop. The next statement terminates the execution of the current loop iteration and starts a subsequent iteration. 45

46 For Loop Specifies a fixed number of iterations of the loop. Loop index does not have to be explicitly declared. Loop index only exists within the loop and disappears as soon as the loop is terminated. Example: for I in 1 to 10 loop factorial = factorial*i; end loop; Index type of enumerated type: Step is always 1 for numeric values Example: type RGB is (Red,Green,Blue); signal rgb_signal: RGB; for RGB_Index in RGB loop -- sequential statements end loop; 46

47 Nested Loops outerloop: For X in 1 to 100 loop innerloop: For Y in 1 to 100 loop : : : exit outerloop when (Y=1 and X=99); : : end loop; end loop; 47

48 Assert Statement Used to verify a condition and report if the condition is violated. The assertion statement will also specify the severity of the condition violation: note, warning, error, failure. Syntax: assert condition report report expression severity severity_level; Example: assert (x < 32) report ( x out of limit ); severity error; This is printed if condition is not true 48

49 Conditional Assignment with selector select signal_name <= value when choice_1; <= value when choice_2; : : <= value when choice_n; <= value when others; The conditional assignment is very similar to a multiplexer implementation. choice_1 choice_2 choice_3 : : choice_n selector signal_name 49

50 Expressions and Operators Highest precedence of evaluation Miscellaneous: abs not Multiplying: * / mod Signing: + Adding: + & {concatenation of 1D arrays} Relational Operators: = /= < <= > >= Logical Operators: and or nand nor xor Lowest precedence of evaluation 50

51 Signals and Variables Signals: used for communication between concurrently executed VHDL blocks will physically map into a wire (or bus). Variables: only valid with sequential code (higher level of abstraction) are local to an individual process or function. Signal Attributes: If s is a signal: s event : returns true if s changed (either or ) current time s last_event: returns the time elapsed since the previous transition on s. 51

52 Code Examples - 1 Edward Gatt VHDL 52

53 Code Examples - 2 Edward Gatt VHDL 53

54 Code Examples -3 Edward Gatt VHDL 54

55 Code Example - 4 Edward Gatt VHDL 55

56 VHDL Process - Timing Edward Gatt VHDL 56

57 Code Example - 5 Edward Gatt VHDL 57

58 Code Example - 6 Edward Gatt VHDL 58

59 Code Example - 7 Edward Gatt VHDL 59

60 Code Example - 8 Edward Gatt VHDL 60

61 Test Bench Code transport delay used to model delays introduced by wiring delays input by a specified time Edward Gatt VHDL 61

62 Timings for Testbench Edward Gatt VHDL 62

63 Code Example - 9 Edward Gatt VHDL 63

64 Code Example 9 (cont/d) Edward Gatt VHDL 64

65 Code Example - 10 Edward Gatt VHDL 65

66 Code Example - 11 Edward Gatt VHDL 66

67 Code Example - 12 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity ALU is port ( Accumulator_in: in STD_LOGIC_VECTOR (7 downto 0); Data_in : in STD_LOGIC_VECTOR (7 downto 0); Opcode_in : in STD_LOGIC_VECTOR (3 downto 0); Result_out : out STD_LOGIC_VECTOR (7 downto 0) ); end ALU; architecture ALU_arch of ALU is begin Main: process(accumulator_in,opcode_in, Data_in) begin case Opcode_in is when "0000" => Result_out <= Data_in; -- result = Data_in when "0001"=> Result_out <= Accumulator_in; -- result = accumulator_in when "0010"=> Result_out <= " "; -- result = accumulator_in + Data_in when "0011"=> Result_out <= " "; -- result = accumulator_in - Data_in when "0100"=> Result_out <= Accumulator_in and Data_in; -- result = accumulator_in and Data_in Edward Gatt VHDL 67

68 Code Example - 12 (cont/d) when "0101"=> Result_out <= Accumulator_in or Data_in; -- result = accumulator_in or Data_in when "0110"=> Result_out <= Accumulator_in xor Data_in; -- result = accumulator_in xor Data_in when "0111"=> Result_out <= not(accumulator_in); -- result = not(accumulator_in) when "1000"=> Result_out <= not(accumulator_in); -- result = not(data_in); when "1001"=> Result_out <= " "; -- result = 0 when "1010"=> Result_out <= " "; -- result = 8 LSBs of ( accumulator_in * Data_in) when "1011"=> Result_out <= " "; -- result = 8 MSBs of ( accumulator_in * Data_in) when "1100"=> Result_out <= accumulator_in nand Data_in; -- result = accumulator_in nand Data_in when "1101"=> Result_out <= accumulator_in nor Data_in; -- result = accumulator_in nor Data_in when "1110"=> Result_out <= accumulator_in xnor Data_in; --result=accumulator_in xnor Data_in when "1111"=> Result_out <= " "; --result=accumulator_in+1 when others => Result_out <="XXXXXXXX"; end case; end process Main; end ALU_arc Edward Gatt VHDL 68

69 Test Bench for ALU library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity alu_tb is port ( Accumulator_out: out std_logic_vector (8 downto 1); Data_out : out std_logic_vector (8 downto 1); Opcode_out : out std_logic_vector (4 downto 1) ); end alu_tb; architecture alu_tb_arch of alu_tb is begin operation_1: PROCESS begin wait for 0ns; Opcode_out <= "0000"; wait for 10 ns; Opcode_out <= "0001"; wait for 10 ns; Opcode_out <= "0010"; wait for 10 ns; Opcode_out <= "0011"; wait for 10 ns; Opcode_out <= "0100"; Edward Gatt VHDL 69

70 Test Bench for ALU (cont/d) wait for 10 ns; Opcode_out <= "0101"; wait for 10 ns; Opcode_out <= "0110"; wait for 10 ns; Opcode_out <= "0111"; wait for 10 ns; Opcode_out <= "1000"; wait for 10 ns; Opcode_out <= "1001"; wait for 10 ns; Opcode_out <= "1010"; wait for 10 ns; Opcode_out <= "1011"; wait for 10 ns; Opcode_out <= "1100"; wait for 10 ns; Opcode_out <= "1101"; wait for 10 ns; Opcode_out <= "1110"; wait for 10 ns; Opcode_out <= "1111"; wait; end PROCESS operation_1; operation_2: PROCESS begin wait for 0ns; Data_out <= " "; wait; end PROCESS operation_2; operation_3: PROCESS begin wait for 0ns; Accumulator_out <= " "; wait; end PROCESS operation_3; end alu_tb_arch; Edward Gatt VHDL 70

71 Top Level for ALU library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_misc.all; use IEEE.std_logic_unsigned.all; entity alu_tl is port ( Result : out std_logic_vector (8 downto 1) ); end alu_tl; architecture alu_tl_arch of alu_tl is component alu port ( Accumulator_in: in std_logic_vector (8 downto 1); Data_in: in std_logic_vector (8 downto 1); Opcode_in: in std_logic_vector (4 downto 1); Result_out: out std_logic_vector (8 downto 1) ); end component ; component alu_tb is port ( Accumulator_out: out std_logic_vector (8 downto 1); Data_out: out std_logic_vector (8 downto 1); Opcode_out: out std_logic_vector (4 downto 1) ); end component; Edward Gatt VHDL 71

72 Top Level for ALU (cont/d) signal Accumulator : std_logic_vector(8 downto 1); signal Data : std_logic_vector(8 downto 1); signal Opcode : std_logic_vector(4 downto 1); begin alu_1 : alu port map ( Accumulator_in => Accumulator, Data_in => Data, Opcode_in => Opcode, Result_out => Result ); tb_1 : alu_tb port map ( Accumulator_out => Accumulator, Data_out => Data, Opcode_out => Opcode ); end alu_tl_arch; Edward Gatt VHDL 72

73 Field Programmable Gate Arrays FPGAs are ICs that contain an array of identical blocks with programmable interconnections User can program the functions realised by each logic block and the connections between the blocks FPGAs offer easier design iterations Easier to correct mistakes that creep into the design Prototyping cost is reduced Edward Gatt VHDL 73

74 Disadvantages: FPGAs FPGAs are less dense than traditional gate arrays A lot of resources is spent to achieve programmability Programmable points have resistances and capacitances FPGAs are slower than traditional gate arrays Edward Gatt VHDL 74

75 Organisation of FPGAs The interior of FPGAs typically contain three elements that are programmable: Programmable logic blocks Programmable input/output blocks Programmable routing resources Edward Gatt VHDL 75

76 Organisation of FPGAs Edward Gatt VHDL 76

77 Organisation of FPGAs Arrays of programmable logic blocks are distributed within the FPGA Logic blocks are surrounded by (I/O) interface blocks I/O blocks are on the periphery on the chip They connect the logic signals to the FPGA pins Space between logic blocks are used to route connections between the logic blocks Edward Gatt VHDL 77

78 Programmable Logic Blocks Programmable Logic Blocks are created by using multiplexers, look-up tables, AND-OR or NAND-NAND arrays Programming means changing the input or control signals to the multiplexers, changing look-up table contents or selecting/not selecting particular gates in AND-OR gate blocks For a programmable interconnect, programming means making or breaking specific connections This is required to interconnect various blocks in the chip and to connect specific I/O pins to specific logic blocks Edward Gatt VHDL 78

79 Programmable I/O blocks Programmable I/O blocks denote blocks which can be programmed to be input, output or bidirectional lines They can also be programmed to adjust the properties of their buffers such as inverting/noninverting, tristate, passive pull-ups or even adjust the slew rate Edward Gatt VHDL 79

80 FPGA Programming Technologies Several techniques have been used to achieve the programmable interconnections between FPGAs Static RAM programming technology EPROM/EEPROM/flash programming technology Antifuse programming technology Edward Gatt VHDL 80

81 SDRAM Programming Technology The SDRAM programming technology involves creating reconfigurability by bits stored in SRAM cells The logic blocks, I/O blocks and interconnect can be programmed by using configuration bits stored in SRAM Reconfigurable logic blocks can be easily implemented as look-up tables Problem is that system is volatile Edward Gatt VHDL 81

82 SRAM Programming Technology 16 SRAM cells can implement any 4 variable function Programmable interconnect can also be achieved by SRAM The key idea is to use pass transistors to create switches and then control them using SRAM content SDRAM requires 6 transistors therefore number of transistors to provide a connection is high Write Controlled by Data Pass Transistor Edward Gatt VHDL 82

83 EPROM/EEPROM Programming Technology EPROM cells used to control programmable connections A transistor with 2 gates is used floating gate and control gate Transistor turned off by injecting charge on the floating gate using a high voltage between the control gate and drain of the transistor Charge increases the threshold voltage of the transistor and it switches off Charge can be removed by exposing the floating gate to ultraviolet light Edward Gatt VHDL 83

84 EPROM EPROM technology slower than SRAM EPROM switches have high ON resistance and high static power consumption EEPROM technology is similar to EPROM but removal of gate charge can be done electrically Edward Gatt VHDL 84

85 Antifuse Programming Technology Antifuse programming element changes from open to closed when a high voltage is applied They are often built using dielectric layers between N+ diffusion and polysilicon layers or by amorphous silicon between metal layers Antifuses are normally OFF and put ON when programmed Process is irreversible and not reprogrammable but consumes little area Edward Gatt VHDL 85

86 Programmable Logic Block Arrays LUT-based FPGAs use four-variable look-up tables plus a flip-flop as the basic element and then connect several of them in various topologies Edward Gatt VHDL 86

87 Programmable Logic Block Arrays Some FPGAs use multiplexers as the basic block Any combinational logic can be implemented using multiplexers alone e.g. a 4-to-1 multiplexer can generate any twoinput function If inverted inputs can be provided, the same multiplexer can generate any three-input function Edward Gatt VHDL 87

88 Programmable Interconnects Interconnects in Symmetric Arrray FPGAs General Purpose Interconnect: Switch Matrices provide interconnections between routing wires connected to the switch matrix Edward Gatt VHDL 88

89 Programmable Interconnects Interconnects in Symmetric Arrray FPGAs Direct Interconnects: Many FPGAs provide special connections between adjacent logic blocks. These interconnects are fast as they do not go through the routing matrix Edward Gatt VHDL 89

90 Programmable Interconnects Interconnects in Symmetric Arrray FPGAs Global Lines: For purposes like high fan-out and low-skew clock distribution, most FPGAs provide routing lines that span the entire width of the device/height of the device Interconnects in Row-Based FPGAs: In devices that are row based, there are rows of logic blocks and there are channels of switches to enable connections between logic blocks Edward Gatt VHDL 90

91 Programmable I/O Blocks The I/O pads are connected to programmable input/output blocks, which facilitate connecting the signals from FPGA logic blocks to the external world in desired forms and formats I/O blocks on modern FPGAs allow use of the pin as input and/or output, in direct (combinational) or latched forms, in tristate true or inverted forms and with a variety of I/O standards Edward Gatt VHDL 91

Guidelines for Laboratory Sessions:

Guidelines for Laboratory Sessions: University of Malta Faculty of Engineering Department of Electronic Systems Engineering Hardware Description Languages ELE 3103 Lecturer: Dr. Ivan Grech igrech@eng.um.edu.mt Laboratory Tutors: Dr. Edward

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

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

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

Lecture 3 Introduction to VHDL

Lecture 3 Introduction to VHDL CPE 487: Digital System Design Spring 2018 Lecture 3 Introduction to VHDL Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 Managing Design

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

Review of Digital Design with VHDL

Review of Digital Design with VHDL Review of Digital Design with VHDL Digital World Digital world is a world of 0 and 1 Each binary digit is called a bit Eight consecutive bits are called a byte Hexadecimal (base 16) representation for

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

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

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

ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory

ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory ECE4401 / CSE3350 ECE280 / CSE280 Digital Design Laboratory Instructor John Chandy Office: ITEB 437 Office Hours: W10-12 Tel: (860) 486-5047 Email: john.chandy@uconn chandy@uconn.edu Class home page: HuskyCT

More information

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES

PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES PROGRAMMABLE MODULES SPECIFICATION OF PROGRAMMABLE COMBINATIONAL AND SEQUENTIAL MODULES. psa. rom. fpga THE WAY THE MODULES ARE PROGRAMMED NETWORKS OF PROGRAMMABLE MODULES EXAMPLES OF USES Programmable

More information

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function.

FPGA. Logic Block. Plessey FPGA: basic building block here is 2-input NAND gate which is connected to each other to implement desired function. FPGA Logic block of an FPGA can be configured in such a way that it can provide functionality as simple as that of transistor or as complex as that of a microprocessor. It can used to implement different

More information

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

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

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

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

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

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

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

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

!"#$%&&"'(')"*+"%,%-".#"'/"'.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

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

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

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

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993) What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993) Only possible to synthesize logic from a subset of VHDL Subset varies according to

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

ECE 459/559 Secure & Trustworthy Computer Hardware Design

ECE 459/559 Secure & Trustworthy Computer Hardware Design ECE 459/559 Secure & Trustworthy Computer Hardware Design VLSI Design Basics Garrett S. Rose Spring 2016 Recap Brief overview of VHDL Behavioral VHDL Structural VHDL Simple examples with VHDL Some VHDL

More information

CMSC 611: Advanced Computer Architecture

CMSC 611: Advanced Computer Architecture CMSC 611: Advanced Computer Architecture Design Languages Practically everything adapted from slides by Peter J. Ashenden, VHDL Quick Start Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr

More information

ENGIN 241 Digital Systems with Lab

ENGIN 241 Digital Systems with Lab ENGIN 241 Digital Systems with Lab (4) Dr. Honggang Zhang Engineering Department University of Massachusetts Boston 1 Introduction Hardware description language (HDL): Specifies logic function only Computer-aided

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

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

FPGA Programming Technology

FPGA Programming Technology FPGA Programming Technology Static RAM: This Xilinx SRAM configuration cell is constructed from two cross-coupled inverters and uses a standard CMOS process. The configuration cell drives the gates of

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

Design Progression With VHDL Helps Accelerate The Digital System Designs

Design Progression With VHDL Helps Accelerate The Digital System Designs Fourth LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCET 2006) Breaking Frontiers and Barriers in Engineering: Education, Research and Practice 21-23 June

More information

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic

Evolution of Implementation Technologies. ECE 4211/5211 Rapid Prototyping with FPGAs. Gate Array Technology (IBM s) Programmable Logic ECE 42/52 Rapid Prototyping with FPGAs Dr. Charlie Wang Department of Electrical and Computer Engineering University of Colorado at Colorado Springs Evolution of Implementation Technologies Discrete devices:

More information

Q.1. Attempt any TEN of the following: (a) Define the term Noise Margins. Ans: [Define: 2 M]

Q.1. Attempt any TEN of the following: (a) Define the term Noise Margins. Ans: [Define: 2 M] Subject Code: 17659 Model Answer Page 1 of 24 Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model

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

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

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

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

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1) September 3, 2018 GETTING STARTED WITH VHDL 2 Top-down design VHDL history Main elements of VHDL Entities and architectures Signals and processes Data types Configurations Simulator basics The testbench

More information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture) Last Lecture The basic component of a digital circuit is the MOS transistor Transistor have instrinsic resistance and capacitance, so voltage values in the circuit take some time to change ( delay ) There

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

Hardware Synthesis. References

Hardware Synthesis. References Hardware Synthesis MidiaReshadi CE Department Science and research branch of Islamic Azad University Email: ce.srbiau@gmail.com 1 References 2 1 Chapter 1 Digital Design Using VHDL and PLDs 3 Some Definitions

More information

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011 FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level

More information

Reference Sheet for C112 Hardware

Reference Sheet for C112 Hardware Reference Sheet for C112 Hardware 1 Boolean Algebra, Gates and Circuits Autumn 2016 Basic Operators Precedence : (strongest),, + (weakest). AND A B R 0 0 0 0 1 0 1 0 0 1 1 1 OR + A B R 0 0 0 0 1 1 1 0

More information

Very Large Scale Integration (VLSI)

Very Large Scale Integration (VLSI) Very Large Scale Integration (VLSI) Lecture 6 Dr. Ahmed H. Madian Ah_madian@hotmail.com Dr. Ahmed H. Madian-VLSI 1 Contents FPGA Technology Programmable logic Cell (PLC) Mux-based cells Look up table PLA

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

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits

Part 4: VHDL for sequential circuits. Introduction to Modeling and Verification of Digital Systems. Memory elements. Sequential circuits M1 Informatique / MOSIG Introduction to Modeling and erification of Digital Systems Part 4: HDL for sequential circuits Laurence PIERRE http://users-tima.imag.fr/amfors/lpierre/m1arc 2017/2018 81 Sequential

More information

Digital Design Methodology (Revisited) Design Methodology: Big Picture

Digital Design Methodology (Revisited) Design Methodology: Big Picture Digital Design Methodology (Revisited) Design Methodology Design Specification Verification Synthesis Technology Options Full Custom VLSI Standard Cell ASIC FPGA CS 150 Fall 2005 - Lec #25 Design Methodology

More information

Digital Design Methodology

Digital Design Methodology Digital Design Methodology Prof. Soo-Ik Chae Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008, John Wiley 1-1 Digital Design Methodology (Added) Design Methodology Design Specification

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 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

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

Tutorial on VHDL and Verilog Applications

Tutorial on VHDL and Verilog Applications Second LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI 2004) Challenges and Opportunities for Engineering Education, Research and Development 2-4 June

More information

Contents. Appendix D VHDL Summary Page 1 of 23

Contents. Appendix D VHDL Summary Page 1 of 23 Appendix D VHDL Summary Page 1 of 23 Contents Appendix D VHDL Summary...2 D.1 Basic Language Elements...2 D.1.1 Comments...2 D.1.2 Identifiers...2 D.1.3 Data Objects...2 D.1.4 Data Types...2 D.1.5 Data

More information

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL EE 459/500 HDL Based Digital Design with Programmable Logic Lecture 4 Introduction to VHDL Read before class: Chapter 2 from textbook (first part) Outline VHDL Overview VHDL Characteristics and Concepts

More information

Memory and Programmable Logic

Memory and Programmable Logic Memory and Programmable Logic Memory units allow us to store and/or retrieve information Essentially look-up tables Good for storing data, not for function implementation Programmable logic device (PLD),

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

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

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements

What is Verilog HDL? Lecture 1: Verilog HDL Introduction. Basic Design Methodology. What is VHDL? Requirements What is Verilog HDL? Lecture 1: Verilog HDL Introduction Verilog Hardware Description Language(HDL)? A high-level computer language can model, represent and simulate digital design Hardware concurrency

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

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

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

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) Winter 15 EXAMINATIONS

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified) Winter 15 EXAMINATIONS Winter 15 EXAMINATIONS Subject Code: 17659 Important Instructions to examiners: Model Answer 1) The answers should be examined by key words and not as word-to-word as given in the answer scheme. 2) The

More information

Design Methodologies and Tools. Full-Custom Design

Design Methodologies and Tools. Full-Custom Design Design Methodologies and Tools Design styles Full-custom design Standard-cell design Programmable logic Gate arrays and field-programmable gate arrays (FPGAs) Sea of gates System-on-a-chip (embedded cores)

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

Embedded Systems CS - ES

Embedded Systems CS - ES Embedded Systems - 1 - REVIEW Hardware/System description languages VDHL VHDL-AMS SystemC TLM - 2 - VHDL REVIEW Main goal was modeling of digital circuits Modelling at various levels of abstraction Technology-independent

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

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

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

structure syntax different levels of abstraction

structure syntax different levels of abstraction This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this This and the next lectures are about Verilog HDL, which, together with another language VHDL, are the most popular hardware languages used in industry. Verilog is only a tool; this course is about digital

More information

Sequential VHDL. Katarzyna Radecka. DSD COEN 313

Sequential VHDL. Katarzyna Radecka. DSD COEN 313 Sequential VHDL Katarzyna Radecka DSD COEN 313 kasiar@ece.concordia.ca Overview Process Sensitivity List Wait Statements If Statements Case Statements Loop Statements Three Styles of VHDL Behavioral Structural

More information

Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING. Fifth Semester. Subject: VHDL Programming

Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING. Fifth Semester. Subject: VHDL Programming Department of Technical Education DIPLOMA COURSE IN ELECTRONICS AND COMMUNICATION ENGINEERING Fifth Semester Subject: VHDL Programming Contact Hours/Week : 04 Contact Hours/Semester : 64 CONTENTS No. Of

More information

Spiral 2-8. Cell Layout

Spiral 2-8. Cell Layout 2-8.1 Spiral 2-8 Cell Layout 2-8.2 Learning Outcomes I understand how a digital circuit is composed of layers of materials forming transistors and wires I understand how each layer is expressed as geometric

More information

Getting Started with VHDL

Getting Started with VHDL Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated

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

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN Lecture 9 VHDL, part IV Hierarchical and parameterized design Section 1 HIERARCHICAL DESIGN 2 1 Dealing with Large Digital System Design 1. Apply hierarchy to the design At the highest level use larger

More information

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices 3 Digital Systems Implementation Programmable Logic Devices Basic FPGA Architectures Why Programmable Logic Devices (PLDs)? Low cost, low risk way of implementing digital circuits as application specific

More information

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL VHDL Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit VHDL Alternative (Student Generated) Definition Very Hard Digital Logic language VHDL Design

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

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

Combinational Logic COMB. LOGIC BLOCK. A Combinational Logic Block is one where the outputs depend only on the current inputs

Combinational Logic COMB. LOGIC BLOCK. A Combinational Logic Block is one where the outputs depend only on the current inputs Combinational Logic A Combinational Logic Block is one where the outputs depend only on the current inputs COMB. LOGIC BLOCK A combinational logic block can be implemented using simple gates or lookup

More information

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad-500 014 Subject: Digital Design Using Verilog Hdl Class : ECE-II Group A (Short Answer Questions) UNIT-I 1 Define verilog HDL? 2 List levels of

More information

VHDL Part 2. What is on the agenda? Basic VHDL Constructs. Examples. Data types Objects Packages and libraries Attributes Predefined operators

VHDL Part 2. What is on the agenda? Basic VHDL Constructs. Examples. Data types Objects Packages and libraries Attributes Predefined operators VHDL Part 2 Some of the slides are taken from http://www.ece.uah.edu/~milenka/cpe428-02s/ What is on the agenda? Basic VHDL Constructs Data types Objects Packages and libraries Attributes Predefined operators

More information

Review. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;

Review. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type; LIBRARY list of library names; USE library.package.object; Review ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type; signal_name(s) : mode signal_type); END ENTITY entity_name;

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

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

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

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

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

Contents. Appendix D Verilog Summary Page 1 of 16

Contents. Appendix D Verilog Summary Page 1 of 16 Appix D Verilog Summary Page 1 of 16 Contents Appix D Verilog Summary... 2 D.1 Basic Language Elements... 2 D.1.1 Keywords... 2 D.1.2 Comments... 2 D.1.3 Identifiers... 2 D.1.4 Numbers and Strings... 3

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

CS310 Embedded Computer Systems. Maeng

CS310 Embedded Computer Systems. Maeng 1 INTRODUCTION (PART II) Maeng Three key embedded system technologies 2 Technology A manner of accomplishing a task, especially using technical processes, methods, or knowledge Three key technologies for

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

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