Verilog - 单个输出数组

时间:2013-04-20 02:20:36

标签: verilog declaration

这是我第一次访问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

任何帮助将不胜感激!提前致谢。 : - )

2 个答案:

答案 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用于其他目的。