是否可以在内核端比较两个DFEVar值

时间:2016-05-07 01:47:26

标签: java

我正在使用Maxeler,MaxIDE。 我想在下一个周期使用输入流作为输出流。我希望在if条件下做出决定。但if条件不允许我比较两个DFEVar(s)。我想知道它有可能吗?

类型不匹配:无法从DFEVar转换为boolean

1 个答案:

答案 0 :(得分:2)

您无法使用常规if语句来比较两个DFE 瓦尔。
您应该使用三元运算符。有关更多详细信息,请参见下面的第2点。

您可以在Maxeler教程中找到详细说明。

来自: MaxCompiler:数据流编程教程

  

数据流计算中的条件

     

控制影响数据流计算的条件有三种主要方法:

     
      
  1. 全局条件:这些通常是大规模的操作模式,具体取决于输入pa-   rameters具有相对较少的选项。如果我们需要选择不同的计算   基于输入参数,这些条件影响设计的数据流部分,我们   只需为每个案例创建多个.max文件。某些应用程序可能需要进行某些转换才能使它们进入支持多个.max文件的最佳结构。   if (mode==1) p1(x); else p2(x);   其中p1和p2是使用不同.max文件的程序。
  2.   
  3. 本地条件:条件取决于计算的本地状态。   if (a > b) x=x+1; else x=x − 1;   这些可以转换为数据流计算   x = (a > b) ? (x+1) : (x − 1);
  4.   
  5. 条件循环:如果我们不知道需要多长时间迭代一个循环,我们需要知道   稍微讨论一下循环的行为,通常是循环迭代次数的值。一旦我们   知道我们可以期望的值的分布,数据流实现管道最优   迭代次数并将每个迭代块视为SLiC接口的操作,   由CPU(或其他一些内核)控制。
  6.         

    ternary-if运算符(?:)在两个输入流之间进行选择。要在多个之间进行选择   W两个流,control.mux方法比嵌套的ternary-if语句更容易使用和读取。

相关问题