错误输入uint8 simulink金宝app

14次浏览(最近30天)
塞拉
塞拉 2017年10月3日
评论道: Prateek女子2020年6月1日
大家好,
我想用Simulink设计一个简单的数字系统,目的是:金宝app
1.用Matlab仿真其行为
2.生成一个用于FPGA合成的VHDL代码。
我将使用相同的系统设计来模拟和生成,但在Matlab中模拟,我必须使用“double”数据类型的输入块(in1)来刺激我的电路,而不是生成VHDL代码,我必须使用in1的数据类型“uint8”。
例子:
A = [0 1 1 1 0 0 1 0 1];
in1 = uint8(一个);
如果我尝试在Matlab中模拟这个代码,我会有这个错误:
"不支持输入格式。金宝app可用的格式包括:(1)Simulink.SimulationDat金宝appa.Dataset对象,(2)一个双非复杂矩阵,(3)一个有或没有时间的结构,(4)一个MATLAB时间序列对象,(5)一个具有MATLAB时间序列对象的结构(用于总线输入)。所有格式都要求数据是有限的(不是Inf或NaN)。”
不可能使用相同的配置来模拟和生成HDL代码吗?
你能帮我个忙吗?

接受的答案

塞拉
塞拉 2017年10月5日
编辑:塞拉 2017年10月5日
嗨,解决方案是定义一个时间结构:
A = [0 1 0 1 0 1 0 1];in1 = uint8(一个);s.时间= 0;s.signals.values =三机一体;
并将配置中的输入改为“s”,而不是“in1”。
感谢每个人

更多的答案(3)

沃尔特·罗伯森
沃尔特·罗伯森 2017年10月3日
我不确定你在Simulink中使用的是哪个块,但是From Workspace要求时间金宝app信息是可用的 在某种程度上 .time可以像timeseries对象一样是显式的,也可以是具有适当字段的格式的结构。对于数组,时间是从数据的第一列获取的——但在这种情况下,数组必须是double,因为times必须是double。
从工作区块不能导入“纯数据”。From Workspace块用于交付数据 在某一特定时间 :它们是用于执行模型的块,而导入普通数据是过程语言中使用的东西。
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年10月3日
我对流程不是很熟悉。一般来说,将数据输入HDL或将数据输出HDL标记为信号。您通常会在HDL外部生成一些输入条件来触发操作,几个循环之后您将从HDL获得输出。有一个例子 //www.tatmou.com/help/hdlcoder/examples/running-an-audio-filter-on-live-audio-input-using-a-zynq-board.html

登录评论。


Bharath Venkataraman
Bharath Venkataraman 2017年10月4日
你可以试试 信号从工作区 块来代替。我觉得用你的数据会更好。

Kiran Kintali
Kiran Kintali 2017年10月5日
你能分享你的matlab代码或simulink模型吗?金宝app
1评论
Prateek女子
Prateek女子 2020年6月1日
大家好,我需要把这个问题贴在这里,因为我以前问过的问题没有人回答。很抱歉,但如果你能回答我会很感激。
大家好,我遇到了一个问题,在simulink中的matlab函数块与我的模型块的交互。金宝app下面你也可以找到图片。
我已经创建了一个matlab函数,有三个输入和一个输出。因为在matlab函数块中,我已经解了一个微分方程,它有复杂的表达式形式的例子。
(exp (sqrt (a / b)))
这将从函数块生成复杂数据类型的输出。当把这个传递给积分器时,积分器是我的工厂的输入,由于这个错误,我不能运行simulink金宝app
“不能将复数值传递到非复数位置”
我尝试改变积分器的数据类型,然后同样的事情发生在simulink中的其他块上。金宝app
我也尝试使用绝对值,这当然会给出实数,但结果是非常大的数字,并产生高的幅度。我真的需要帮助来解决这个问题。
有人能帮我一下吗?请
提前谢谢。

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!