具体门级我不知道会不会涉及保密,用行为级描述一下,不知道行不行
module scan_cell (
input D,
input TD,
input SE,
input clk,
input rstn,
output reg Q);
always@(posedge clk, negedge rstn)
if(~rstn) Q <= 1'b0;
else Q<= SE ? TD : D;
endmodule
scan_cell cell_0 (
.D(func_reg_0),
.TD(scan_in),
.SE(1'b1),//因为处于dft模式,所以直接给1
.clk(ate_clk),
.rstn(scan_rstn),
.Q(int_w));
fun_module xxx (……,
.DFTSI2(int_w),
.SE(1'b1),
.clk(ate_clk),
……);
module fun_module (
……,
input DFTSI2,
……);
……
scan_cell cell_1 (
.D(func_reg_1),
.TD(DFTSI2),
.SE(1'b1),
.clk(ate_clk),
.rstn(scan_rstn),
.Q(DFTSO2));
……
endmodule
现在就是int_w的变化落后于scan_in一个clk周期,就是触发器的样子;
但是DFTSO2就是直接跟随DFTSI2,DFTSI2变化DFTSO2就立马变化,没有等到下一个周期才变化
|