📄 djv3.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.seattlerobotics.org/encoder/200601/article3/djv3.htm -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY text=#000000 vLink=#000000 aLink=#0000ff link=#0000b0
bgColor=#008080><BASEFONT face=Arial color=#ffffff>
<CENTER>
<H2>A Color Vision System for Embedded Robotics Applications</H2></CENTER>
<CENTER>
<H2><A
href="http://www.seattlerobotics.org/encoder/200601/article3/index.php#djv"
target=main>Click here to return to article</CENTER></A>
<P>
<TABLE borderColor=#0080ff cellPadding=10 align=center
background=djv3.files/grid.gif border=10>
<TBODY>
<TR>
<TD><FONT color=black>
<CENTER>
<H4>Verilog FPGA standard fifo, used everywhere:</H4></CENTER>
<P><PRE>module fifo_33 #(parameter fifo_width = 33) (
input wire clk,
input wire rst,
input wire [fifo_width - 1:0] din,
input wire we,
output wire [fifo_width - 1:0] dout,
input wire re,
output wire full,
output wire empty
);
////////////////////////////////////////////////////////////////////
//
// Local Wires
//
reg [fifo_width - 1:0] mem[0:3];
reg [1:0] wp;
reg [1:0] rp;
wire [1:0] wp_p1;
wire [1:0] rp_p1;
reg gb;
////////////////////////////////////////////////////////////////////
//
// Misc Logic
//
always @(posedge clk or posedge rst)
begin
if(rst)
wp <= #1 2'h0;
else if(we)
wp <= #1 wp_p1;
end
assign #1 wp_p1 = wp + 2'h1;
always @(posedge clk or posedge rst)
begin
if(rst)
rp <= #1 2'h0;
else if(re)
rp <= #1 rp_p1;
end
assign #1 rp_p1 = rp + 2'h1;
// Fifo Output
assign dout = mem[rp];
// Fifo Input
always @(posedge clk)
begin
if(we)
mem[wp] <= #1 din;
end
// Status
assign #1 empty = (wp == rp) & !gb;
assign #1 full = (wp == rp) & gb;
// Guard Bit ...
always @(posedge clk)
begin
if(rst)
gb <= #1 1'b0;
else if((wp_p1 == rp) & we)
gb <= #1 1'b1;
else if(re)
gb <= #1 1'b0;
end
endmodule
</PRE></FONT></TR></TBODY></TABLE>
<P>
<CENTER>
<H2><A
href="http://www.seattlerobotics.org/encoder/200601/article3/index.php#djv"
target=main>Click here to return to
article</CENTER></A></H2></H2></BASEFONT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -