Forum Discussion
Altera_Forum
Honored Contributor
17 years ago --- Quote Start --- I need this big ROM to implement look-up table and I have to use it in the process --- Quote End --- It can't be used in a process and I don't believe that you have to. Basically, the internal ROM is a synchronous hardware function, it uses a clock and the read data is delayed one clock cycle related to read address. Your design may need to implement a pipeline to consider the said ROM timing. You assign a value to the ROM address signal and evaluate the result in the next cycle in your process. But the ROM instance has to reside outside the process. So far the general point. But you are actually using 10 ROM instances by calling the ROM procedure in a loop. Cause each ROM has a different input address, they must exist in parallel. By utilizing the dual-port ROM option, 5 physical ROMs are needed. That means, you have an array of 10 address variables and get 10 output variables ttfs(). A for generate loop can be used to instantiate 5 dual-port ROMs connected to the respective signals. Looking at your previous code, I'm confident, that you are able to elaborate the outlined structure. Otherwise, please ask.