Verilog assign statement help

soydios

Platinum Member
Mar 12, 2006
2,708
0
0
A little Verilog question that has been driving me up the wall: why does the following code produce undefined values in the assign statement and correct values in the display statement?

assign cache_uid = (transmit_uid & {uidw{transmit}}) | (receive_write_uid & {uidw{receive}}) | (outstanding_write_uid & {uidw{outstanding}}); $display("cache_uid=%h, try again=%h", cache_uid, (transmit_uid & {uidw{transmit}}) | (receive_write_uid & {uidw{receive}}) | (outstanding_write_uid & {uidw{outstanding}}));

And printed in the console display:
cache_uid=XX, try again=88
 

Cogman

Lifer
Sep 19, 2000
10,278
126
106
$display just spits out what is currently on the line. Your implementer (or whatever its called) is recognizing that some of the variables you are using for cache_uid are capable of being transient during the assign.

At the time that $display is being called, the values aren't unknown. That isn't always true.

I'm not an extreme verilog expert, so take my advice with a grain of salt
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
Verilog assigns aren't evaluated until a signal changes. They are more or less equivalent to:
Code:
always@(*) begin
  cache_uid <= signal & signal2 | signal3 ...
end

... But the behavior of $display is dependant in the interpreter, as Cogman pointed out. Try an initial block that sets the input signals to known states, assuming they are regs. If not, write a testbench module and assign them to known states.
 
Last edited:
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |