我正在使用系统Verilog。我的顶层设计文件具有1位输出bsOut
。我还使用了一个名为shift_reg
的寄存器,该寄存器从端口dOut
输出一个8位数字。我要这样做:
module FinalTop (
input clk,
output bsOut
);
Shift_Reg shift_reg(.clk(clk), .dOut(bsOut));
我相信Vivado / Basys3将仅使用LSB-> dOut
截断bsOut
,但是如果我想指定其他位怎么办?例如,如果我想发送.dOut[7](bsOut)
,该怎么办?显然,这是行不通的(我尝试过),但是我不知道如何正确执行。我可以先创建一个logic [7:0] dOutTemp = dOut
,然后再创建assign bsOut = dOutTemp[7];
,但这似乎很笨拙。
答案 0 :(得分:1)
您可以使用端口表达式。
module FinalTop (
input clk,
output .bsOut(dOut[7])
);
logic [7:0] dOut;
Shift_Reg shift_reg(.clk, .dOut);
请注意,.clk
等效于.clk(clk)
,等等。