BR 1/991 Hints on Meeting Project Constraints Clock Cycle Constraint (12 clocks) – More resources (multipliers, adders), less clocks –Can be done with.

Slides:



Advertisements
Similar presentations
//HDL Example 8-2 // //RTL description of design example (Fig.8-9) module Example_RTL (S,CLK,Clr,E,F,A);
Advertisements

General Sequential Design
Registers and Counters
Counters. In class excercise How to implement a “counter”, which will count as 0,3,1,4,5,7,0,3,1,…… Q2Q1Q0D2D1D
Give qualifications of instructors: DAP
Verilog - 1 Writing Hardware Programs in Abstract Verilog  Abstract Verilog is a language with special semantics  Allows fine-grained parallelism to.
Specifies combinational logic (unclocked) always stmt. should use “=“ (called “blocking” assignment) in comb. logic always statements. RHS just takes output.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Useful Things to Know Norm. Administrative Midterm Grading Finished –Stats on course homepage –Pickup after this lab lec. –Regrade requests within 1wk.
FSMs 1 Sequential logic implementation  Sequential circuits  primitive sequential elements  combinational logic  Models for representing sequential.
1 COMP541 Sequencing and Control Montek Singh Mar 29, 2007.
Pipelining and Retiming 1 Pipelining  Adding registers along a path  split combinational logic into multiple cycles  increase clock rate  increase.
Dr. Turki F. Al-Somani VHDL synthesis and simulation – Part 3 Microcomputer Systems Design (Embedded Systems)
Digital Design – Optimizations and Tradeoffs
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
1 EECS Components and Design Techniques for Digital Systems Lec 21 – RTL Design Optimization 11/16/2004 David Culler Electrical Engineering and Computer.
VHDL Coding Exercise 4: FIR Filter. Where to start? AlgorithmArchitecture RTL- Block diagram VHDL-Code Designspace Exploration Feedback Optimization.
4/10/20081 Lab 9 RT methodology introduction Register operations Data Path Control Path ASM Example TA: Jorge Crichigno.
Contemporary Logic Design Arithmetic Circuits © R.H. Katz Lecture #24: Arithmetic Circuits -1 Arithmetic Circuits (Part II) Randy H. Katz University of.
Lab 10 RT methodology (cont’d) Example 1 – a counter Example 2 – a repetitive-adder multiplier.
ENEE 408C Lab Capstone Project: Digital System Design Fall 2005 Sequential Circuit Design.
Registers and Counters
Test #2 Combinational Circuits – MUX Sequential Circuits – Latches – Flip-flops – Clocked Sequential Circuits – Registers/Shift Register – Counters – Memory.
Dr. H.v.d.Biggelaar / Mar3-Ver2 / 1 Engineering Technology Dr. H.v.d.Biggelaar March 22, 2000 State Machines in VHDL.
Advanced Digital Circuits ECET 146 Week 7 Professor Iskandar Hack ET 221B,
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
Lecture 14: Processors CS 2011 Fall 2014, Dr. Rozier.
Introduction to Sequential Logic Design Finite State-Machine Design.
ENG241 Digital Design Week #8 Registers and Counters.
Register Transfer Level & Design with ASM
BR 1/991 Dice Game Implementation Why was dice game implemented in three 22V10 PLDs? What are the resources needed by the Dice Game? –Outputs: 6 for dice.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Final Project. System Overview Description of Inputs reset: When LOW, a power on reset is performed. mode: When LOW, NORMal mode selected When HIGH,
11/17/2007DSD,USIT,GGSIPU1 RTL Systems References: 1.Introduction to Digital System by Milos Ercegovac,Tomas Lang, Jaime H. Moreno; wiley publisher 2.Digital.
BR 1/991 Dice Game (Chapter 22) The dice game in Chapter 22 is a good example of a Finite State Machine controlling a Datapath. –The combined FSM/Datapath.
BR 1/991 DataPath Elements Altera LPM library has many elements useful for building common datapath functions –lpm_ram_dq - recommended for either asynchronous.
Registers and Counters
 Seattle Pacific University EE Logic System DesignCounters-1 Shift Registers DQ clk DQ DQ ShiftIn Q3Q3 Q2Q2 DQ Q1Q1 Q0Q0 A shift register shifts.
Digital System Design using VHDL
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
ECE DIGITAL LOGIC LECTURE 20: REGISTERS AND COUNTERS Assistant Prof. Fareena Saqib Florida Institute of Technology Fall 2015, 11/19/2015.
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Chapter 8 Solving Larger Sequential Problems.
Instructor: Alexander Stoytchev CprE 281: Digital Logic.
1 (c) W. J. Dally Digital Design: A Systems Approach Lecture 7: Data Path State Machines.
EMT 351/4 DIGITAL IC DESIGN Verilog Behavioral Modeling  Finite State Machine -Moore & Mealy Machine -State Encoding Techniques.
Pusat Pengajian Kejuruteraan Mikroelektronik EMT 351/4 DIGITAL IC DESIGN Verilog Behavioural Modeling (Part 4) Week #
DspBlk Aim: Capture and simulate dspBlk element ISE Project : appliedVHDL.ise provides access to all constituent files This document contains: EE427 submission.
Class Exercise 1B.
Supplement on Verilog for Algorithm State Machine Chart
Figure 8.1. The general form of a sequential circuit.
Digital Electronics Multiplexer
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Instructor: Alexander Stoytchev
Part IV: VHDL CODING.
Digital Electronics Multiplexer
RTL Design Methodology
MIPS Processor.
Instructor: Alexander Stoytchev
Instructor: Alexander Stoytchev
RTL Design Methodology
ECE 448 Lecture 13 Multipliers Timing Parameters
Registers.
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology Transition from Pseudocode & Interface
Optimizing RTL for EFLX Tony Kozaczuk, Shuying Fan December 21, 2016
CSE140: System Design Xinyuan Wang 05/31/2019.
Presentation transcript:

BR 1/991 Hints on Meeting Project Constraints Clock Cycle Constraint (12 clocks) – More resources (multipliers, adders), less clocks –Can be done with four parallel datapath approach (4 mults + 4 adders) Clock Frequency Constraint (25 Mhz ) –Will need to pipeline multiplier 1-3 stages –May need to put DFFs on some control outputs of the FSM –For state encoding, Gray Code or One Hot encoding will produce faster FSM than Binary Counting order encoding.

BR 1/992 REGREG REGREG + REGREG X DIN DOUT State DFFs Comb Logic Inputs Nstate Pstate

BR 1/993 REGREG REGREG + REGREG X DIN DOUT State DFFs Comb Logic Inputs Nstate Pstate Critical Path in dashed arrows Clk2Q Tpd of FSM Logic Tpd of Mux, Mult. Mux, Reg Tsu

BR 1/994 REGREG REGREG + REGREG X DIN DOUT State DFFs Comb Logic Inputs Nstate Pstate FSM delay removed from datapath delay DFFs

BR 1/995 Be Careful! When putting DFFs on control outputs, will delay control action by one clock This will affect your ASM chart!! Do not have to put DFFs on all control outputs, just the ones that are in the longest delay path.

BR 1/996 Original ASM Chart Zero? ld_cnt = 1 Addr_sel =1, zero_we = 1, cnt_en = 1 Cnt_eq? Clr_Busy = 1 Yes No Yes S0 S1 S2 Set_Busy = 1

BR 1/997 “ld_cnt” signal is now delayed via DFF Zero? Addr_sel =1, zero_we = 1, cnt_en = 1 Cnt_eq? Clr_Busy = 1 Yes No Yes S0 S1 S2 Set_Busy = 1 ld_cnt = 1 Assertion moved to previous state

BR 1/998 How do I add DFFs to FSM outputs? In two process VHDL model, explicity add DFFs via separate signals comblogic: process (zero, cnt_eq, pstate) begin -- default assignments ld_cnt <= '0'; ….. Etc…. stateff:process(clk) -- process has DFFs only begin if (reset = '1') then pstate <= S0; elsif (clk'event and clk='1') then pstate <= nstate; -- updated present state with next state ld_cnt_dly <= ld_cnt; -- DFF on ld_cnt line. Connect endif; -- ld_cnt_dly to counter end process stateff;

BR 1/999 How do I add DFFs to FSM outputs? (cont) begin state <= pstate; -- look at present state for debugging purposes stateff:process(clk) -- process has state transistions ONLY begin if (reset = '1') then pstate <= S0; elsif (clk'event and clk='1') then -- rising edge of clock CASE pstate IS WHEN S0 => if (zero = '1') then ld_cnt <= 1; pstate <= S1; end if; WHEN S1 => pstate <= S2; WHEN S2 => if (cnt_eq = '1') then pstate <= S0 ; end if; WHEN others => pstate <= S0; end case; end if; end process stateff; set_busy <= '1' when (pstate = S0 and zero = ‘1’) else '0'; addr_sel <= '1' when (pstate = S2) else '0'; zero_we <= '1' when (pstate = S2) else '0'; cnt_en <= '1' when (pstate = S2) else '0'; clr_busy <= '1' when (pstate = S2 and cnt_eq = '1') else '0'; end a; In one process model, put ld_cnt inside of state process!

BR 1/9910 Determining Longest Paths If your design does not meet the Clock frequency target of 25 Mhz, then need to determine the longest paths The “list paths” button will list longest paths. List paths button.

BR 1/9911 Longest register to register path will be the Clk2Q of first DFF to D input of 2nd DFF. Path is reported as: ‘1’.q - the ‘1’ is the component number on schematic.

BR 1/9912 A Resource Limitation In Lab #7, the 16 coefficients were stored in a LPM_RAM_DQ that was configured as 16 x 9. In the project, cannot store the coefficients in one RAM. Would take 16 clock cycles to read all 16 coefficients, you only have 12 clocks. If use four datapaths, may want to split coefficients into four groups.

BR 1/9913 A Resource Limitation (cont) Could use four LPM_RAM_DQs configured as 4x9. However, a RAM_DQ uses an Embedded Array Block (EAB). Only 6 EABs on the the Flex 10K20. An EAB can be configured as 256 x8, 512 x 4, 1024 x 2, or 2048 x 1. Each 4x9 RAM would take two EABs, would need 8 EABs total! Not enough! –One solution would be to use three 4x9 RAM_DQs, then make up another “psuedo” RAM_DQ using registers. –Could store all coefficients in registers, but may run short of gates when implementing the maximum initiation rate solution.