主要内容

HDL编码器中的可复位子系统支持™金宝app

此示例演示如何在HDL编码器中使用可重置子系统。

可重置子系统的简介

可重置的子系统是一个子系统,它将基于布尔控制信号重置子系统层次结构中的所有状态。它在不需要将复位信号接线到Simulink中的每个状态块而不需要将复位信号接线。金宝app此功能允许重置块,例如MATLAB功能块,其没有可用的重置端口。为了支持金宝appHDL编码器,仅在一个可恢复的子系统内被支持同步的statecontrol.地区。

load_system('hdlcoder_resettable_subsystem');Open_System(“hdlcoder\u可重置子系统/DUT/可重置子系统”); 设置参数('hdlcoder_resettable_subsystem'“模拟命令”'更新');

重置块

可重置的子系统类似于启用的子系统或任何其他Simulink条件执行的子系统,因为它具有它内部的专用重置端口块。金宝app该控件端口块具有若干触发器类型可用。HDL编码器支持“级金宝app别保留”触发类型。

Open_System('hdlcoder_resettable_subsystem / dut /可重置子系统/ localreset');

可重置的子系统对生成的HDL代码效应

可重置子系统允许将子系统内部状态为初始值的所有块的状态重置为初始值。在生成的HDL代码中,每个设计延迟(Simulink中明确建模的延迟)将添加一个重置。硬件实现延迟(如管道延迟)不会重置。重置信号是一个同步信号,是与全局复位信号无关。金宝app

close_system('hdlcoder_resettable_subsystem / dut /可重置子系统/ localreset'); makehdl('hdlcoder_resettable_subsystem / dut'); 类型hdlsrc/hdlcoder\u可重置子系统/DUT.vhd
###为“hdlcoder\u可重置子系统/DUT”生成HDL使用模型的配置集hdlcoder_resetable_subsystem获取HDL代码生成参数在“hdlcoder_resetable_subsystem”模型上运行HDL检查开始编译模型“hdlcoder_resetable_subsystem”…###在“hdlcoder_resetable_subsystem”模型上应用HDL优化…#开始模型生成模型生成完成开始“hdlcoder_resetable_subsystem”的VHDL代码生成将hdlcoder_resetable_子系统/DUT/resetable子系统/离散FIR滤波器作为hdlsrc/hdlcoder_resetable_子系统/离散FIR_Filter.vhd进行工作将hdlcoder_resetable_子系统/DUT/resetable子系统/MATLAB Delay Fcn作为hdlsrc/hdlcoder_resetable_子系统/MATLAB_Delay_Fcn.vhd将hdlcoder_resetable_子系统/DUT/resetable子系统作为hdlsrc/hdlcoder_resetable_子系统/resetable_subsystem.vhd进行工作将hdlcoder_resetable_子系统/DUT作为hdlsrc/hdlcoder_resetable_子系统/DUT.vhd进行工作生成程序包文件hdlsrc/hdlcoder_resetable_subsystem/DUT_pkg.vhd.###“hdlcoder_可重置_子系统”的代码生成已完成。#创建HDL代码生成检查报告file:///tmp/Bdoc21b_1757077_221352/tp19d50da1/hdlsrc/hdlcoder_resettable_subsystem/DUT_report.html ###HDL检查“hdlcoder_resetable_subsystem”(HDL可重置#u subsystem),包括0个错误、0个警告和0条消息。#HDL代码生成完成。---------------------------------------------------------------文件名:hdlsrc/hdlcorder\u resetable\u subsystem/DUT.vhd--创建时间:2021-09-01 16:22:11----由MATLAB 9.11和HDL编码器3.19生成----------------------------------------------------------------------------------------------速率和时钟详细信息----------------------------------------------------------------模型基本速率:1--目标子系统基本速率速率:1----时钟启用采样时间----------------------------------------------------------------ce\U out 1-------------------------------------------------------------------------------------------输出信号时钟启用采样时间----------------------------------------------------------------Out1 ce\U out 1--Out2 ce\U out 1----------------------------------------------------------------->---------------------------------------------------------------------模块:DUT--源路径:hdlcoder\U resettable\U子系统/DUT--层次结构级别:0---------------------------------------------------------------图书馆IEEE;使用IEEE.std_logic_1164.ALL;使用IEEE.numeric_std.ALL;实体DUT为端口(clk:标准逻辑中;复位:标准逻辑中;clk:标准逻辑中;LocalReset:标准逻辑中;In2:标准逻辑中向量(7向下至0);--int8 In3:标准逻辑中向量(7向下至0);--int8 In4:标准逻辑中向量(7向下至0);--int8 ce:标准逻辑中向量:输出标准逻辑;Out1:输出标准逻辑;Out2:输出标准逻辑中向量(32向下至0)——sfix33_En20);末端DUT;DUT的体系结构rtl是——组件声明组件可重置子系统端口(clk:标准逻辑中;重置:标准逻辑中;enb:标准逻辑中;In1:标准逻辑中向量(7到0);——int8 In2:标准逻辑中向量(7到0);——int8 In3:标准逻辑中向量(7到0)--int8 LocalReset:IN-std_logic;Out1:OUT-std_logic;Out2:OUT-std_logic_vector(32向下到0)--sfix33_En20;末端组件;——所有的组件配置语句:可重置_子系统使用实体工作。可重置_子系统(rtl);--信号可复位子系统输出1:标准逻辑;信号可复位子系统输出2:标准逻辑向量(32向下至0);--ufix33开始u_可重置_子系统:可重置_子系统端口映射(clk=>clk,reset=>reset,enb=>clk_启用,In1=>In2,--int8 In2=>In3,--int8 In3=>In4,--int8 LOCALESET=>LocalReset,Out1=>Resettable_子系统Out1,Out2=>Resettable_子系统Out2--sfix33_En20);ce_out<=clk_启用;Out1<=可重置的子系统Out1;Out2<=可重置的子系统Out2;结束rtl;

MATLAB功能块不支持显式重置端口。当放置在可重置子系统中时,HDL编码器将生金宝app成同步外部重置信号,以控制函数内持久变量的重置。

函数y=fcn(u)
持续状态;
如果是isempty(州)状态= fi(0,1,33,20);结尾
y=状态;状态=u;结束
类型hdlsrc / hdlcoder_resettable_subsystem / matlab_delay_fcn.vhd
-  -------------------------------------------------------------  -   - 文件名:hdlsrc / hdlcoder_resettable_subsystem / matlab_delay_fcn.vhd  - 创建:2021-09-01 16:22:11  - 由Matlab 9.11生成和HDL编码器3.19  -   -   -  ------------------------------------------------------  -  -------------------------------------------------------  -   - 模块:MATLAB_DELAY_FCN  - 源路径:HDLCODER_RESETTABLE_SUBSYSTEM / DUT /可恢复子系统/Matlab Delay FCN  - 层次结构级别:2  -   -   -   -   -   -   -   -   -   -   -   -   -   -   ----------------------------图书馆IEEE;使用IEEE.STD_LOGIC_1164.ALL;使用ieee.numeric_std.all;实体matlab_delay_fcn是端口(clk:std_logic;重置:在std_logic; eNB:在std_logic; u:在std_logic_vector(32 downto 0);  -  sfix33_en20 localreset:在std_logic; y:out std_logic_vector(32 downto 0) -  sfix33_en20);结束matlab_delay_fcn;MATLAB_DELAY_FCN的架构RTL是 - 信号信号U_SINGED:签名(32 Downto 0); -- sfix33_En20 SIGNAL y_tmp : signed(32 DOWNTO 0); -- sfix33_En20 BEGIN u_signed <= signed(u); MATLAB_Delay_Fcn_1_process : PROCESS (clk, reset) BEGIN IF reset = '1' THEN y_tmp <= to_signed(0, 33); ELSIF clk'EVENT AND clk = '1' THEN IF enb = '1' THEN IF LocalReset = '1' THEN y_tmp <= to_signed(0, 33); ELSE y_tmp <= u_signed; END IF; END IF; END IF; END PROCESS MATLAB_Delay_Fcn_1_process; y <= std_logic_vector(y_tmp); END rtl;

在为MATLAB功能块中实现的延迟生成的VHDL代码中添加了一个名为“LocalDelay”的同步延迟信号。