디지털논리
- 최초 등록일
- 2012.08.05
- 최종 저작일
- 2012.08
- 12페이지/ MS 워드
- 가격 5,000원
소개글
자료구조(Fifo,Queue,Stack,Deque)를 Verilog HDL을
이용하여 코딩한다
목차
1. Fifo (rtl 레벨)
2. Circular Fifo (rtl 레벨)
3. Stack(rtl 레벨)
4. Queue (rtl 레벨)
5. Deque (rtl 레벨)
본문내용
1.Fifo (rtl 레벨)
/****************************************************
논리 이름: Fifo
만든 날짜: 2007.04.29
저자:탁 형옥
입력:Din,clk,reset_n,write,read
출력:Dout,Full,Empty
기능:write신호가 acive high로 구동될때 입력데이터를 Fifo 저장하고 쓰기포인터를 증가시키고
read신호가 active high로 구동될때 읽기포인터가 가리키는 스택의 데이터를 출력으로 내보낸후
스택 포인터를 감소시킨다.
******************************************************/
module Fifo1
#(parameter DSize=8,ASize=4,FULL=4`b1111,EMPTY=4`b0000,HALF=4`b1000)
( input [DSize-1:0]Din,
input clk,
input reset_n,
input write,
input read,
input burst,
output [DSize-1:0]Dout,
output Empty,Full,Half,
output reg [ASize-1:0] wptr,rptr
);
<중 략>
reg [DSize-1:0]DEQUEUE [ASize**2-1:0];
reg enDeQueueDone;
reg deQueueDone;
wire [ASize-1:0] next_headptr = headptr+1;
wire [ASize-1:0] next_tailptr = tailptr+1;
wire [ASize-1:0] prev_headptr = headptr-1;
wire [ASize-1:0] prev_tailptr = tailptr-1;
assign Full = next_headptr==tailptr;
assign Half = headptr==tailptr+HALF;
assign Empty = next_tailptr==headptr;
assign Dout = OE?(head_tail_n?DEQUEUE[headptr]:DEQUEUE[tailptr]):8`bz;
wire OE = read & deQueueDone;
always @(posedge clk)
begin
if(~reset_n)
참고 자료
없음