Board logo

标题: 今天解决了一个很基础的问题 [打印本页]

作者: wxg1988    时间: 2013-10-27 22:02     标题: 今天解决了一个很基础的问题

今天解决了一个很基础的问题
在论坛里看到有人提问如下代码报错: 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这样才行哈哈,原来竟是一个小小的`符号惹的祸




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0