Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

FATAL ERROR while loading design in VHDL

Status
Not open for further replies.

mohit11511

Newbie level 1
Joined
Jan 4, 2020
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
14

Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
library ieee;                                -- line 1
use ieee.std_logic_1164.all;                 -- line 2
                                             -- line 3
entity find_errors is 
port(                                        -- line 4
    a: in std_logic_vector(0 to 3);             -- line 5
    b: out std_logic_vector(3 to 0);         -- line 6
    c: in std_logic_vector(5 downto 0));           -- line 7
end find_errors;                                -- line 8
                                             -- line 9
architecture not_good of find_errors is         -- line 10
  begin                                      -- line 11
  my_label: process                          -- line 12
    begin                                    -- line 13
    if (c = ("00" & x"F")) then            -- line 14
      b <= a;                              -- line 15
    else                                     -- line 16
     b <= "0101";                            -- line 17
    end if;                                  -- line 18
  end process;                               -- line 19
end not_good;

 
Last edited by a moderator:

Signals a and b are not assignment compatible, different index direction. This needs to be corrected at least.

I'm sure your compiler or simulator gives a detailed error message with source line reference, you forgot to post it.
 

The error is because your process has no sensitivity list or wait statement. This means it loops forever and probably hits the simulator iteration limit. you need to put C and A in the process sentivity list:


Code VHDL - [expand]
1
my_label : process(a,c)



FvM said:
Signals a and b are not assignment compatible, different index direction.

This is not a syntax or runtime error. Assigning arrays with opposite directions of the same size is perfectly fine, though it can often be a user error. Assignments will always assign 'left to 'right, so in the OPs case, b(3) = a(0) etc.
 
  • Like
Reactions: FvM

    FvM

    Points: 2
    Helpful Answer Positive Rating
This is an assignment from a coursera course. They use the same example for the quiz and for the "fix-it" assignment.

There are at least two remaining errors. Probably three or four, but the latter two are based on knowledge of the assignment.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top