實驗一 測試
實驗內容
在simulink創建測試模塊,通過測試模塊產生信號,再傳送到FPGA,FPGA讀出后再將信號無處理傳送回simulink進行顯示。由此來測試整個硬件在環的功能是否正常,並且熟悉整個基礎開發流程。
創建模型
創建開發板的信息
在Matlab的指令窗口輸入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe(修改為軟件安裝的路徑)')。
Simulink菜單操作 Verification Wizards -> FPGA-in-the-Loop (FIL)....
或Matlab 提示符輸入:filWizard。
在實驗開始之前,需要根據大西瓜開發板的設計原理圖,對開發板的信息進行配置,主要是對時鍾信號和復位信號、采用的FIL的通信接口進行配置,如下圖所示。
在board name的選項中選擇創建新的用戶板卡。連接方式采用JTAG進行連接,大西瓜FPGA板卡上沒有以太網,由此采用JTAG接口。
在板卡的配置信息窗口中,首先進行板卡上FPGA芯片信息的配置,如下圖所示。
設置板卡的名字logic_board,FPGA的廠商為Altera,芯片為cyclone IV E,選擇對應的芯片類型 EP4C6E22C8,JTAG鏈位置默認。
JTAG接口類型,時鍾信號的頻率、引腳號、時鍾類型,復位信號的引腳號,復位的電平信息的設置,如下圖所示。
保存板子的配置信息,在接下來的實驗均要使用到該信息文件。
創建simulink模型
在board name中選擇前面配置好的板卡信息,板卡名為logic_board,選擇JTAG接口,點擊next。
添加RTL文件,即設計的verilog或者是VHDL設計的代碼文件,並將該文件設置為頂層文件。
選擇自動根據頂層文件生成IO,各個IO的詳細信息在欄目中,IO的類型的也是很重要的,在以后的設計中要主要IO類型選擇的正確。同時對復位信號的電平和時鍾使能信號的電平進行設置。如下圖所示。
輸出信號類型,這里可能會和前面的IO混淆,其實這里的信號是前面IO中由FPGA輸出到simulink中的信號,這里的信號是dataout,該信號輸出到simulink中,信號的位寬為8bit。
生成simulink模型和硬件模型,輸出的文件類型和文件所在文件夾如下圖所示。
當出現上圖中,紅色標注的信息時,simulink模型和硬件模型創建成功,接下來進行simulink模型的設計和硬件的下載驗證。
Simulink模塊設計
RTL代碼如下所示:
LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL;
ENTITY fil_led IS port( datain : in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 downto 0); clk: in std_logic; clk_en: in std_logic; reset: in std_logic); end entity;
architecture rtl of fil_led is begin
process(clk) begin if clk'event and clk='1' then if reset = '0' then dataout <= (others => '0'); elsif clk_en = '1' then dataout <= datain; end if; end if; end process;
end rtl; |
把Matlab產生的信號,通過JTAG接口輸出到FPGA然后,FPGA再通過JTAG傳送到Matlab,用於測試整個環路。
添加鋸齒波產生模塊,如下圖所示:
設置鋸齒波模塊的參數。
添加示波器模塊,如下圖所示。
修改運行的時間
雙擊fil_test模塊,下載硬件sof文件(由此,該實驗中硬件模型沒有修改,由此,直接選擇默認的sof保存路徑,接下來的實驗中,由於硬件模型修改了,所以直接在Quartus II工程中下載)。
實驗現象
雙擊示波器后出現
大西瓜FPGA-->https://daxiguafpga.taobao.com
博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!
每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。