Close

Asynchronous woes

A project log for One-instruction TTL Computer

A breadboard-able computer which uses only a single instruction - MOVE

justin-davisJustin Davis 05/01/2017 at 17:332 Comments

My RAM is asynchronous which means it can be written/read independent from the clock. This gives me trouble in my VHDL simulation. I found out that Vivado doesn't indicate when a signal glitches. I know Modelsim does. I was seeing my RAM contents getting changed at strange addresses when the write line was not changing. I knew this could be a problem since the control lines going into my RAM come out of combinational logic. Normally this is a big no-no, but I'm trying to cut corners. I may do something like gating the write signal with the clock, so it only changes on a certain clock level. This does fix the glitching in simulation. Gating with the clock is also a big no-no, but I'm still looking at bending the rules to keep things simple and not add too much extra logic.

However, I was also expecting Vivado to tell me when a signal glitches. Of course, it's possible there's an option to set, but I don't see a whole lot of options. I am thinking of trying out GHDL, but that's another investment of time to set it up and learn. If I get too many more problems with Vivado, I will start looking at jumping ship.

Discussions

Yann Guidon / YGDES wrote 05/01/2017 at 21:01 point

Jump to GHDL ASAP then, you don't want to accumulate too many setbacks with a proprietary system...

  Are you sure? yes | no

Justin Davis wrote 05/02/2017 at 16:54 point

HOWEVER I'm also considering synthesizing my design into an FPGA to test it out.  But that doesn't mean I can't still use GHDL to simulate.  I used to use Modelsim for simulation and vendor tools for synthesis when I did this for work.

  Are you sure? yes | no