LECTURE 7: VHDL Standard Cell Library Package

Slides:



Advertisements
Similar presentations
CWRU EECS 317 EECS 317 CAD Computer Aided Design LECTURE 2: Delay models, std_ulogic and with-select-when Instructor: Francis G. Wolff
Advertisements

VHDL in digital circuit synthesis (tutorial) dr inż. Miron Kłosowski EA 309
VHDL Lecture 1 Megan Peck EECS 443 Spring 08.
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.
© 1998, Peter J. AshendenVHDL Quick Start1 Basic VHDL Concepts Interfaces Behavior Structure Test Benches Analysis, elaboration, simulation Synthesis.
Verilog Intro: Part 1.
LECTURE 4: The VHDL N-bit Adder
CWRU EECS 317 EECS 317 Computer Design LECTURE 6: State machines Instructor: Francis G. Wolff Case Western Reserve University This.
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
Lab Lecture 3 VHDL Architecture styles and Test Bench -Aahlad.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
ECE 331 – Digital System Design
L23 – Arithmetic Logic Units. Arithmetic Logic Units (ALU)  Modern ALU design  ALU is heart of datapath  Ref: text Unit 15 9/2/2012 – ECE 3561 Lect.
AND Gate: A Logic circuit whose output is logic ‘1’ if and only if all of its inputs are logic ‘1’.
GOOD MORNING.
(1) Programming Mechanics © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
CWRU EECS 317 EECS 317 CAD Computer Aided Design LECTURE 3: Synopsys Simulator Instructor: Francis G. Wolff Case Western Reserve University.
VHDL TUTORIAL Preetha Thulasiraman ECE 223 Winter 2007.
Graduate Computer Architecture I VHDL Structure and Testing Michael Sorensen.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #17 – Introduction.
ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 5: Modeling Structure.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE Simulator 1: Synopsys Simulator Instructor: Francis G. Wolff Case Western.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Basic Overview of VHDL Matthew Murach Slides Available at:
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 5: AOIs, WITH-SELECT-WHEN, WHEN-ELSE Instructor: Francis G. Wolff Case Western.
L12 – VHDL Overview. VHDL Overview  HDL history and background  HDL CAD systems  HDL view of design  Low level HDL examples  Ref: text Unit 10, 17,
Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Digital Logic Design.
Copyright(c) 1996 W. B. Ligon III1 Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
ECE 331 – Digital System Design Single-bit Adder Circuits and Adder Circuits in VHDL (Lecture #11) The slides included herein were taken from the materials.
Ch.2 Part E: VHDL, SystemC EECE **** Embedded System Design.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Hardware Description Languages Digital Logic Design Instructor: Kasım Sinan YILDIRIM.
Chapter 5 Introduction to VHDL. 2 Hardware Description Language A computer language used to design circuits with text-based descriptions of the circuits.
Assignment write a short notes on 1.Manufacturing Testing. 2.Functional Testing. 3.Files and Text I/O. 4.Differentiate the cpld and fpga architecture.
Digital System Projects
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 3: The VHDL N-bit Adder Instructor: Francis G. Wolff Case Western Reserve.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
Introduction to VHDL Coding Wenchao Cao, Teaching Assistant Department of EECS University of Tennessee.
VHDL ELEC 311 Digital Logic and Circuits Dr. Ron Hayne Images Courtesy of Cengage Learning.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
(1) Modeling Structure © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Sequential Logic Design.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE Simulator 2: Textio, Wait, Clocks, and Test Benches Instructor: Francis G. Wolff
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 6: State machines Instructor: Francis G. Wolff Case Western Reserve University.
IAY 0600 Digital Systems Design VHDL discussion Structural style Modular design and hierarchy Part 1 Alexander Sudnitson Tallinn University of Technology.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
An Introduction to Verilog: Transitioning from VHDL
Structural style Modular design and hierarchy Part 1
Systems Architecture Lab: Introduction to VHDL
Behavioral Style Combinational Design with VHDL
Structural style Modular design and hierarchy Part 1
VHDL VHSIC Hardware Description Language VHSIC
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
Introduction to Verilog
Getting Started with Vivado
Hardware Descriptive Languages these notes are taken from Mano’s book
© Copyright Joanne DeGroat, ECE, OSU
4-Input Gates VHDL for Loops
(Simple Testbenches & Arithmetic Operations)
Presentation transcript:

LECTURE 7: VHDL Standard Cell Library Package EECS 317 Computer Design LECTURE 7: VHDL Standard Cell Library Package Instructor: Francis G. Wolff wolff@eecs.cwru.edu Case Western Reserve University CWRU EECS 317

Standard Cell Library Standard Cell simulation libraries: describe components functionally as well as with timing information. Software programmers are primarily concerned with functionality (i.e. given the data inputs (mouse, keyboard, etc.) does it give the expected output results?) Software programmers sometimes spend additional time to make the program work relativity faster than before. (i.e. time complexity O(n) versus O(n2) ) Hardware designers deal with real-time issues all the time. Functional hardware specifications include timing requirements. This translate to an output signal must arrive within a certain time period) CWRU EECS 317

Standard Cell Library Standard Cell libraries Standard cell libraries do not contain every possible logic gate. For example, AND gates may not be included. CMOS process technology favors NAND and NOR gates over AND and OR gates in number of transistors. High level Synthesis tools will build the AND gate from a NAND and an INVERTOR gate. By using VHDL, the design becomes portable between cell libraries. CWRU EECS 317

Standard Cell Library Standard Cell library Assume the library contains the following 6 components nandf201: 2 input nand with 1x output drive norf201: 2 input nor with 1x output drive invf101: 1 input not gate with 1x output drive xorf201: 2 input xor gate with 1x output drive xnof201: 2 input xnor gate with 1x output drive dfbf311: D-Flip Flop with D, Reset, Set, Q, QN, Clk Next we want to create a package library to reference it. See: MSU Standard Cell Library: http://www.erc.msstate.edu/mpl/distributions/scmos/scmos_doc/index.html CWRU EECS 317

Standard Cell: 2 input NAND output drive 1X LIBRARY IEEE; USE IEEE.STD_LOGIC_VECTOR; ENTITY nandf201 IS GENERIC(Tdelay: TIME:=10 ns); PORT(A1, B1: IN std_logic; F1: OUT std_logic ); END ; ARCHITECTURE nandf201_arch OF nandf201 IS BEGIN F1 <= ( A1 NAND B1 ) after Tdelay; END; CONFIGURATION nandf201_cfg OF nandf201 IS FOR nandf201_arch END FOR; END; CWRU EECS 317

Standard Cell Package LIBRARY IEEE; USE IEEE.STD_LOGIC_VECTOR.ALL; PACKAGE STDLIB1 IS COMPONENT nandf201 IS GENERIC(Tdelay: TIME:=5 ns); PORT(A1, B1: IN std_logic; F1: OUT std_logic); END COMPONENT; COMPONENT norf201 IS GENERIC(Tdelay: TIME:=5 ns); PORT(A1, B1: IN std_logic; F1: OUT std_logic); END COMPONENT; . . . END; PACKAGE BODY STDLIB1 IS CWRU EECS 317

Full Adder: Architecture LIBRARY IEEE; USE IEEE.STD_LOGIC_VECTOR.ALL; LIBARRY WORK; USE WORK.STDLIB1.ALL; ENTITY full_adder IS PORT(x, y, z: IN std_logic; Sum, Carry: OUT std_logic); END; ARCHITECTURE full_adder_arch_1 OF full_adder IS SIGNAL xy: std_logic; BEGIN -- Note: “Sum <= ( ( x XOR y ) XOR z );” xor1: xor201 port map(x, y, xy); xor2: xor201 port map(xy, z, Sum); … END; CWRU EECS 317

Nandf201: traditional testbench LIBRARY IEEE; USE IEEE.std_logic_vector.all; LIBRARY WORK; USE WORK.stdlib1.all; ENTITY nandf201_testbench IS END ; ARCHITECTURE nandf201_testbench_arch OF nandf201_testbench SIGNAL A, B, F: std_logic; IS BEGIN tb1: nandf201 port map(F, A, B); -- reminder: absolute time for wave statement A <= ‘0’, ‘1’ after 10 ns, ‘0’ after 20 ns, ‘1’ after 30 ns; B <= ‘0’, ‘0’ after 10 ns, ‘1’ after 20 ns, ‘1’ after 30 ns; END; CWRU EECS 317

Nandf201: text io test bench USE STD.textio.all; --write/read strings LIBRARY IEEE; USE IEEE.std_logic_vector.all; USE IEEE.std_logic_textio.all; --write/read std_logic LIBRARY WORK; USE WORK.stdlib1.all; --component libs ENTITY nandf201_testbench IS END ; CWRU EECS 317

Nandf201: text io test bench ARCHITECTURE nandf201_testbench_arch OF nandf201_testbench IS SIGNAL A, B, F: std_logic; BEGIN tb1: nandf201 port map(F, A, B); -- reminder: absolute time for wave statement A <= ‘0’, ‘1’ after 10 ns, ‘0’ after 20 ns, ‘1’ after 30 ns; B <= ‘0’, ‘0’ after 10 ns, ‘1’ after 20 ns, ‘1’ after 30 ns; PROCESS(A, B, F) --listen to any change in signal variable buf: line; --pointer to a string BEGIN write(buf, string’(“Time= “)); write(buf, NOW); write(buf, string’(“ A=“)); write(buf, A); write(buf, string’(“ B=“)); write(buf, B); writeline(output, buf); END PROCESS; END; CWRU EECS 317

Nandf201: sample output text io test bench PROCESS(A, B, F) means that every time there is a change in signals A, B, of F: this process will be called This is called a sensitivity list because is listening in on all signals declared in the list vhdlan -NOEVENT stdlib1.vhd vhdlan -NOEVENT nandf201_testbench.vhd vhdlsim nandf201_testbench_cfg #run Time=0 NS F=U A=U B=U Time=0 NS F=U A=0 B=0 Time=10 NS F=1 A=1 B=0 Time=20 NS F=1 A=0 B=1 Time=30 NS F=1 A=1 B=1 Time=40 NS F=0 A=1 B=1 CWRU EECS 317

Nandf201: process wave function The absolute time wave function: A <= ‘0’, ‘1’ after 10 ns, ‘0’ after 20 ns; B <= ‘0’, ‘0’ after 10 ns, ‘1’ after 20 ns; Can be re-written using relative time: PROCESS VARIABLE buf: LINE; BEGIN A <= ‘0’; B<=‘0’; write(buf, string’(“Time= “)); write(buf, NOW); write(buf, string’(“ A=“)); write(buf, A); write(buf, string’(“ B=“)); write(buf, B); writeline(output, buf); wait for 10 ns; A <= ‘1’; B<=‘0’; --followed by more write statements wait for 10 ns; A <= ‘0’; B<=‘1’; --followed by more write statements wait for 10 ns; END PROCESS; CWRU EECS 317

Nandf201: VARIABLE test bench time PROCESS VARIABLE Ttest: TIME:=10 ns; VARIABLE buf: LINE; BEGIN A <= ‘0’; B<=‘0’; write(buf, string’(“Time= “)); write(buf, NOW); write(buf, string’(“ A=“)); write(buf, A); write(buf, string’(“ B=“)); write(buf, B); writeline(output, buf); wait for Ttest; A <= ‘1’; B<=‘0’; --followed by more write statements wait for Ttest; A <= ‘0’; B<=‘1’; --followed by more write statements wait for Ttest; END PROCESS; CWRU EECS 317

Nandf201: testbench which compares result ARCHITECTURE nandf201_testbench_arch OF nandf201_testbench IS SIGNAL A, B, F: std_logic; BEGIN tb1: nandf201 port map(F, A, B); PROCESS BEGIN A <= ‘0’; B<=‘0’; write(buf, string’(“Time= “)); write(buf, NOW); write(buf, string’(“ A=“)); write(buf, A); write(buf, string’(“ B=“)); write(buf, B); writeline(output, buf); wait for 10 ns; if F/=‘0’ then --not equal to write(buf, string’(“test #1 failed”)); writeline(output, buf); end if; ... wait; --always add a final wait for test benches-- END PROCESS; CWRU EECS 317

Assignment #7 a) Write a package containing all of the six stdlib1 gates described earlier and rewrite your 1-bit ALU using only these components. The stdlib1 package should also contain 1-bit ALU and the generic N-bit ALU. b) Write a test bench for the N-bit ALU (i.e. N=8) that uses your package and checks your output values with if/then statements. Do forget to construct the worst case test vectors for 8-bit adds. c) Using a Tdelay for each gate of 10 ns, determine the minimum delay of your adder by varying the test bench time until it passes all the tests constructed. d) Hand in the source files and vhdlsim session using the Unix script command. CWRU EECS 317