Behavioral modeling of a dual ported register set.

Slides:



Advertisements
Similar presentations
1/8/ VerilogCopyright Joanne DeGroat, ECE, OSU1 Verilog Overview An overview of the Verilog HDL.
Advertisements

L23 – Adder Architectures. Adders  Carry Lookahead adder  Carry select adder (staged)  Carry Multiplexed Adder  Ref: text Unit 15 9/2/2012 – ECE 3561.
L18 – VHDL for other counters and controllers. Other counters  More examples Gray Code counter Controlled counters  Up down counter  Ref: text Unit.
1/8/ L17 Resolved SiganlsCopyright Joanne DeGroat, ECE, OSU1 Resolved Signals What are resolved signals and how do they work. Resolution???
Programming in VHDL Using Processes. How Processes Run A process is either in suspend mode or is running. For a process to run, there has to be a change.
9/15/09 - L25 Registers & Load Enable Copyright Joanne DeGroat, ECE, OSU1 Registers & Load Enable.
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
1/8/ L23 Project Step 9 - Sequential Machine Copyright Joanne DeGroat, ECE, OSU1 Project Step 9 Beyond the ALU and Datapath. Sequential Machine.
L16 – VHDL for State Machines with binary encoding.
2-Jun-16EE5141 Chapter 3 ä The concept of the signal ä Process concurrency ä Delta time ä Concurrent and sequential statements ä Process activation by.
1/8/ Extra CreditCopyright Joanne DeGroat, ECE, OSU1 PS3xcr Extra Credit Project Modification that can be done to the datapath.
L19 – Resolved Signals. Resolved Signals  What are resolved signals In systems In VHDL Resolution – Isn’t that for resolving conflicts?  Ref: text Unit.
Digital System Projects
L20 – Register Set. The 430 Register Set  Not exactly a dual ported register set, but a dual drive register set.  Ref: text Unit 10, 17, 20 9/2/2012.
EE694v - Verification - Lect Lect 12,13,14 – 762 Testbenches Lets look at the EE 762 testbenches Look at stimulus generation techniques Look at response.
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
1/8/ L11 Project Step 5Copyright Joanne DeGroat, ECE, OSU1 Project Step 7 Behavioral modeling of a dual ported register set.
Midterm Exam ReviewCopyright Joanne DeGroat, ECE, OSU1 Midterm Exam Notes.
55:032 - Intro. to Digital DesignPage 1 VHDL and Processes Defining Sequential Circuit Behavior.
MicroBaby ALU.
EE694v - Verification - Lect 12
IAY 0600 Digital Systems Design
IAY 0600 Digitaalsüsteemide disain
Modification that can be done to the datapath.
Copyright Joanne DeGroat, ECE, OSU
IAY 0600 Digital Systems Design
Behavioral modeling of a dual ported register set.
Copyright Joanne DeGroat, ECE, OSU
ECE 434 Advanced Digital System L15
Processor Data Paths -ALU and Registers
Copyright Joanne DeGroat, ECE, OSU
Project Step 2 – A single bit slice of the ALU
Modification that can be done to the datapath.
L19 – Register Set.
Copyright Joanne DeGroat, ECE, OSU
MicroBaby Datapath.
Copyright Joanne DeGroat, ECE, OSU
L21 – Register Set.
L25 – Datapath ALU.
MicroBaby Datapath.
Copyright Joanne DeGroat, ECE, OSU
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
L22 – Register Set Debugging
IEEE Floating Point Adder
A floating point multiplier behavior model.
Step 2 in behavioral modeling. Use of procedures.
How do you achieve deterministic concurrent simulation.
Timing & Concurrency II
Copyright Joanne DeGroat, ECE, OSU
Beyond the ALU and Datapath. Sequential Machine Modeling exercise.
IEEE Floating Point Adder Verification
A floating point multiplier behavior model.
An overview of the Verilog HDL.
L7s Multiple Output example
Structural Modeling and the Generate Statement
Project Step 2 – A single bit slice of the ALU
Copyright Joanne DeGroat, ECE, OSU
A floating point multiplier behavior model.
Copyright Joanne DeGroat, ECE, OSU
Timing & Concurrency II
Step 2 in behavioral modeling. Use of procedures.
Step 3 in behavioral modeling. Use of packages.
Timing & Concurrency II
The transaction problem.
Sequntial-Circuit Building Blocks
Beyond the ALU and Datapath. Sequential Machine Modeling exercise.
Copyright Joanne DeGroat, ECE, OSU
Project Step 2 – A single bit slice of the ALU
Structural Modeling and the Generate Statement
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

Behavioral modeling of a dual ported register set. Project Step 7 Behavioral modeling of a dual ported register set. 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU The register set Register set specifications 16 dual ported registers each with 16-bit words Control signals for each bus Register Number Load Strobe Drive Strobe Registers know nothing about time Note: AregNo,BregNo are type Integer 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU Dual ported registers Very common in today’s architectures Capable of being written and/or loaded from the busses simultaneously Possible Operations in a cycle Load the Abus value into register n, load the Bbus value into rejester m, where n does not equal m Load a register from one bus and drive a different register onto the other bus Drive both busses from different registers 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU Each bus The type of the bus will be std_logic_vector which is a resolved type. It will have two drivers The testbench is a driver of the bus. The register set is a driver of the bus. Original contents of the registers is “UU…U” Must set the bus to “ZZ…ZZ” so that values can be transferred, i.e., your driver of the bus must be set to “ZZZ…Z” 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU To get the bus to Z To get the bus to high impediance, Z, all the drivers of the bus must go to high impedance. Testbench starts out during initialization by assigning values of Z to the bus. These transactions get posted to the current value of the testbench driver of the buses at 0 +1 delta. The register set code must also set its driver to Z so values can be loaded. 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU The testbench driver At time 0 driver of the bus starts out ‘U’, uninitialized, the default initialization value. At time 0 the process that runs the bus begins execution. First steps in this process are to assign high impedance to the busses and initialize the control signals. It then calls a procedure which suspends until 9 ns. This will allow update at 0+1delta of the busses and for you to also drive the bus at high impedance 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU The key to this project Must write VHDL code to model the register set. Note that the registers are 16 bits. Best done in a process. Array of bit vectors can be a variable array declared in the process. May need a type definition 1st and then declaration of variable. Remember that processes with a sensitivity list run once through and then hold for an event on the signals they monitor. They run once through at time 0 during initialization 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Structure of processes What goes in the sensitivity list The control signals? The bus signals? The process needs to have code that sets its bus outputs at time 0 to ‘Z’ (even if it happens a delta later) How to do this? Value to drive bus to at all times Either drive a value from a register Or drive high impedance At 0 + 1 delta there will be an event on the control signals They start out as ‘U’ as they are type std_logic Have an event to ‘1’ 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU Bus timing Note timing of control signals 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Copyright 2006 - Joanne DeGroat, ECE, OSU Some useful info 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU

Other useful information If you don’t make sure the register driver gets set to ‘Z’ then you will just load ‘U’s to start and probably stay there. The registers themselves know nothing about time. All they understand of the world is that they have control signals that tell them when to load a value or when to drive a value. The registers themselves do nothing to check about a conflict in register number access. They just know the control signals. The unit that generates the control signals is the responsible party to insure such conflicts do not occur. 1/8/2007 - L11 Project Step 5 Copyright 2006 - Joanne DeGroat, ECE, OSU