EDA Lab. Dept. of Computer Engineering C. N. U. 1 SYNTHESIS Issues in synthesizable VHDL descriptions (from VHDL Answers to FAQ by Ben Cohen)

Slides:



Advertisements
Similar presentations
UNIT 8: Synthesis Basics
Advertisements

VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
VHDL Lecture 1 Megan Peck EECS 443 Spring 08.
©2004 Brooks/Cole FIGURES FOR CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC Click the mouse to move to the next page. Use the ESC key to exit this chapter. This.
COE 405 VHDL Basics Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Aiman H. El-Maleh Computer Engineering.
Combinational Logic.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Logic Synthesis – 3 Optimization Ahmed Hemani Sources: Synopsys Documentation.
ECE 353 Computer Systems Lab II VHDL AND LABORATORY TOOLS TUTORIAL Professors Maciej Ciesielski & T. Baird Soules.
ELEN 468 Lecture 151 ELEN 468 Advanced Logic Design Lecture 15 Synthesis of Language Construct I.
Digital System Design by Verilog University of Maryland ENEE408C.
Signals vs. Variables Workshop Fri/Sat Test bench creation Misc IP Cores Chipscope Pro When Demos due.
ECE C03 Lecture 18ECE C03 Lecture 61 Lecture 18 VHDL Modeling of Sequential Machines Prith Banerjee ECE C03 Advanced Digital Design Spring 1998.
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 3 Microcomputer Systems Design (Embedded Systems)
VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.
ECE C03 Lecture 141 Lecture 14 VHDL Modeling of Sequential Machines Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
1 Lecture 11 Chap 13: Test Benches Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Overview Logistics Last lecture Today HW5 due today
Introduction to VHDL (part 2)
ENG3050 Embedded Reconfigurable Computing Systems
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
Synthesis Presented by: Ms. Sangeeta L. Mahaddalkar ME(Microelectronics) Sem II Subject: Subject:ASIC Design and FPGA.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
ELEC / Computer Architecture and Design Fall 2009 ELEC / Computer Architecture and Design Fall 2009 Modeling for Synthesis.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Design Methodology Based on VHDL Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
VHDL – Behavioral Modeling and Registered Elements ENGIN 341 – Advanced Digital Design University of Massachusetts Boston Department of Engineering Dr.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
1 Part III: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
5-1 Logic System Design I VHDL Design Principles ECGR2181 Reading: Chapter 5.0, 5.1, 5.3 port ( I: in STD_LOGIC_VECTOR (1 to 9); EVEN, ODD: out STD_LOGIC.
EE121 John Wakerly Lecture #17
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Digital System Design using VHDL
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VHDL Coding for Synthesis ECE 448 Lecture 12.
IAY 0600 Digital Systems Design Register Transfer Level Design (GCD example) Lab. 7 Alexander Sudnitson Tallinn University of Technology.
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
Case Study: Xilinx Synthesis Tool (XST). Arrays & Records 2.
ECE-C662 [Knapp, “Behavioral Synthesis” Prentice-Hall 1996] HDL Descriptions –Behavioral Processes Behavioral Compiler (BC) schedules processes but not.
1 Introduction to Engineering Spring 2007 Lecture 19: Digital Tools 3.
Overview Logistics Last lecture Today HW5 due today
ELEN 468 Advanced Logic Design
EMT 351/4 DIGITAL IC DESIGN Week # Synthesis of Sequential Logic 10.
Part II A workshop by Dr. Junaid Ahmed Zubairi
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
  State Encoding مرتضي صاحب الزماني.
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
IAS 0600 Digital Systems Design
SYNTHESIS OF SEQUENTIAL LOGIC
Non-synthesizable VHDL Poor Design Practices
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
VHDL Discussion Subprograms
Sequntial-Circuit Building Blocks
VHDL Discussion Subprograms
Data Flow Description of Combinational-Circuit Building Blocks
IAS 0600 Digital Systems Design
The Verilog Hardware Description Language
Sequntial-Circuit Building Blocks
Presentation transcript:

EDA Lab. Dept. of Computer Engineering C. N. U. 1 SYNTHESIS Issues in synthesizable VHDL descriptions (from VHDL Answers to FAQ by Ben Cohen)

EDA Lab. Dept. of Computer Engineering C. N. U. 2 Supported/Unsupported Constructs

EDA Lab. Dept. of Computer Engineering C. N. U. 3 Supported/Unsupported Constructs

EDA Lab. Dept. of Computer Engineering C. N. U. 4

5

6 Synthesis Sensitivity Rules for Processes If the synthesized process has a static sensitivity list, then every read signal must be a member of this list. –Otherwise the synthesis tool will create a hardware configuration that concurs with this requirement

EDA Lab. Dept. of Computer Engineering C. N. U. 7 Synthesized Hardware for Arrays, Signals and Variables Arrays : defines vectors –Represent either the output of CL, or a register or a latch. Rules for Signals and Variables in clocked processes or equivalent clocked process ( wait unitil Clk=1; or if(Clkevent and Clk=1 then …, or Sig <= not In1 When Clkevent and Clk=1) 1.Signals represent registers 2.Reading a variable before assigning a value to that variable implies reading old values of that variable, or a register implementation for that variable.

EDA Lab. Dept. of Computer Engineering C. N. U. 8 Signals and Variables Rules in non-clocked processes : –A latch is inferred for signals or variables when one of the following conditions occurs (otherwise, the objects represents a bus output of combinational logic) 1.The signal or variable is in an equivalent process where not all the alternatives of a conditional expression are considered 2.The VHDL attribute event is not present in the conditional expression. 3.The variable is read in any path prior to being assigned a value.

EDA Lab. Dept. of Computer Engineering C. N. U. 9 Signals and Variables One dimensional array declarations and Synthesis implications

EDA Lab. Dept. of Computer Engineering C. N. U. 10

EDA Lab. Dept. of Computer Engineering C. N. U. 11 Signals and Variables One-dimensional array declarations with variables

EDA Lab. Dept. of Computer Engineering C. N. U. 12

EDA Lab. Dept. of Computer Engineering C. N. U. 13 Synchronous reset and Asynchronous reset Synchronous Reset

EDA Lab. Dept. of Computer Engineering C. N. U. 14 Synchronous reset and Asynchronous reset Asynchronous Reset

EDA Lab. Dept. of Computer Engineering C. N. U. 15 Avoid the partial asynchronous reset! Avoid the partial asynchronous reset of implied registers in a clocked process –If asynchronous reset is required, either reset ALL the implied registers, or use multiple clocked processes.

EDA Lab. Dept. of Computer Engineering C. N. U. 16

EDA Lab. Dept. of Computer Engineering C. N. U. 17 Avoid the partial asynchronous reset!

EDA Lab. Dept. of Computer Engineering C. N. U. 18 Latch inference in functions? Since variables declared in a function do not retain their values between calls to this function, latches will not be inferred by synthesis. –Even if the latching criteria are satisfied. To avoid any confusion, the function should be writeen in a non-latching coding style. To agreewith the basic VHDL synthesis coding style.

EDA Lab. Dept. of Computer Engineering C. N. U. 19 Variable initialization and Lifetime Variables are initialized when, and only when, its declaration is elaborated. Concurrent procedure is equivalent to a process. Its sensitivity list is extracted from all the actual signals whose mode is in or inout. In synthesis, DO NOT initialize variables in the declaration statements of the variables. –Instead, declare the variable UNINITIALIZED, and in the body of the process or subprogram, write an initialization statement(e.g. My_variable := 0; ) In synthesis, DO NOT declare constants that are initialized to values of formal parameters or ports.

EDA Lab. Dept. of Computer Engineering C. N. U. 20 Variable initialization – not synthesizable Non-synthesizable VHDL code

EDA Lab. Dept. of Computer Engineering C. N. U. 21 Variable initialization – not synthesizable Synthesizable VHDL code

EDA Lab. Dept. of Computer Engineering C. N. U. 22 Wait statement A process with a sensitivity list cannot contain any explit wait statement, any called procedure from such a process cannot contain a wait statement. wait statement can be used anywhere in a process except in a for … loop statement or in a subprogram. –In most synthesizers, there can only be a sinlge wait statement in a process. Allowing a wait statement in a subprogram would imply multiple wait statements, if that subprogram is called multiple times from within a process. If a subprogram is called as a concurrent procedure, then there is an implied wait statement at the end of that procedure. Adding a wait would then include two wait statements. Multiple wait statements are allowed in behavioral synthesis.

EDA Lab. Dept. of Computer Engineering C. N. U. 23 Defining Shift Registers in Synthesis Given the following code, synopsys tool yields an elaborate Error Tried to use a synchronized value. Where is the error ?

EDA Lab. Dept. of Computer Engineering C. N. U. 24

EDA Lab. Dept. of Computer Engineering C. N. U. 25 Defining Shift Registers in Synthesis Several Code Errors of the Code –Data should NOT be in the sensitivity list. –Variable Reg implies a register (the variable reads on old value) –Temp is out of (clkevent …) and cannot be assigned with synchronized variables.

EDA Lab. Dept. of Computer Engineering C. N. U. 26

EDA Lab. Dept. of Computer Engineering C. N. U. 27 Defining Shift Registers in Synthesis Corrected Shift Register Model 1 (Reg – becomes a signal)

EDA Lab. Dept. of Computer Engineering C. N. U. 28

EDA Lab. Dept. of Computer Engineering C. N. U. 29 Defining Shift Registers in Synthesis Improved Shift Register Model (concatenation operator is used)

EDA Lab. Dept. of Computer Engineering C. N. U. 30

EDA Lab. Dept. of Computer Engineering C. N. U. 31 Register File n words deep by m bit wide register file –Multi-dim arrays: not allowed in synthesis for signals or variable objects allowed as constants or table lookups. –User-defined Register File Use two one-dim. Array types Figure 7.8 –Use high-level parameterized components like RAM, Counters, adders, multipliers, FIFOs, LESRs, pipeline registers multipliers, if they are available

EDA Lab. Dept. of Computer Engineering C. N. U. 32

EDA Lab. Dept. of Computer Engineering C. N. U. 33

EDA Lab. Dept. of Computer Engineering C. N. U. 34 MUX Using concurrent signal assignment

EDA Lab. Dept. of Computer Engineering C. N. U. 35 MUX

EDA Lab. Dept. of Computer Engineering C. N. U. 36 DeMUX Using concurrent signal assignment

EDA Lab. Dept. of Computer Engineering C. N. U. 37 DeMUX

EDA Lab. Dept. of Computer Engineering C. N. U. 38 DeMUX Using a process

EDA Lab. Dept. of Computer Engineering C. N. U. 39 DeMUX Using a process, no loop

EDA Lab. Dept. of Computer Engineering C. N. U. 40 Barrel Shifter

EDA Lab. Dept. of Computer Engineering C. N. U. 41 Barrel Shifter Non-Synthesizable Barrel Shifter

EDA Lab. Dept. of Computer Engineering C. N. U. 42 Barrel Shifter Synthesis problems 1.The Slice D_in((D_inleft – Amount) downto 0) & … is non- compatable (Amount is a dynamic value) 2.The vector D_in(D_inleft downto (D_inleft – Amount + 1)) is a null array when amount is zero.

EDA Lab. Dept. of Computer Engineering C. N. U. 43 Barrel Shifter Synthesizable model: the loop counter is compared against the input Amount.

EDA Lab. Dept. of Computer Engineering C. N. U. 44 Barrel Shifter Synthesizable model: case statement & process

EDA Lab. Dept. of Computer Engineering C. N. U. 45 Use of dont care in case statement In VHDL, dont care means a - state, not u or 1 or anything else –Maybe useful during simulation to ensure that a signal is not resolved with any other signal.

EDA Lab. Dept. of Computer Engineering C. N. U. 46 Use of dont care in case statement std_logic 9 values In synthesis, the dont care – should be used in assignments only, not in expressions to be used for comparisons.

EDA Lab. Dept. of Computer Engineering C. N. U. 47 Use of dont care in case statement Case statement with No Dont Care – covers all conditions

EDA Lab. Dept. of Computer Engineering C. N. U. 48 Use of dont care in case statement Nested case statement

EDA Lab. Dept. of Computer Engineering C. N. U. 49 Use of dont care in case statement Using Type unsigned and To_Integer( )

EDA Lab. Dept. of Computer Engineering C. N. U. 50 IF statement IF statement(instead of Dont care) –Shorter code, Higher priority signal – near the top of the if construct. Synopsys will place those signals closer to the output than signals used in the expression occurring later on.

EDA Lab. Dept. of Computer Engineering C. N. U. 51 Loop statement Loop statement(to check leading one position) –Function Leading_one: purely combinational logic if Srange is static.

EDA Lab. Dept. of Computer Engineering C. N. U. 52 Loop statement –General approach(loop works with any range, and is not limited to a fixed range.)

EDA Lab. Dept. of Computer Engineering C. N. U. 53 Loop statement –Using for … loop in a process

EDA Lab. Dept. of Computer Engineering C. N. U. 54 IEEE Std_Match( ) (to use Dont Care) Overloaded function STD_MATCH( ) in Numeric_Std package –Interprets the - into a true dont care. –An application of this function. –Figure (55 ) –Problem Not many vendors have yet adopted this template.

EDA Lab. Dept. of Computer Engineering C. N. U. 55 IEEE Std_Match( ) (to use Dont Care)

EDA Lab. Dept. of Computer Engineering C. N. U. 56 Common Logic Design Techniques to speed up a design 1. Pipeline –use register P: pipeline register to reduce the propagation delays between register stages.

EDA Lab. Dept. of Computer Engineering C. N. U. 57 Common Logic Design Techniques to speed up a design 2.Shadow Register –The output of a register: subjected to a heavy load Can cause excessive delays. To alleviate this problem, a shadow register(register B) can be used to hold a copy of the original register, and to split the original driving load.

EDA Lab. Dept. of Computer Engineering C. N. U. 58 Common Logic Design Techniques to speed up a design 3.Use of Buffers –To enhance the drive to the selected logic clouds.

EDA Lab. Dept. of Computer Engineering C. N. U. 59 Common Logic Design Techniques to speed up a design 4.Register Outputs –To guarantee minimum output delays(check to the output), the outputs are often registered prior to being transferred to the I/O output buffers.

EDA Lab. Dept. of Computer Engineering C. N. U. 60 Synthesis Tools & Component Libraries If the synthesizer fails to achieve the time requirements, then the code and/or the architecture must be modified appropriately. Libraries: significantly impact the performance and the design time. –If tailored library components are available(ALU, FIFO, Register file, etc), the VHDL code takes a more structural approach with component instantiations.

EDA Lab. Dept. of Computer Engineering C. N. U. 61 Synthesizing Tri-states Incorrect Implementation of Tri-states *. Only the last signal assignments in a process are effective.

EDA Lab. Dept. of Computer Engineering C. N. U. 62 Synthesizing Tri-states Corrected Model(with if)

EDA Lab. Dept. of Computer Engineering C. N. U. 63 Synthesizing Tri-states Corrected Model(with case)

EDA Lab. Dept. of Computer Engineering C. N. U. 64 Latches in Tri-State controls Only one tri-state driver is synthesized per signal per process. In synopsys, when a signal(or variable) is registered(or latched) in the same process. Where it is tri-stated, then the enable signal of the tri-state is also registered(latched).

EDA Lab. Dept. of Computer Engineering C. N. U. 65 Latches in Tri-State controls

EDA Lab. Dept. of Computer Engineering C. N. U. 66 Latches in Tri-State controls

EDA Lab. Dept. of Computer Engineering C. N. U. 67 Latches in Tri-State controls To avoid the registering of tri-state enable, define the tri-state output as a separate concurrent statement.

EDA Lab. Dept. of Computer Engineering C. N. U. 68 Latches in Tri-State controls

EDA Lab. Dept. of Computer Engineering C. N. U. 69 Subelement Association How can the concatenation of two or more signals of an architecture be passed to a parameter of a subprogram? Example code with problems –Figure (70 ) –The result of & operator is an expression(value), and not a signal. –Subelement association: non-portable.

EDA Lab. Dept. of Computer Engineering C. N. U. 70 Subelement Association

EDA Lab. Dept. of Computer Engineering C. N. U. 71 Subelement Association In-whole Subelement Association(using a temporary signal that computes &)

EDA Lab. Dept. of Computer Engineering C. N. U. 72 Subelement Association Subelement Association: agree with VHDL93, but some synthesizers do not handle

EDA Lab. Dept. of Computer Engineering C. N. U. 73 Subelement Association for Ports The rules for port associations are the same as the ones described above. The port association In-whole is the most portable and synthesizable.

EDA Lab. Dept. of Computer Engineering C. N. U. 74 Subelement Association for Ports InvertRol entity with unconstrained ports –Not synthesizable, instantiated component is synthesizable.

EDA Lab. Dept. of Computer Engineering C. N. U. 75 Finite State Machine Moore Machine, Mealy Machine Coding styles –One process only handles both state transitions and outputs. –Two processes include a synchronous process for updating the state register, and a combinational process for conditionally deriving the next machine state and updating the outputs. –Three (or more) processes (and concurrent signal assignments) encompass a synchronous process for updating the state register, a combinational for conditionally deriving the next state machine, and a combinational process (or concurrent signal assignments) for conditionally deriving the outputs.

EDA Lab. Dept. of Computer Engineering C. N. U. 76 One-Hot Encoding(state encoding) One-hot encoding: each bit represents a state. –Constant S0 : Std_Logic_Vector (3 downto 0) := 0001; Constant S1 : Std_Logic_Vector (3 downto 0) := 0010; Constant S2 : Std_Logic_Vector (3 downto 0) := 0100; Constant S3 : Std_Logic_Vector (3 downto 0) := 1000; A case is used for the state transitions. –The entire state vector is decoded (not one-hot encoding)

EDA Lab. Dept. of Computer Engineering C. N. U. 77 One-Hot Encoding(state encoding) Manual Emulation of one-hot encoding

EDA Lab. Dept. of Computer Engineering C. N. U. 78 Instantiating Synopsys Designware Components Synopsys DesignWare –A library of components that are optimized for area and/or speed. An Instantiation of a RAM

EDA Lab. Dept. of Computer Engineering C. N. U. 79 Resource Sharing The design approach to share expensive hardware resources among several uses of the resource. Three Methods to achieve resource sharing 1.Automatic: compile optimizes the design to meet the constraints. 2.Automatic with manual controls: manual control statement – used to assign operations to resources explicitly. 3.Manual

EDA Lab. Dept. of Computer Engineering C. N. U. 80 Resource Sharing Some synopsys guidelines 1.Operations can be shared only if they are in the same process. 2.All if statements are independent. –Result in the two adders

EDA Lab. Dept. of Computer Engineering C. N. U. 81 Resource Sharing –Automatic Resource Sharing

EDA Lab. Dept. of Computer Engineering C. N. U. 82 Resource Sharing –Manual Sharing

EDA Lab. Dept. of Computer Engineering C. N. U. 83 Applying Digital Design Experiences AreaOp1: 2 DeMUXes implied

EDA Lab. Dept. of Computer Engineering C. N. U. 84 Applying Digital Design Experiences AreaOp2: MUX(index), DeMUX(K, Q)

EDA Lab. Dept. of Computer Engineering C. N. U. 85 Applying Digital Design Experiences Comparative Area After Synthesis(Synopsys, Synplify) TOOLArea(relative)Critical Path(ns) Synopsys – AreaOp Synopsys – AreaOp Synplify – AreaOp16 out of 96 cells(6.2%)13.9 Synplify – AreaOp25 out of 96 cells(5.2%)21.2

EDA Lab. Dept. of Computer Engineering C. N. U. 86 Address Range Identification via Inferred Comparator Inequality operator will infer the comparators. –A search for address range pattern: more efficient Model of a Comparator

EDA Lab. Dept. of Computer Engineering C. N. U. 87 Address Range Identification via Inferred Comparator Address Range Identification without Inference of comparators

EDA Lab. Dept. of Computer Engineering C. N. U. 88 Port Mapping to Ground or VCC Incorrect GND / VCC Port Mapping –U1_XYZ: XYZ -- component instantiation port map(A => 0, -- input to ground B => 1 -- input to VCC C => C, -- input to C D => open -- output to open Q => Q); -- output to Q

EDA Lab. Dept. of Computer Engineering C. N. U. 89 Port Mapping to Ground or VCC Correct Element Association to Ground, VCC and Open.

EDA Lab. Dept. of Computer Engineering C. N. U. 90 Bit Reversal Generic bit reversal With process and for … loop

EDA Lab. Dept. of Computer Engineering C. N. U. 91 Bit Reversal

EDA Lab. Dept. of Computer Engineering C. N. U. 92 Bit Reversal With Function and for … loop

EDA Lab. Dept. of Computer Engineering C. N. U. 93 Synthesizable Timer in VHDL Four methods 1.Use of the if to test for the rollover condition. 2.Use of the case to test for the rollover condition. 3.Use of the mod operator. 4.Use of the overloaded + with type Unsigned and Integer. Integer Method –Figure 7.25 – 1(94 ) Unsigned Method –Figure 7.25 – 2(96 )

EDA Lab. Dept. of Computer Engineering C. N. U. 94 Integer Method

EDA Lab. Dept. of Computer Engineering C. N. U. 95 Integer Method

EDA Lab. Dept. of Computer Engineering C. N. U. 96 Unsigned Method

EDA Lab. Dept. of Computer Engineering C. N. U. 97 Unsigned Method

EDA Lab. Dept. of Computer Engineering C. N. U. 98 Specifying a Multiplier The most efficient multiplier –from a library(such as Design Ware) Use of the multiplier Operator

EDA Lab. Dept. of Computer Engineering C. N. U. 99 Behavioral Synthesis Behavioral compiler allows –VHDL after clause – delay time must be a multiple of the clock period. –Arrays of arrays may be mapped to a RAM. –Combinational operations may automatically be extended over multiple cycles. Resource sharing operations are performed automatically. –Finite State Machine may be automatically inferred. –Process with multiple wait statements.

EDA Lab. Dept. of Computer Engineering C. N. U. 100 Behavioral Synthesis Behavioral Compiler Sample code

EDA Lab. Dept. of Computer Engineering C. N. U. 101 Behavioral Synthesis BC automatically do architectural trade-offs. Methodolog 1.Designer specifies clock cycles(latency). 2.BC specifies resources, registers, MUXes, FSMs, data flow/control. 3.BC gets area and delays estimates for resources using DesignWare Library.