Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16559 Discussions

Failed to simulate with University program VWF

Manuel9805
Beginner
578 Views

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
1 Reply
RichardTanSY_Intel
522 Views

Sorry for idling for some time. Do you able to solve the issue or do you need further help on this? 

0 Kudos
Reply