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.

vhdl testbench strange problem with a ripple carry select

Status
Not open for further replies.

tj.diego

Junior Member level 2
Joined
Apr 21, 2011
Messages
22
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,414
[SOLVED] vhdl testbench strange problem with a ripple carry select

Hi all,
i have a strange problem with a testbench, if i define the inputs separately i have no problem,but if i use two for loops to have more combinations easly the second input BB9 is equal to "UUUUUUUUUU" like the output!
could you have a look to these files?

thanks a lot in advance

the circuit is a ripple carry select (9bits)View attachment rcsel.vhd.txtView attachment rcselTB.vhd.txt

ps i have also a doubt about the sensitivity list of the process on the mux, if i have a empty sensitivity list, it doesn't work!
 
Last edited:

Hi, try running after commenting the line BB9<="000000000";.
This will avoid multiple driven issue.
 

sensitivity lists tell the simulator which signals to monitor to change the output. An empty sensitivity list will mean outputs depend on no inputs, therefore it will never change. The sensitivity list only applies to simulation, it is ignored in synthesis so you must be careful your sensitivity list is complete.
 

Hi,
The sensitivity lists is used to compute the new value of the output when the signal in the sensitivity list changes. If no sensitivity list is used then the process runs continuously without waiting for any input. So actually it will keep on changing and if you did not had any wait statements or time delays in your process then the simulator will hang as this process will be continuously executed forever.
 

Hi, try running after commenting the line BB9<="000000000";.
This will avoid multiple driven issue.

i tried it, but it didin't solve the problem! i still have the output and the B input equal to "UUUUUUUUU"!!!
thanks all for join the thread
 

"U" means that the source of the signal is not driven. Check that is connected to a signal thats driven.
 

"U" means that the source of the signal is not driven. Check that is connected to a signal thats driven.

the input B is driven in the testbench from the signal BB9, if i use direct assignment like BB9<="000010000"; it works, but if i use the for loop to do all the combinations, it seem to be floating...it doesn't have any sense for me...i checked the code several time but i can't understand!
 

In the code you posted, the BB9 assignments inside the loop happen after AA9 has been assigned 256 times. So on the first iteration (iee 256 x 50ns) BB9 will be "UUUU" because it has not bee assigned yet. Put the BB9 assignment before the AA9 loop.
 
In the code you posted, the BB9 assignments inside the loop happen after AA9 has been assigned 256 times. So on the first iteration (iee 256 x 50ns) BB9 will be "UUUU" because it has not bee assigned yet. Put the BB9 assignment before the AA9 loop.

before the loop i set the signal BB9 to 0, so in the first iteration just AA9 should changes, but this instruction BB)<="000000000" seem to be useless!
what do you suggest to do all the combinations?!

---------- Post added at 16:31 ---------- Previous post was at 16:26 ----------

SOLVEEEEDDD!!!
the instruction BB9 <= "000000000" ; must be into the process!!!
thanks a lot to all!!! :)
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top