1. ¸ñÀû
Áö±Ý±îÁö ¹è¿î Verilog¿¡ ´ëÇÑ Áö½ÄÀ» È°¿ëÇÏ¿© ¿©·¯ °¡Áö ¼øÂ÷ȸ·Î¸¦ ¼³°èÇÔ
2. ±âÃÊÁö½Ä
- ¿©·¯ °¡Áö ¼øÂ÷ȸ·Î¿¡ ´ëÇÑ µ¿ÀÛ ÀÌÇØ
·¹Áö½ºÅÍ
·¹Áö½ºÅÍ´Â n-bit µ¥ÀÌÅ͸¦ ÀúÀåÇÏ´Â ±â¾ï¼ÒÀÚÀÌ´Ù. Ŭ·°¿¡ µ¿±â°¡ µÇ¾î ÀÌ·ç¾îÁö¸ç Á¦¾î½ÅÈ£·Î ºñµ¿±â Á¦¾î ½ÅÈ£ÀÎ reset, µ¿±â ½ÅÈ£ÀÎ load°¡ Àִµ¥ µ¿ÀÛÀº ÀÌ·¯ÇÏ´Ù
reset load CLK Qi
0 x x 0
1 0 ¡è Qi
1 1 ¡è Di
Ä«¿îÅÍ
¸Å Ŭ·°¸¶´Ù Á¤ÇØÁø ¼Õ¼¿¡ µû¶ó¼ »óÅ°ªÀÌ º¯ÇÏ´Â ·¹Áö½ºÅ͸¦ ¸»ÇÑ´Ù. Ŭ·°¿¡ µû¶ó º¯ÇÏ¸é µ¿±â½Ä Ä«¿îÅÍ ±×·¸Áö ¾ÊÀ¸¸é ºñ µ¿±â½Ä Ä«¿îÅͶó°í ÇÑ´Ù.
À̹ø ¼÷Á¦ÀÇ °æ¿ì ¾Æ·¡ÀÇ µ¿ÀÛÀ» ÇؾßÇÑ´Ù.
reset load enable µ¿ÀÛ
1 x x reset (Ãâ·Â 0)
0 1 x parallel load
0 0 1 count (Áõ°¡)
0 0 0 º¯È¾øÀ½
parallel load´Â º´·Ä ·Îµå·Î ±âÁ¸ °ª¿¡ »ó°ü ¾øÀÌ data°ªÀ» ±×´ë·Î Ãâ·ÂÇÏ´Â °ÍÀ» ¸»ÇÏ°í count´Â ÁÖ¾îÁø Áø¼ö¿¡ ¸ÂÃß¾î reset0ÀÌ°í load0 enable1ÀÏ ¶§ Áõ°¡ÇÑ´Ù.
Á¦¾î½Åµµ ¸ðµÎ°¡ 0ÀÏ ¶§´Â º¯È ¾ø´Ù.
- µ¿±â¡¦(»ý·«)
3. Áö½Ä¿¡ ´ëÇÑ ÀÚ·á
4. ½Ç½À ³»¿ë
(1) ´ÙÀ½°ú °°Àº ÀÔÃâ·Â ½ÅÈ£¸¦ °®´Â N-Áø counter¸¦ ¼³°èÇÏ°í µ¿ÀÛÀ» °ËÁõÇϽÿÀ. ¿©±â¼NÀº ±âº»°ªÀÌ 16ÀÎ parameter·Î ÁöÁ¤ÇÏ¿© ¹Ù²Ù¾î¼ Àç»ç¿ë °¡´ÉÇϵµ·Ï ÇϽÿÀ.
(2) ¾Õ¿¡¼ ¼³°èÇÑ Ä«¿îÅ͸¦ »ç¿ëÇÏ¿© 60Áø Ä«¿îÅ͸¦ ±¸¼ºÇÏ°í µ¿ÀÛÀ» È®ÀÎÇϽÿÀ. (10Áø Ä«¿îÅÍ¿Í 6Áø Ä«¿îÅÍ »ç¿ë)
|
[size-1:0]data;
output [size-1:0]qout;
output tc;
reg [size-1:0]qout;
always @ (posedge clk) begin
if(reset)qout`=4`b0;
else if(load) qout`=data;
else if (en) qout `= qout +1;
end
assign tc = (qout 4`b1111);
endmodule
¡ØÀ§ÀÇ 2°³ÀÇ moduleµéÀº ÇÑ ÇÁ·ÎÁ§Æ® ¾È¿¡ ¼·Î ´Ù¸¥ ÆÄÀÏ·Î °¢°¢ ÀÛ¼ºÇÏ¿´´Ù.
(2) ¾Õ¿¡¼ ¼³°èÇÑ Ä«¿îÅ͸¦ »ç¿ëÇÏ¿© 60Áø Ä«¿îÅ͸¦ ±¸¼ºÇÏ°í µ¿ÀÛÀ» È®ÀÎÇϽÿÀ. (10Áø Ä«¿îÅÍ¿Í 6Áø Ä«¿îÅÍ »ç¿ë)
4.2 ·¹Áö½ºÅÍ ÆÄÀÏ°ú FIFO ¼³°è
(1) ÁöÁ¤µÈ write ·¹Áö½ºÅÍ¿¡ °ªÀ» ¾²°í, ÁöÁ¤µÈ read ·¹Áö½ºÅÍÀÇ °ªÀ» Àд °ÍÀ» µ¿½Ã¿¡ ¼öÇàÇÒ ¼ö ÀÖ´Â 8°³ÀÇ 8ºñÆ® ·¹Áö½ºÅ͸¦ Æ÷ÇÔÇÑ ·¹Áö½ºÅÍ ÆÄÀÏÀ» ¼³°èÇÏ°í µ¿ÀÛÀ» È®ÀÎÇϽÿÀ.
(2) (µµÀü¹®Á¦) ¾Õ¿¡¼ ¼³°èÇÑ ·¹Áö½ºÅÍ ÆÄÀÏÀ» »ç¿ëÇÏ¿© ´ÙÀ½°ú °°Àº FIFO¸¦ ¼³°èÇÏ°í µ¿ÀÛÀ» È®ÀÎÇϽÿÀ.
module FIFO(clk, reset, read, write, din, dout, empty, full);
- read°¡ 1À̸é FIFOÀÇ ¸Ç¾ÕÀÇ ·¹Áö½ºÅÍ °ªÀ» doutÀ¸·Î Ãâ·ÂÇÏ°í FIFO ¸Ç¾Õ À§Ä¡ À̵¿
- write°¡ 1À̸é FIFOÀÇ ¸ÇµÚÀÇ ·¹Áö½ºÅÍ¿¡ dinÀ» ÀÔ·ÂÇÏ°í FIFO ¸ÇµÚ À§Ä¡ À̵¿
- read¿Í write°¡ µ¿½Ã¿¡ 1ÀÌ¸é µÎ µ¿ÀÛÀÌ µ¿½Ã¿¡ ¼öÇàµÊ
- FIFO°¡ ºñ¾îÀÖÀ¸¸é empty¸¦ 1·Î Ãâ·Â, ²ËáÀ¸¸é fullÀ» 1·Î Ãâ·ÂÇÔ