微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求教Verilog 代码问题

求教Verilog 代码问题

时间:10-02 整理:3721RD 点击:

以下的这段代码在Modelsim下compile之后report sb.v(13): Illegal left-hand side in continuous assignment.请问为何?

另外:如果在always语句内存在局部声明变量,在modelsim编译时会报错,这是为什么?
module sb (me,sl,data);
input [1:3] sl;
input data;
output [7:0] me;
wire  [7:0] me;
wire [1:3] sl;
wire data;
  
  assign me [sl]=data;
endmodule

    wire 不能这么用, 如果定义寄存器是可以的,可以考虑改为如下
reg [7:0] me;
always @(posedge clk)
   me[sl] <= #1 data;

ls 说的对

    正解,学习了。

如果在always语句内存在局部声明变量,在modelsim编译时会报错,这是为什么?



    在 begin后面加一个随意的标识符,然后就可以begin 。end之间声明局部变量了

在这里纠正一个个人习惯问题 数据位宽最好是从高到低, 如代码中【1:3】最好写成【2:0】

问题已解决,谢谢楼上各位,呵呵。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top