首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

今天解决了一个很基础的问题

今天解决了一个很基础的问题

今天解决了一个很基础的问题
在论坛里看到有人提问如下代码报错: define plus 3'd0 `define minus 3'd1 `define band 3'd2 `define bor 3'd3 `define unegate 3'd4 module alu(opcode,out,a,b); input[2:0]opcode; input [7:0]a,b; output[7:0]out; reg[7:0]out; always@(opcode or a or b) begin case(opcode) plusut=a+b; minusut=a-b; bandut=a&b; borut=a|b; unegateut=~a; defaultut=8'hx; endcase end endmodule 显示错误 :Error (10161): Verilog HDL error at alu.v(14): object "plus" is not declared
首先plus 3'd0这样的应该为3'b0,否则和后面的t[2:0]opcode;位数无法对应语法没有什么问题,但是编译确实提示错误把`define 改成reg或者 parameter肯定没问题 最后我明白了,`define unegate 4定义的变量,在引用时也要`plus这样才行哈哈,原来竟是一个小小的`符号惹的祸
返回列表