Forum Discussion
Altera_Forum
Honored Contributor
15 years agoA_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
Honored Contributor
'X' usually occurs when you drive one signal from multiple places. You'll have to look at the drivers of A_en.
- Altera_Forum
Honored Contributor
This typically happens when unknown instructions (due to uninitialized memory) are fetched by the master. Make sure your code RAM is being properly initialized for the simulation flow.
I recommend reading though this document to make sure you are not missing a step: http://www.altera.com/literature/an/an351.pdf - Altera_Forum
Honored Contributor
--- Quote Start --- 'X' usually occurs when you drive one signal from multiple places. You'll have to look at the drivers of A_en. --- Quote End --- thx for reply, but what is A_en, i didn't define this signal...:( - Altera_Forum
Honored Contributor
--- Quote Start --- thx, i'll read it through.:) - Altera_Forum
Honored Contributor
It's a pipeline enable for the 'Align' stage of the processor pipeline. The processor simulation files are coded to catch cases where unknown values trickle through the pipeline.
- Altera_Forum
Honored Contributor
Hi there,
i go through that procedure in the handbook, and i have found the mem initial file(including hex and dat files). but it still doesn't work. - Altera_Forum
Honored Contributor
ok, problems are resolved, thx guys
- Altera_Forum
Honored Contributor
Hello
I have the same problem , can you explain what you did to fix it please. Regards Ben - Altera_Forum
Honored Contributor
Hi, Ben
Unfortunately, i didn't really "solve" that problem. I don't know what i may messed up something during the project. i just delete the whole project except the source code which i 've wrote, and regenerate it from the very beginning, and the error is gone. i don't know, maybe you should try this, but before you delete anything, i suggest you check your development process according to the Altera Handbook carefully. i hope that can help you. best regards - Altera_Forum
Honored Contributor
Cured by setting up reset and clk signals correctly before simulating. I left them in the default state and they need forcing..
for example force reset 1, 0 40 force clk 1, 0 10 -repeat 20 This is true for Qsys simulations at least.