Answered step by step
Verified Expert Solution
Question
1 Approved Answer
For this exercise your Answer will be to modify only the statements of the Test Bench indicated below that reference the new Model to be
For this exercise your Answer will be to modify only the statements of the Test Bench indicated below that reference the new Model to be tested and
those Test Bench statements that should be modified to complete the Test Case #3 and Test Case #4 for the new Model.
To simplify your task and avoid too much typing just write the VHDL code lines for :
- Test Bench Model Name : (Should follow same format as the existing name, now testing an 11-bit Shift Register)
- Eleven Bit Register Component Declaration (just the lines that change): (There are at least two lines that should change)
- The Assertion at the end of Test Case #3: (See Note_3 below.) and (The assertion should have the Assert, Report, Severity sections)
- The Assertion at the end of Test Case #4: (See Note_4 below.) and (The assertion should have the Assert, Report, Severity sections)
Note_3: Assume that the eleven bits been shifted right are "11 00110011 0"
Note_4: Assume that the eleven bits been shifted left are "11 01110111 0"
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity TB_EightBitUSR is -- Port ); end TB_EightBitUSR; . cik H architecture Behavioral of TB_EightBituse is -- Declare component to be tested as Module Undert Test (MUT) Component EightBituse is Port (D_H in STD_LOGIC_VECTOR (7 downto 0); Q_H : inout STD_LOGIC_VECTOR (7 downto 0); : in STD_LOGIC; in STD LOGIC; Right Shift_In_H : in STD LOGIC; LeftShift In H : in STD_LOGIC; RightShift_out_H : Out STD_LOGIC; LeftShift_out_H : Out STD LOGIC; Sel_H in STD_LOGIC_VECTOR (1 downto 0) clr_L : : : signal signal end Component; -- Declare wiring signals to connect to the MUT (EightBitUSR) port signals signal : STD_LOGIC_VECTOR (7 downto 0) := "10101010" ; signal : STD_LOGIC VECTOR ( 7 downto 0); wck_H : STD_LOGIC := '0'; wCIEL : STD LOGIC := '0'; signal wRight Shift_In_H: STD LOGIC := '0'; wLeftShift_In_ : STD LOGIC := '0'; signal wRight Shift Out H: STD LOGIC; signal WLeft Shift Out H: STD LOGIC; signal wSel H : STD_LOGIC_VECTOR 1 downto 0) := "00"; CONSTANT PERIOD : Time := 53 uS; signal begin -- First let's instantiate the Module under test EIGHTBITSHR: EightBitUSR Port Map ( DH => WD H, OH WOH, cik H => wcik H, Clr L => wCir L, Right Shift_In_H wRight Shift_In_H, LeftShift_In_H WLeft Shift In H Right Shift_Out H => wRight Shift Out H, Left Shift Out H WLeftShift Out H, Sel H wSel H ); -- Second lets use a process() to simulate an input clock that will drive the walk_H signal continously to EightBitUSR -- Second lets use a process () to simulate an input clock that will drive the wcik_H signal continously to EightBitUSR CLOCK: Process (wCik_H) is Begin wClk_H SimulationConstructs -> wait for positive signal transition wait for PERIOD/5; -- Offset some time from clock edge and apply the input signals so these have time to propagate and determine next state, -- Now we are ready to apply stimulus to shift Register etc. -- Test Case #1: Verify register remains reset (cleared) no matter the value in the mode selection inputs Sel_H(1:0) -- From now on we will write the signal assignments horizontally one after the other so that it is easier to spot which signals are changing wCir_L = '0'; wSel_H WD H, OH WOH, cik H => wcik H, Clr L => wCir L, Right Shift_In_H wRight Shift_In_H, LeftShift_In_H WLeft Shift In H Right Shift_Out H => wRight Shift Out H, Left Shift Out H WLeftShift Out H, Sel H wSel H ); -- Second lets use a process() to simulate an input clock that will drive the walk_H signal continously to EightBitUSR -- Second lets use a process () to simulate an input clock that will drive the wcik_H signal continously to EightBitUSR CLOCK: Process (wCik_H) is Begin wClk_H SimulationConstructs -> wait for positive signal transition wait for PERIOD/5; -- Offset some time from clock edge and apply the input signals so these have time to propagate and determine next state, -- Now we are ready to apply stimulus to shift Register etc. -- Test Case #1: Verify register remains reset (cleared) no matter the value in the mode selection inputs Sel_H(1:0) -- From now on we will write the signal assignments horizontally one after the other so that it is easier to spot which signals are changing wCir_L = '0'; wSel_HStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started