vivado中的4位Ripple Carry加法器测试平台

时间:2018-04-23 11:48:47

标签: if-statement syntax vivado

以下代码适用于4位纹波进位加法器测试平台。它给了我8个语法错误,4个接近结束,4个接近其他。我不知道这些错误指的是什么,需要解决什么?

HTMLInputElement

2 个答案:

答案 0 :(得分:0)

下次还请列出语法错误。

然而,在这种情况下,显而易见的是:那里有额外的end语句。语法是:

if (condition)
    statement_or_block;
else
    statement_or_block;

另外(谢谢凯文!)你的显示器在结尾处缺少分号 你的顶级测试平台应该没有端口。所有信号都是本地信号:

module rca_dataflow_tb;
reg [3:0] a;
reg [3:0] b;
// etc.

另外我建议您使用条件AND而不是逻辑AND:
if (s == 4'b0010 && cout == 1'b0)

<子> 顺便说一句,如果您首先将表达式转换为单个位,则可以使用逻辑AND:
if ( (s==4'b0010) & (cout==1'b0) )

答案 1 :(得分:0)

您的代码中存在一些非常基本的错误。

  1. 您未在所有4个;语句
  2. 的末尾使用$display
  3. 您不能将reg用作端口声明的类型。事实上,由于这是你的TB,所以没有端口。您只需执行module rca_dataflow_tb();并将所有reg语句移到
  4. 之外
  5. 使用reg数据类型输入DUT,wire输入DUT输出
  6. 这应解决问题。如果您仍然遇到问题,请告诉我