主要内容

复杂数据类型的支持金宝app

宣布复杂的信号

以下的MATLAB®代码声明几个当地复杂的变量。xy声明由复杂的常数赋值;z使用使用创建的吗复杂的()函数。

函数[x, y, z] = fcn%创建8位复杂的常数x = uint8 (1 + 2);y = uint8 (3 + 4 j);z = uint8(复杂(5、6));

以下代码示例展示了硬件描述语言(VHDL)®从之前的MATLAB代码生成的代码。

实体complex_decl端口(std_logic clk:;在std_logic clk_enable:;重置:std_logic;x_re: std_logic_vector(7报纸0);x_im: std_logic_vector(7报纸0);y_re: std_logic_vector(7报纸0);y_im: std_logic_vector(7报纸0);z_re: std_logic_vector(7报纸0);z_im: std_logic_vector(7报纸0));complex_decl结束; ARCHITECTURE fsm_SFHDL OF complex_decl IS BEGIN x_re <= std_logic_vector(to_unsigned(1, 8)); x_im <= std_logic_vector(to_unsigned(2, 8)); y_re <= std_logic_vector(to_unsigned(3, 8)); y_im <= std_logic_vector(to_unsigned(4, 8)); z_re <= std_logic_vector(to_unsigned(5, 8)); z_im <= std_logic_vector(to_unsigned(6, 8)); END fsm_SFHDL;

如这个例子所示,复杂的输入、输出和MATLAB中声明的局部变量代码扩展到真实和虚构的信号。这些派生的命名约定的信号有:

  • 真正的组件名称相同的原始复杂信号,后缀为默认字符串“_re”(例如,x_re)。指定一个不同的后缀,设置复杂的实数部分后缀选项(或相应的ComplexRealPostfixCLI属性)。

  • 虚构的成分有相同的名称作为原始复杂信号,后缀为字符串“_im”(例如,x_im)。指定一个不同的后缀,设置复杂的虚部后缀选项(或相应的ComplexImagPostfixCLI属性)。

一个复杂的变量声明在MATLAB代码仍然复杂程序的整个长度。

复杂的和真正的信号之间的转换

MATLAB代码提供领域的一个复杂的信号通过真正的()图像放大()功能,如以下代码所示。

函数[Re_part, Im_part] = fcn (c)%输出复杂输入信号的实部和虚部Re_part =实际(c);Im_part =图像放大(c);

高密度脂蛋白编码器™支金宝app持这些构造,访问相应的真实和虚构的信号组件生成的HDL代码。在接下来的Verilog®代码示例,MATLAB复杂信号变量c平到信号c_rec_im。这些信号被分配到输出变量Re_partIm_part,分别。

模块Complex_To_Real_Imag (clk clk_enable,重置,c_re、c_im Re_part, Im_part);输入时钟;输入clk_enable;输入重置;输入(握)c_re;输入(握)c_im;输出(握)Re_part;输出(握)Im_part;/ /输出复杂的输入信号的实部和虚部分配Re_part = c_re;分配Im_part = c_im;

金宝app支持向量的复数

您可以生成向量的复数HDL代码。像标量复数向量的复数是夷为平地到向量生成的HDL代码的实部和虚部。

例如下面的脚本t是一个复杂的矢量基本类型的变量ufix4和大小[1,2]

函数y = fcn (u1, u2) t = [u1 u2];y = t + 1;

在生成的HDL代码的变量t分为实部和虚部与相同的双元素数组中。。

变量t_re: vector_of_unsigned4 (0 - 3);变量t_im: vector_of_unsigned4 (0 - 3);

复数的实部和虚部都有相同的向量类型的ufix4,如以下代码所示。

vector_of_unsigned4类型是数组(自然范围< >)的无符号(3报纸0);

复杂的基于矢量的操作(+,- - - - - -,*等)同样分解向量的实部和虚部。独立操作执行等元素的向量,经过MATLAB语义向量的复数。

硬件描述语言(VHDL)和Verilog代码从MATLAB生成代码,复杂的矢量港口总是被夷为平地。如果复杂的矢量变量出现在输入和输出,真实和虚构的向量组件进一步夷为平地标量。

在以下代码中,u1u2标量复数和吗y是一个向量的复数。

函数y = fcn (u1, u2) t = [u1 u2];y = t + 1;

这个生成以下港口声明一个硬件描述语言(VHDL)实体的定义。

实体_MATLAB_Function端口(std_logic clk:;在std_logic clk_enable:;重置:std_logic;u1_re: vector_of_std_logic_vector4 (0, 1);u1_im: vector_of_std_logic_vector4 (0, 1);u2_re: vector_of_std_logic_vector4 (0, 1);u2_im: vector_of_std_logic_vector4 (0, 1);y_re: vector_of_std_logic_vector32 (0 - 3);y_im: vector_of_std_logic_vector32 (0 - 3));_MATLAB_Function结束;

另请参阅

|

相关的话题