¿Ã·¹Æ÷Æ® : ´ëÇз¹Æ÷Æ®, Á·º¸, ½ÇÇè°úÁ¦, ½Ç½ÀÀÏÁö, ±â¾÷ºÐ¼®, »ç¾÷°èȹ¼­, Çо÷°èȹ¼­, ÀÚ±â¼Ò°³¼­, ¸éÁ¢, ¹æ¼ÛÅë½Å´ëÇÐ, ½ÃÇè ÀÚ·á½Ç
¿Ã·¹Æ÷Æ® : ´ëÇз¹Æ÷Æ®, Á·º¸, ½ÇÇè°úÁ¦, ½Ç½ÀÀÏÁö, ±â¾÷ºÐ¼®, »ç¾÷°èȹ¼­, Çо÷°èȹ¼­, ÀÚ±â¼Ò°³¼­, ¸éÁ¢, ¹æ¼ÛÅë½Å´ëÇÐ, ½ÃÇè ÀÚ·á½Ç
·Î±×ÀΠ ȸ¿ø°¡ÀÔ

ÆÄÆ®³Ê½º

ÀÚ·áµî·Ï
 

Àå¹Ù±¸´Ï

´Ù½Ã¹Þ±â

ÄÚÀÎÃæÀü

¢¸
  • Fifo Gray   (1 ÆäÀÌÁö)
    1

  • Fifo Gray   (2 ÆäÀÌÁö)
    2

  • Fifo Gray   (3 ÆäÀÌÁö)
    3

  • Fifo Gray   (4 ÆäÀÌÁö)
    4

  • Fifo Gray   (5 ÆäÀÌÁö)
    5

  • Fifo Gray   (6 ÆäÀÌÁö)
    6

  • Fifo Gray   (7 ÆäÀÌÁö)
    7


  • º» ¹®¼­ÀÇ
    ¹Ì¸®º¸±â´Â
    7 Pg ±îÁö¸¸
    °¡´ÉÇÕ´Ï´Ù.
¢º
Ŭ¸¯ : Å©°Ôº¸±â
  • Fifo Gray   (1 ÆäÀÌÁö)
    1

  • Fifo Gray   (2 ÆäÀÌÁö)
    2

  • Fifo Gray   (3 ÆäÀÌÁö)
    3

  • Fifo Gray   (4 ÆäÀÌÁö)
    4

  • Fifo Gray   (5 ÆäÀÌÁö)
    5

  • Fifo Gray   (6 ÆäÀÌÁö)
    6

  • Fifo Gray   (7 ÆäÀÌÁö)
    7



  • º» ¹®¼­ÀÇ
    (Å« À̹ÌÁö)
    ¹Ì¸®º¸±â´Â
    7 Page ±îÁö¸¸
    °¡´ÉÇÕ´Ï´Ù.
  ´õºíŬ¸¯ : ´Ý±â
X ´Ý±â
Á¿ìÀ̵¿ : µå·¡±×

Fifo Gray

ÀÎ ¼â
¹Ù·Î°¡±â
Áñ°Üã±â Űº¸µå¸¦ ´­·¯ÁÖ¼¼¿ä
( Ctrl + D )
¸µÅ©º¹»ç ¸µÅ©ÁÖ¼Ò°¡ º¹»ç µÇ¾ú½À´Ï´Ù.
¿øÇÏ´Â °÷¿¡ ºÙÇô³Ö±â Çϼ¼¿ä
( Ctrl + V )
¿ÜºÎ°øÀ¯
ÆÄÀÏ  Fifo_Gray.zip   [Size : 191 Kbyte ]
ºÐ·®   7 Page
°¡°Ý  2,000 ¿ø


īƮ
´Ù¿î¹Þ±â
īī¿À ID·Î
´Ù¿î ¹Þ±â
±¸±Û ID·Î
´Ù¿î ¹Þ±â
ÆäÀ̽ººÏ ID·Î
´Ù¿î ¹Þ±â
µÚ·Î

ÀÚ·á¼³¸í
Gray Ä«¿îÅ͸¦ ÀÌ¿ëÇÑ Fifo ¼³°è(verilog)
¸ñÂ÷/Â÷·Ê

1. fifo_gray (rtl ·¹º§ ¼Ò½º)

2. addsub_32 (rtl ·¹º§ ¼Ò½º)

3. FA (rtl °ÔÀÌÆ® ·¹º§ ¼Ò½º)

4. Bin2Gray (rtl ·¹º§ ¼Ò½º)

º»¹®/³»¿ë
1.fifo_gray (rtl °ÔÀÌÆ® ·¹º§ ¼Ò½º)

`timescale 1ns / 10ps

module fifo_gray(clk, push, pop, data, ready, empty, full);

output ready, empty, full;

input logic clk, push, pop;

inout [31:0]data;

localparam depth=2;

reg [31:0]memory[2**depth-1:0];

reg [depth-1:0]ptr[2:1];
reg [depth-1:0]bptr[2:1];
reg [depth-1:0]rptr;

reg ready, empty, full;

reg push_done,pop_done ;

logic [depth-1:0] a;

assign a= push?bptr[1]:pop?bptr[2]:0;

wire [depth-1:0] s,gptr;

initial

begin

ready =1;
empty =1;
full =0;
pop_done=1;
ptr[2] =0;
ptr[1] =0;
bptr[2] =0;
bptr[1] =0;

end

always @(posedge clk)
begin:PUSH
if(push)
begin
ready = 0;
if(!full)
begin
memory[ptr[1]] <= data;
ptr[1] = gptr;
bptr[1]= s;
end
if(push_done &&(ptr[2]==ptr[1]))
full=1;
end
if(pop)
full=0;
end

always @(posedge clk or negedge pop)
begin:POP
if(!empty && pop)
begin
bptr[2] = s;
ptr[2]=gptr¡¦(»ý·«)
Âü°í¹®Çå
verilog ¼­Àû



📝 Regist Info
I D : hota****
Date : 2016-09-20
FileNo : 16217995

Cart