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
'일 > 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 |