Detecting contention in verilog?

Status
Not open for further replies.

mtwieg

Advanced Member level 6
Joined
Jan 20, 2011
Messages
3,895
Helped
1,311
Reputation
2,628
Reaction score
1,433
Trophy points
1,393
Activity points
29,922
Hello, currently I'm in a mixed signal CMOS class, and I'm writing verilog for a mixed signal device we'll eventually be implementing in Cadence. But to start with, I've been using active HDL-6.3 (just what we had lying around) for behavioral modelling, and I've mostly got things working within that environment. But one thing that really bothers me is that Active HDL does not seem to detect contention when setting registers. If I intentionally create contention in the verilog, then the compiler throws no errors or warnings. When I do behavioral simulation, it seems like it just chooses one of the contenders as the valid output (always resolves to a valid signal level, no X state or anything). I haven't defined any signal strengths so far. But I do see that the contention causes the simulated outputs to change, so the issue is there.

So basically, when there are contentions, Active-HDL isn't telling me in any way. Searching their help files for 'contention' yields absolutely no results. There is some sparse info on signal strengths, but only in regards to gate primitives (which I'm not using).

Years ago I had used verilog in Quartus II for cyclone FPGAs, and I recall that Quartus would always notify me of contention issues (not sure if it was in the verilog compiler or in the synthesis or simulation tools....), and I want that functionality for this project. Is this a limitation of Active-HDL 6.3? Or is contention something that is normally only checked at the synthesis stage of the design? When we eventually move to Cadence for development, how will contention issues be handled?

Thanks in advance.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…