勇敢的芯伴你玩轉Altera FPGA連載82:FPGA片內ROM實例之功能仿真與在線調試 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD ![]() Quartus II工程中,點擊菜單“Tools à Run Simulation Tool à RTL Simulation”進行仿真。當然了,在這之前,這個工程的仿真測試腳本以及在Quartus II中的設置都已經就緒了。 接著,如圖9.31、圖9.32和圖9.31所示,Modelsim中我們可以查看讀ROM的波形。 ![]() 圖9.31 ROM仿真波形1 ![]() 圖9.32 ROM仿真波形2 ![]() 圖9.33 ROM仿真波形3 這里需要注意,rom_addr出現新地址時,rom_data對應的數據要延時一個時鐘周期才會出現。以最后一個圖為例,當rom_addr = 0x01時,rom_data對應的數據時0x22,比地址出現晚一個時鐘周期。 連接好下載線,給CY4開發板供電。 點擊菜單“Tools à SignalTap II Logic Analyzer”,進入邏輯分析儀主頁面。 在右側的“JTAG China Configuration”窗口中,建立好USB Blaster的連接后,點擊“SOF Manager”后面的Programmer按鈕進行下載。 如圖9.34所示,在“trigger”下面羅列了我們已經添加好的需要觀察的信號,尤其是在rom_addr信號的TriggerConditions一列,我們設置了值00h,表示rom_addr的值為0時我們將觸發采集。另外,我們用鼠標點擊選中Instance下面的唯一一個選項,然后單擊InstanceManager后面的運行按鈕,執行一次觸發采集。 ![]() 圖9.34 觸發信號 波形如圖9.35、圖9.36所示。大家可以對照我們的ROM初始化文件rom_init.mif中對應每個地址的數據與我們這里采集的是否一致。當然了,大家必須注意,地址rom_addr所對應的數據會相應滯后2個時鐘周期后出現。例如,地址01h的數據不是11h,而是22h,以此類推。 ![]() 圖9.35 ROM實例在線邏輯分析儀采集波形1 ![]() 圖9.36 ROM實例在線邏輯分析儀采集波形2 |