这是我第一次在stackoverflow.com上使用verilog编码。我可能会不正确地使用一些术语,所以如果我这样做了,请纠正我,以便我可以更清楚地在未来的帖子。
我使用的Altera FPGA板,其中有7个分类账灯,可以触发和关闭。在我的项目中,我正在制作一个BCD加法器,当BCD值不是0-9时,LEDG 7打开。但是,我不想声明输出6:4。LEDG 3:0显示两个输入之和的二进制等效值。
我想我可以用两个单独的声明声明,但它告诉我,分类账已经申报了。然后我试着用括号把它组合起来,但它也对此表示不满。有没有办法简化我的代码。下面是我尝试过的例子。
示例1:
模块BCD (.,分类帐,.);产出记录3:0分类账;产出记录7分类账;最终模块
示例2:
module BCD (..., LEDG, ...);
output reg ({[3:0], [7]} LEDG);
endmodule任何帮助都将不胜感激!提前谢谢。:-)
发布于 2013-04-20 03:01:49
您想要做的事情是不可能的,如果要输出总线,那么必须指定一个连续范围。
如果需要输出7和3:0,则只需声明一个输出reg 7:0。
您可以保持未使用的位元不受驱动,或者如果这提供了一个综合警告/错误,那么如果您不关心它们的值(LEDG[6:4] = 3'b0),那么将它们绑定到0或1。
发布于 2013-04-23 01:31:06
module(...NBCD_FLAG, LEDG...);
output reg [3:0] LEDG;
output wire NBCD_FLAG;在您的.qsf文件中,在您的板上分配LEDG到led 3-0,将NBED_FLAG分配给led 7,这样您就可以将led 6-4用于其他目的。
https://stackoverflow.com/questions/16115863
复制相似问题