Forum Discussion
Hi @KhaiChein_Y_Intel . Thank you for looking into this. I still do not understand how dataH becomes connected to iData.
VGAController.sv only has the below line:
dataH = iDataCopy[ 15 : 8 ];
My understanding will be wrong, but I am thinking that dataH is driven by the iDataCopy registers. iDataCopy is fed by the dataIncoming registers. This would mean that iData and dataH are seperated by 2 registers:
dataH <-- iDataCopy <-- dataIncoming <-- iData (dataBus/ioData)
Can you please explain to me how iData is a multiple driver of dataH? If iData was connected directly to dataH, I could understand this.
Sorry, but there is something small and fundamental here that I am not seeing/understanding.
@KhaiChein_Y_Intel I have looked at the RTL Viewer (something I tend to avoid) and I can see why the compiler error has been created. However.. the iDataCopy and dataIncoming registers are missing!
According to my VGAController.sv file, there should be a chain of components like this:
a) dataH <-- iDataCopy <-- dataIncoming <-- iData
But what I see inside the RTL Viewer is this:
b) dataH <-- iData
Where did iDataCopy and dataIncoming go??
Has the compiler has optimized my design in such a way that it no longer works?? How can I ensure that my chain is synthesized as I expected it to be in (a) above?