예 : IOs A와 B가 연결되어있을 때 이들 사이에 10ns io-io 지연이 있습니다. IO는 500MHz (2ns주기)에서 실행됩니다.양방향 전송 지연을 모델링하는 방법
기본적으로 Verilog는 필터 역할을하는 관성 지연을 사용합니다. 따라서 상호 연결선을 wire #(10ns) io;
으로 정의하면 데이터를 걸러 내기 때문에 작동하지 않습니다.
wire #(10ns) io;
assign io = io_a_en ? a_data_500MHz : 'z;
assign io = io_b_en ? b_data_500MHz : 'z;
전송 지연은 단방향입니다. IO에서 각 방향에 대해 하나씩 생성하면 여러 드라이버와 피드백 루프가 발생합니다.
always @(a) b_reg <= #(10ns) a;
always @(b) a_reg <= #(10ns) b;
assign a = b_reg; // feedback b_reg = b = a_reg = a ... and multi-driver
assign b = a_reg; // feedback a_reg = a = b_reg = b ... and multi-driver
assign a = io_a_en ? a_data_500MHz : 'z;
assign b = io_b_en ? b_data_500MHz : 'z;
양방향 전송 지연은 어떻게 모델링해야합니까?