i have wrote a 4bit regester shift vhdl code and having prob

i have wrote a 4bit regester shift vhdl code and having problems with the test bench.

here is the code

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity R4BitShift is
port(sel,serialIn,clk: in std_logic;
D: in std_logic_vector(3 downto 0);
   Q: out std_logic_vector(3 downto 0));
end R4BitShift;

architecture Behavioral of R4BitShift is

signal Qint: std_logic_vector(3 downto 0);

begin
process(clk)
begin
   if(clk\'event) and (clk = \'1\') then
       if sel = \'0\' then
       Qint(3) <= D(3);
       Qint(2) <= D(2);
       Qint(1) <= D(1);
       Qint(0) <= D(0);
       else
       Qint(3) <= Qint(2);
       Qint(2) <= Qint(1);
       Qint(1) <= Qint(0);
       Qint(0) <= serialIn;
       end if;
   end if;
end process;
Q <= Qint;
end Behavioral;

i have wrote this test bench but it is wrong. Can anyone fix it please

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

ENTITY R4bit_tb IS
END R4bit_tb;

ARCHITECTURE behavior OF R4bit_tb is

COMPONENT R4BitShift

PORT(sel,serialIn,clk: in std_logic;
D: in std_logic_vector(3 downto 0);
Q: out std_logic_vector(3 downto 0));
END COMPONENT;

--Inputs
signal sel : std_logic := \'0\';
signal clk : std_logic := \'0\';
signal serialIn : std_logic := \'0\';
signal D: std_logic_vector(3 downto 0):= (others => \'0\');

--Outputs
signal Q : std_logic_vector(3 downto 0);

constant Clk_in_period : time := 10 ns;
BEGIN

uut: R4BitShift PORT MAP (
sel => sel,
clk => clk,
serialIn => serialIn,
Q => Q,
D=>D
);

clk_process :process

begin
clk <= \'0\';
wait for Clk_in_period/2;
clk <= \'1\';
wait for Clk_in_period/2;
end process;

stim_proc: process

begin
wait for 10ns;
serialIn <= \'1\';
sel<=\'1\';
wait for 200ns;
serialIn <= \'0\';
wait;
end process;

begin
wait for 10ns;
Q <= \'1\';
D<=\'1\';
wait for 200ns;
Q <= \'0\';
end process;

please fix the test bench

Solution

Testbench Code:

library ieee;
use ieee.std_logic_1164.all;

ENTITY _tb is
END register_tb;

architecture behavior of R4BIT_tb is

component R4BITSHIFT
port(
Din : in STD_LOGIC;
CLK : in STD_LOGIC;
RST : in STD_LOGIC;
Qout : out STD_LOGIC_VECTOR(3 downto 0) );
end component;

signal Din : STD_LOGIC;
signal CLK : STD_LOGIC;
signal RST : STD_LOGIC;

signal Qout : STD_LOGIC_VECTOR(3 downto 0);

begin

UUT : register_design
port map (
   Din => Din,
   CLK => CLK,
   RST => RST,
   Qout => Qout
);

CLK_GEN: process
begin
CLK <= \'0\';
wait for 5 ns;

CLK <= \'1\';
wait for 5 ns;

end process;

stimuli : process
begin

Din <= \'1\' after 20 ns;

Din <= \'1\' after 90 ns;

wait;

end process
end TESTBENCH_FOR_register_design;

i have wrote a 4bit regester shift vhdl code and having problems with the test bench. here is the code library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity R4BitSh
i have wrote a 4bit regester shift vhdl code and having problems with the test bench. here is the code library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity R4BitSh
i have wrote a 4bit regester shift vhdl code and having problems with the test bench. here is the code library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity R4BitSh

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site