这是我第一次访问stackoverflow.com并且是verilog编码的新手。我可能会错误地使用某些术语,所以如果我这样做,请纠正我,以便我在以后的帖子中更清楚。
我正在使用Altera FPGA板,其中有7个LEDG灯可以触发和关闭。对于我的项目,我正在制作一个BCD加法器,当BCD值不是0-9时LEDG [7]打开。但是,我不想宣布输出[6:4]。 LEDG [3:0]显示两个输入总和的二进制等值。
我以为我可以使用两个单独的声明语句,但它告诉我LEDG已经被声明了它。然后我尝试用括号组合它,但它也抱怨这一点。有没有办法简化我的代码。以下是我尝试过的例子。
示例1:
module BCD (..., LEDG, ...); output reg [3:0] LEDG; output reg [7] LEDG; endmodule
示例2:
module BCD (..., LEDG, ...);
output reg ({[3:0], [7]} LEDG);
endmodule
任何帮助将不胜感激!提前致谢。 : - )
答案 0 :(得分:0)
你要做的事情是不可能的,如果你要输出一个总线,那么你必须指定一个连续的范围。
如果需要输出[7]和[3:0],则应该声明输出reg [7:0]。
您可以保留未使用的位,或者如果它给出了综合警告/错误,那么如果您不关心它们的值(LEDG[6:4] = 3'b0
),则将它们绑定为0或1。
答案 1 :(得分:0)
module(...NBCD_FLAG, LEDG...);
output reg [3:0] LEDG;
output wire NBCD_FLAG;
在你的.qsf文件中,将LEDG分配给你板上3-0的LED 和NBED_FLAG领导7。 这样您就可以将led 6-4用于其他目的。