问题描述
我有一个接受输入值的模块。我的输入是符号幅度形式,所以我试图检查输入是负数还是正数,然后调用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 (将#修改为@)