Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

A_en is 'X' problems

Hi there,

i have wrote some VHDL program in QuartusII (10.1)as custom instruction for NIOSII and implemented a SOPC system with Nios II. Then i go to the EDA (eclipse) generate a hallo world program and run it in Modelsim(6.4b). And everything is ok untill this error pop up in modelsim:

# 314830 ns: ERROR: NIOS_test_bench/A_en is 'x'# ** Failure: VHDL STOP# Time: 314830 ns Iteration: 1 Process: /test_bench/dut/the_nios/the_nios_test_bench/#MERGED#line__877,842,786,768,731,713,695,677,641,623,605,587,531,494 File: /home/Desktop/dct_transform/NIOS_test_bench.vhd# Break in Architecture europa at /home/Desktop/dct_transform/NIOS_test_bench.vhd line 598

and the relative Code is generated automatically by SOPC builder :

process (clk)

VARIABLE write_line5 : line;

begin

if clk'event and clk = '1' then

if std_logic'(reset_n) = '1' then

if is_x(std_ulogic(A_en)) then

write(write_line5, now);

write(write_line5, string'(": "));

write(write_line5, string'("ERROR: NIOS_test_bench/A_en is 'x'"));

write(output, write_line5.all & CR);

deallocate (write_line5);

assert false report "VHDL STOP" severity failure;

end if;

end if;

end if;

end process;

ok, please help!!!:(

17 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Forcing is a little extreme here. It is usualy best just to initialise the signals properly in the testbench.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    It works for me. Basically there is no clock or reset assertion unless I set them up myself.

    How do you initialise them in the testbench?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    For VHDL, you give them an Initial value:

    signal clk : std_logic := '0';
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Oh... that's not what I meant. :)

    I need to set the the clock toggling high and low and set the reset high to start with and then set it low.... Otherwise I get the A_en is 'X' problem.

    I didn't have this issue with SOPC.... I could run my simulations after entering the 's' macro into modelsim.... For some reason I have to setup my clocks and reset while simulating from Qsys...
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Okay I found the real problem and it was down to me. For some reason I had the jtag_debug_module_reset connected to the other reset lines. As soon as I disconnected this it ran correctly from the BFM.

    Now I have the Clock Source driving the clk and clk_reset to the rest of the system and the error is gone.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    This sounds like a bug to me if I understood your connectivity. You should be able to connect the JTAG debug module reset request to the Nios II processor. If you have the simulation up can you check what state that reset request is in, I'm suspecting it's driven to 'X' and causing this problem.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I had the JTAG debug module reset connected to all components' reset. I will check when I have a sec to do so....