我不能把黑匣子系统发电机输出超过1位。的帮助!

8视图(30天)
你好,
我被困在这几天,所以我会很感激一些输入。我有硬件描述语言(VHDL)的代码我已经下降到一个系统产生设计黑匣子。如果输出是1位(扮演一个布尔或uFix1_0,它输出正确。如果它是任何超过只输出0所有碎片。如果我将信号分解成单个比特效果好。
我在Windows 7上运行Matlab2015b系统产生2015.4。下面是一个示例配置。m文件
函数BankGenerator_config (this_block)
%修订历史:
%
% 14 - 12月- 2015(13:40小时):
%原始代码被Xilinx的系统发电机后机器生成的解析
% C:\Users\hal346\ACM\Sysgen\ ACM_192x192_quarter \ BankGenerator.vhd
%
%
this_block.setTopLevelLanguage (硬件描述语言(VHDL)的);
this_block.setEntityName (“BankGenerator”);
%系统发电机必须假定你的实体有组合连通;
%如果它不,然后注释掉以下行:
this_block.tagAsCombinational;
this_block.add万博1manbetxSimulinkInport (“鳍”);
this_block.add万博1manbetxSimulinkInport (“罪”);
this_block.add万博1manbetxSimulinkOutport (“银行”);
this_block.add万博1manbetxSimulinkOutport (“bankChange”);
this_block.add万博1manbetxSimulinkOutport (“样本”);
bank_port = this_block.port (“银行”);
bank_port.setType (“UFix_1_0”);
bank_port.useHDLVector(假);
bankChange_port = this_block.port (“bankChange”);
bankChange_port.setType (“UFix_1_0”);
bankChange_port.useHDLVector(假);
sample_port = this_block.port (“样本”);
sample_port.setType (“UFix_2_0”);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
如果(this_block.inputTypesKnown)
%做输入类型检查、动态输出类型和一般设置在这个代码块。
如果(this_block.port (“鳍”)。宽度~ = 1);
this_block.setError (输入数据类型港口“鳍”一定宽度= 1。);
结束
this_block.port (“鳍”).useHDLVector(假);
如果(this_block.port (“罪”)。宽度~ = 1);
this_block.setError (输入数据类型港口“罪恶”一定宽度= 1。);
结束
this_block.port (“罪”).useHDLVector(假);
结束%如果(inputTypesKnown)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
如果(this_block.inputRatesKnown)
setup_as_single_rate (this_block“时钟”,“ce”)
结束%如果(inputRatesKnown)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
uniqueInputRates =独特(this_block.getInputRates);
%根据需要添加额外的源文件添加。
% | - - - - - - - - - - - - -
% |添加文件的顺序应该被编译。
如果两个文件“% |。vhd”和“b。vhd”包含的实体
% | entity_a entity_b, entity_a包含一个
% | entity_b类型的组件,正确的序列
% | addFile()调用将:
% | this_block.addFile (“b.vhd”);
% | this_block.addFile (“a.vhd”);
% | - - - - - - - - - - - - -
% this_block.addFile (");
% this_block.addFile (");
this_block.addFile (“BankGenerator.vhd”);
返回;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数setup_as_single_rate(块,clkname cename)
inputRates = block.inputRates;
uniqueInputRates =独特(inputRates);
如果(长度(uniqueInputRates) = = 1 & uniqueInputRates(1) = =正)
block.addError (的投入这一块不能都是常数。);
返回;
结束
如果(uniqueInputRates(结束)= =正)
hasConstantInput = true;
uniqueInputRates = uniqueInputRates (1: end-1);
结束
如果(长度(uniqueInputRates) ~ = 1)
block.addError (这个块的输入必须运行在单一税率。);
返回;
结束
theInputRate = uniqueInputRates (1);
我= 1:block.numS万博1manbetximulinkOutports
block.outport (i) .setRate (theInputRate);
结束
block.addClkCEPair (clkname cename theInputRate);
返回;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
谢谢你的帮助

答案(0)