My gatelevel design seems to differ from the RTL d...
# openlane
j
My gatelevel design seems to differ from the RTL design. I am attaching an image from the exact same moment in simulation where the traces of the instruction and data ram are shown for both (data ram only has addr0 and din0). The CPU core is executing the program shown in the window, where the simulation waits for 0x6AB10000 to be written to dram. In RTL this seems to work fine, but gatelevel differs. Is there any reason why the gatelevel behavior would differ from the RTL?
a
Yout picture is not very clear. Cant see any numbers
j
image.png
image.png
is this better?
a
Same. The numbers are very blurry
j
I can see them fine on my PC. Not sure what is going on
Did you try zooming in?
a
Hmm. Seems slack issue they are fine if downloaded
First I would check if you are viewing the nets you want to. I do not see what are these nets and to what they are attached
j
These are the ports of the two sram macros
Since everything from processor core is flattened, synthesized and renamed I am having trouble finding any other appropriate nets. These nets however, since they are predefined macros, stay the same for both RTL and GL
If anyone has a similar problem, I was able to solve this. The reason this was happening is because in my code somewhere I had a reg that was included in two always blocks. I picked up on this using by verilator as a linting tool.
👍 1
a
this is always a good check, since synthesis tools and simulators tend to make different assumptions about loosely-specified verilog/behaviour
nice work