본문 바로가기
일/Knowledge

ready valid protocol 설명. ( verilog )

by 멜랑멀리 2016. 11. 9.
SMALL

 

amba나 최근에 사용하는 대부분의 bus 는 ready , valid protocol을 이용한다. 간단한 이해를 위해 아래를 참조.

 

 

================================================== =====

 // 기본형 module sample (verilog)
 (
 // system
 input wire clk,
 input wire reset,
 
 // slave port
 input wire [7 : 0] s_data,
 input wire s_valid,
 output wire s_ready,
 
 // master port
 output reg [7 : 0] m_data,
 output reg m_valid,
 input wire m_ready
 );


 // m_valid이 0 (파이프 라인의 자동 스테이지가 high) 또는 m_ready 1 (다음 단계가 READY) 때
wire cke = ~ m_valid | m_ready;

 always @ (posedge clk) begin
 if (reset) begin
 m_data <= 8'bxx; // 시뮬레이션 용으로 재설정 부정하는 m_valid <= 1'b0; //
 end
 else begin
 if (cke) begin
 m_data <= s_data + 1; // 연산을 수행 m_valid <= s_valid;
 end
 end
 end

 assign s_ready = cke;

 endmodule


 ================================================== =====

 

http://ryuz.txt-nifty.com/blog/2012/09/verilog-s-c79f.html  참조 site

LIST

' > Knowledge' 카테고리의 다른 글

queueing system ( queueing theory )  (0) 2016.11.14
bit sum (verilog)  (0) 2016.11.11
median-cut  (1) 2016.06.15
indexed part-select (Verilog 2001 => +: )  (0) 2016.05.20
xilinx - Content-Addressable Memory ( CAM )  (0) 2016.04.20