如何在Testbench波形中观测CE2与CEO信号?
问题咨询
我知道这问题应该不难解决,但一直没搞定。想请教怎么在当前电路里观测CE2和CEO的可视化信号?看RTL电路图发现CE2和CEO没连到引脚,而且没法直接连。CE2应该在第一个计数器计数到9时置1,但波形里一直是X;CEO应该在Q为9时置1,但波形里一直是Z。这个电路是用来自学的。
Testbench截图
![Testbench截图]
电路原理图截图
![电路原理图截图]
TOP模块代码
`timescale 1ns / 1ps module top( input CLK, input CLR, input CE, input CE2, output reg [3:0] Q, output reg [3:0] Q2, output wire CEO, output CEO2 ); wire CLK; wire CLR; wire CENABLE; wire CE2; wire Q; wire Q2; wire CEO; wire CEO2; licznik licznik(.CLK(CLK),.CLR(CLR),.CE(CE),.CEO(CENABLE),.Q(Q)); licznik2 licznik2(.CLK(CLK),.CLR(CLR),.CE2(CENABLE),.Q2(Q2),.CEO2(CEO2)); endmodule
Testbench代码
`timescale 1ns / 1ps module testbench; reg CLK; reg CLR; reg CE; reg CE2; wire [3:0] Q; wire [3:0] Q2; wire CEO; wire CEO2; top UUT ( .CLK(CLK), .CLR(CLR), .CE(CE), .CE2(CE2), .Q(Q), .Q2(Q2), .CEO(CEO), .CEO2(CEO2) ); initial CLK=1'b0; always #5 CLK=~CLK; initial begin CLR = 1'b1; CE= 1'b1; #18 CLR = 1'b0; end endmodule
第一个计数器模块(licznik)代码
`timescale 1ns / 1ps module licznik( input CLK, input CLR, input CE, output reg [3:0] Q, output CEO ); always @(posedge CLK or posedge CLR) if(CLR) Q <= 4'd0; else begin if(CE) begin if(Q != 4'd9) Q <= Q + 1; else Q <= 4'd0; end end assign CEO = CE & (Q == 4'd9); endmodule
第二个计数器模块(licznik2)代码
`timescale 1ns / 1ps module licznik2( input CLK, input CLR, input CE2, output reg [3:0] Q2, output CEO2 ); always @(posedge CLK or posedge CLR) if(CLR) Q2 <= 4'd0; else begin if(CE2) begin if(Q2 != 4'd9) Q2 <= Q2 + 1; else Q2 <= 4'd0; end end assign CEO2 = CE2 & (Q2 == 4'd9); endmodule
内容的提问来源于stack exchange,提问作者1draco
相关产品推荐
相关产品推荐

