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.

simulation not working in modelsim

Status
Not open for further replies.

goodpranoy

Junior Member level 3
Junior Member level 3
Joined
Dec 5, 2013
Messages
29
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
201
hi guys,

i am getting these errors and warnings in the transcript

# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
# Time: 0 ns Iteration: 0 Process: /tb_top/mapping/data/register_b/line__22 File: C:/Documents and Settings/Pranoy tm/Desktop/qwerty/register_new_collage.vhd
# Break in Process line__22 at C:/Documents and Settings/Pranoy tm/Desktop/qwerty/register_new_collage.vhd line 24


this is the program


Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    entity reg_new is
        port( control:in std_logic;
            data_in:in std_logic_vector(7 downto 0);
            reg_enable:in std_logic;
            data_out:out std_logic_vector(7 downto 0);
            a_zero_status:out std_logic;
            clock:in std_logic
            );
        end reg_new;
        
    architecture behav of reg_new is
        subtype cell is std_logic_vector(7 downto 0);
        type memarray is array(0 downto 0) of cell;
        signal mem:memarray;
        begin
            
            process(mem(0))
                begin
                    if(mem(0)="00000000") then
                        a_zero_status<='1';
                        else
                        a_zero_status<='0';
                    end if;
                end process;
                
            process(control,clock)
                      begin
                          if (clock'event and clock='1') then
                          if reg_enable='1' then
                          case control is
                                                      
                            when '1'=>
                            data_out<=mem(0);
                            when '0'=>
                            mem(0)<=data_in;
                            data_out<=(others=>'Z');
                            when others=>
                            data_out<=(others=>'Z');
                        end case;
                    end if;
                end if;
            end process;
        end behav;

 
Last edited by a moderator:

hi guys,

i am getting these errors and warnings in the transcript

# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
# Time: 0 ns Iteration: 0 Process: /tb_top/mapping/data/register_b/line__22 File: C:/Documents and Settings/Pranoy tm/Desktop/qwerty/register_new_collage.vhd
# Break in Process line__22 at C:/Documents and Settings/Pranoy tm/Desktop/qwerty/register_new_collage.vhd line 24


this is the program


Code VHDL - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    entity reg_new is
        port( control:in std_logic;
            data_in:in std_logic_vector(7 downto 0);
            reg_enable:in std_logic;
            data_out:out std_logic_vector(7 downto 0);
            a_zero_status:out std_logic;
            clock:in std_logic
            );
        end reg_new;
        
    architecture behav of reg_new is
        subtype cell is std_logic_vector(7 downto 0);
        type memarray is array(0 downto 0) of cell;
        signal mem:memarray;
        begin
            
            process(mem(0))
                begin
                    if(mem(0)="00000000") then
                        a_zero_status<='1';
                        else
                        a_zero_status<='0';
                    end if;
                end process;
                
            process(control,clock)
                      begin
                          if (clock'event and clock='1') then
                          if reg_enable='1' then
                          case control is
                                                      
                            when '1'=>
                            data_out<=mem(0);
                            when '0'=>
                            mem(0)<=data_in;
                            data_out<=(others=>'Z');
                            when others=>
                            data_out<=(others=>'Z');
                        end case;
                    end if;
                end if;
            end process;
        end behav;


in modelsim change
BreakOnAssertion = 3
or from gui gotto simulate - run time options-message sevrity "failure"
 

You posted a warning, not an error.

That error tells you that some signals are uninitialised when you're using the arithmetic functions. You can supress these specifically with simulation -> runtime options -> suporess messages from synopsis and ieee packages.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top