将向量 [10.0] 附加到整数的系统验证日志


module  rocket_move (   
input   logic   clk,
input   logic   resetN,
input    logic signed   [10:0]  spaceship_X,  
input    logic signed   [10:0]  spaceship_Y, 
output   logic signed   [10:0]  rocket_topLeftX, // output the top left corner 
output   logic signed   [10:0]  rocket_topLeftY  // can be negative 
);
// a module used to generate the  rocket trajectory.  
int x = spaceship_X[10:0];
int y = spaceship_Y[10:0];

我试图将火箭位图附加到我已经构建并工作的宇宙飞船位图的中心, spaceship_[10..0] 是在宇宙飞船的轴 X 和 Y 上保持位置的向量,我试图使用变量进行未来的计算,但我每次都收到错误,我试图用 spaceship_X[10..0] 进行计算,在这种情况下我没有收到错误,但也看不到火箭位图。提前致谢

"错误 (10748):rocket_move.sv(26) 处的 Verilog HDL 错误:变量声明赋值到 x 的表达式必须是常量">

在其声明时分配int将在时间为零处为其提供初始值。在非分配时,宇宙飞船 X/Y 值仍然是其类型的默认值。

假设 x/y 仅由宇宙飞船 X/Y 驱动,您的代码执行以下操作:

int x,y;
always_comb begin
x = spaceship_X[10:0];
y = spaceship_Y[10:0];
end 

或: 国际 x,y; 分配 x = spaceship_X[10:0]; 分配 y = spaceship_Y[10:0];

如果 x/y 具有相互赋值,则处理always_comb内的所有赋值条件。如果变量是同步的,则使用带有非阻塞赋值 (<=always_ff @(posedge clk)块。

最新更新