前言
FPGA器件中通常嵌入一些用戶可配置的存儲塊,在編程過程中經常需要一些存儲器,如果使用邏輯單元存儲的話就會佔用大量邏輯資源,於是在內部嵌入了類似M4K,M9K等的存儲器,專門給FIFO、RAM、ROM等使用。下面以cycloneIVE器件爲例在Quartus中配置ROM的IP,以供模塊調用。
1、打開Quartus,選擇Tools--MegaWizard Plug-In Manager,點選create...
2、選擇單端口ROM,CycloneIVE以及Verilog HDL,選擇輸出模塊文件的目錄,輸入模塊文件的名字(rom)
3、memory block type選擇M9K,選擇的Auto的話,則默認爲M9K
4、勾選調‘q’ output port,輸出不加觸發器
5、選擇使用hex或mif文件初始化memory數據,由於modelsim對mif文件中的負數數據只支持二進制的數據格式,故通常使用hex文件,hex文件和mif文件的製作方法見《HEX和MIF格式波形文件的製作方法》。如果需要生成的是RAM IP可以勾選Allow In-System...,對RAM進行數據存取操作。
6、點擊下一步
7、點擊完成,生成rom.v模塊文件,可以在其他模塊中調用該memoryIP核。
仿真說明:在modelsim下對CycloneIVE的memory進行仿真的時,必須調用altera的庫文件並去除仿真的優化選項,同時需要將hex或mif文件放在modelsim的工程根目錄下,否則無法讀取到hex或mif文件。