在 IF 语句中调用 verilog 模块

问题描述

我有一个接受输入值的模块。我的输入是符号幅度形式,所以我试图检查输入是负数还是正数,然后调用cordic模块。如果是负数,我需要在调用cordic模块之前交换x_i和y_i的值。

根据我对 verilog 的有限了解,我知道 IF 语句必须在 always 块中,但是当我将所有内容都放在 always @ 块中时,出现错误。那是我做了一些研究并发现模块不能在 IF 语句中调用的时候。在这种情况下我该怎么办?

P.S 抱歉我的错误解释,我只是 Verilog 的初学者。

module inp( 
  input wire clk,input wire rst,input signed [`XY_BITS:0]    x_i,input signed [`XY_BITS:0]    y_i,input signed [`THETA_BITS:0] theta_i,output wire signed [`XY_BITS:0]    x_o,output wire signed [`XY_BITS:0]    y_o,output wire signed [`THETA_BITS:0] theta_o,output wire signed [`THETA_BITS:0] op
  );

 
  //if(x_in[XY_BITS] == 0)
  
      cordic z1 (
      clk,rst,x_i[`XY_BITS-1:0],//Send all bits except sign bits
      y_i[`XY_BITS-1:0],//Send all bits except sign bits
      theta_i[`THETA_BITS:0],x_o[`XY_BITS:0],y_o[`XY_BITS:0],theta_o[`THETA_BITS:0]);
  
  //else if(x_in[XY_BITS] == 0)

      cordic z1 (
      clk,y_i[`XY_BITS-1:0],//Send all bits except sign bits
      x_i[`XY_BITS-1:0],theta_o[`THETA_BITS:0]);




endmodule

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)