zoukankan      html  css  js  c++  java
  • FPGA与simulink联合实时环路系列——实验二LED

    实验二LED

    实验内容

        在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对信号进行分配引脚。

    创建模型

        在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:altera11.0quartusinquartus.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文件

    双击示波器后出现

    实验现象

    大西瓜FPGA-->https://daxiguafpga.taobao.com

    博客资料、代码、图片、文字等属大西瓜FPGA所有,切勿用于商业! 若引用资料、代码、图片、文字等等请注明出处,谢谢!

    每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

  • 相关阅读:
    C++ 项目和资源导引
    C++ 类再探
    C++ 语句函数再探
    leetcode-174. Dungeon Game 地下城游戏
    34. Find First and Last Position of Element in Sorted Array + 二分
    leetcode-27. Remove Element删除元素
    git 使用入门
    MySQL数据库的启动与停止
    C++类型转换
    C++ 获取对象类型
  • 原文地址:https://www.cnblogs.com/logic3/p/5616549.html
Copyright © 2011-2022 走看看