Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
51 Views

Failed to simulate with University program VWF

Good afternoon,
I am designing a finite state machine, I made the datapath with its respective memories and an adder. I also designed a controlpath in vhdl. But when simulating in the Waveform I have an error, apparently it is in the VHDL code.
abjoint image with the simulation error and vhdl code

 

library ieee;
use ieee.std_logic_1164.all;
entity FSM_LAB4 is


	port(
		clk    : in	std_logic;
		reset	 : in	std_logic;
		load1   : in	std_logic;
		load2   : in	std_logic;
		startop:in	std_logic;
		nextt : in	std_logic;
		view : in	std_logic;
		view1 : in	std_logic;
		view2 : in	std_logic;
		cnt : in		std_logic;
		W1  : out	std_logic;
		W2  : out	std_logic;
		W3  : out	std_logic;
		W4  : out	std_logic;
		W5  : out	std_logic;
		R1  : out 	std_logic;
		R2  : out	std_logic;
		
		rRom1:out	std_logic;
		rRom2:out	std_logic;
		wRam: out	std_logic;
		rRam: out	std_logic;
		contador : out	std_logic;
		control: out std_logic

	);

end entity;

architecture rtl of FSM_LAB4 is

	-- Build an enumerated type for the state machine
	type state_type is (s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17);

	-- Register to hold the current state
	signal state   : state_type;

begin


	process (clk, reset)
	begin
		if reset = '1' then
			state <= s0;
		elsif (rising_edge(clk)) then
			case state is
				when s0=>
					if load1 = '1' then
						state <= s1;
					elsif load2 = '1' then
						state <= s3;
					elsif view1 = '1' then
						state <= s2;
					elsif view2 = '1' then
						state <= s4;
					elsif startop = '1' then
						state <= s5;
					elsif view = '1' then
						state <= s15;
					elsif nextt = '1' then
						state <= s16;
					--else 
					--state <= s0;
					end if;
				when s1=>
					if view1 = '1' then
						state <= s2;
					else
						state <= s0;	
					end if;
				when s2=>
					if load2 = '1' then
						state <= s3;
					else
						state <= s0;	
					end if;
				when s3=>
					if view2 = '1' then
						state <= s4;
					else
						state <= s0;	
					end if;
				when s4=>
					if startop = '1' then
						state <= s5;
					else
						state <= s0;	
					end if;
				when s5=>
					state <= s6;
				when s6=>
					state <= s7;
				when s7=>
					state <= s8;
				when s8=>
					state <= s9;
				when s9=>
					state <= s10;
				when s10=>
					state <= s11;
				when s11=>
					state <= s12;
				when s12=>
					state <= s13;
				when s13=>
					state <= s14;
				when s14=>
					if cnt = '1' then
						state <= s0;
					else
						state <= s5;
					end if;
				when s15=>
					if nextt = '1' then
						state <= s16;
					else
						state <= s0;
					end if;
				when s16=>
					if cnt = '1' then
						state <= s17;
					else
						state <= s0;
					end if;
				when s17=>
					state <=s0;
			end case;
		end if;
	end process;


	process (state)
	begin
		case state is
			when s0 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			
			when s1 =>
				W1 <= '1';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';			
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s2 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '1';
				R1 <= '1';
				R2 <= '0';			
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s3 =>
				W1 <= '0';
				W2 <= '1';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';			
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s4 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '1';
				R1 <= '0';
				R2 <= '1';			
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s5 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '1';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '1';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s6 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '1';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '1';
				contador <= '0';
				control <= '0';
			when s7 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '1';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s8 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '1';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '1';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s9 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '1';
				W5 <= '0';
				R1 <= '1';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s10 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '1';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s11 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '1';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '1';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s12 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '1';
				W5 <= '0';
				R1 <= '0';
				R2 <= '1';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s13 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '1';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '0';
			when s14 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '1';
				control <= '0';	
			when s15 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '1';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '1';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '1';
			when s16 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '1';
				R1 <= '0';
				R2 <= '0';			
				wRam <= '0';
				rRam <= '1';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '1';
				control <= '0';
			when s17 =>
				W1 <= '0';
				W2 <= '0';
				W3 <= '0';
				W4 <= '0';
				W5 <= '0';
				R1 <= '0';
				R2 <= '0';				
				wRam <= '0';
				rRam <= '0';
				rRom1 <= '0';
				rRom2 <= '0';
				contador <= '0';
				control <= '1';
		end case;
	end process;

end rtl;

 

 

error.JPG

 

 

0 Kudos
0 Replies