实验二LED
实验内容
????在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对信号进行分配引脚。
创建模型
????在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。
?
硬件设计
由于led是从开发板上进行输出的,所以需要对FPGA设计工程进行修改,将led信号从最底层的模块进行映射到顶层形成引脚信号,然后根据FPGA板的引脚分配进行引脚约束,最后进行综合。
????由此需要在底层rtl将位选信号和段选信号进行映射到顶层,需要将最顶层的信号,一层一层地映射出来,由底至顶的顺序如下:fil_led_wrapper、FILCore、fil_led_fil。
????在FILCore文件中进行如下修改(红色线标注)。
?
?
????在fil_led_fil文件中进行如下修改,红色线标注。
????引脚配置采用脚本文件进行配置。
????综合结果
Simulink模块设计
实现代码
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,用于测试整个环路。
修改运行的时间
下载硬件sof文件
?
双击示波器后出现