⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一个可以综合的verilog 写的fifo存储器.mht

📁 一个可以综合的Verilog 写的FIFO存储器 内附文档说明
💻 MHT
📖 第 1 页 / 共 5 页
字号:
&#22120;</span><span
lang=3DEN-US style=3D'font-size:18.0pt'><o:p></o:p></span></p>

<p class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><span lang=
=3DEN-US
style=3D'font-size:14.0pt'>Synthesizable FIFO Model<o:p></o:p></span></p>

<p class=3DMsoNormal style=3D'text-indent:24.0pt;mso-char-indent-count:2.0'=
><span
lang=3DEN-US style=3D'font-size:12.0pt'>This example describes a synthesiza=
ble
implementation of a FIFO. The FIFO depth and FIFO width in bits can be modi=
fied
by simply changing the value of two parameters, `FWIDTH and `FDEPTH. For th=
is
example, the FIFO depth is 4 and the FIFO width is 32 bits. The input/output
ports of the FIFO are shown in Figure F-1.<o:p></o:p></span></p>

<h5 align=3Dcenter style=3D'text-align:center'><a name=3Dapp06fig01></a><sp=
an
lang=3DEN-US>Figure F-1. FIFO Input/Output Ports<o:p></o:p></span></h5>

<p class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><span lang=
=3DEN-US><!--[if gte vml 1]><v:shapetype
 id=3D"_x0000_t75" coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=
=3D"t"
 path=3D"m@4@5l@4@11@9@11@9@5xe" filled=3D"f" stroked=3D"f">
 <v:stroke joinstyle=3D"miter"/>
 <v:formulas>
  <v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
  <v:f eqn=3D"sum @0 1 0"/>
  <v:f eqn=3D"sum 0 0 @1"/>
  <v:f eqn=3D"prod @2 1 2"/>
  <v:f eqn=3D"prod @3 21600 pixelWidth"/>
  <v:f eqn=3D"prod @3 21600 pixelHeight"/>
  <v:f eqn=3D"sum @0 0 1"/>
  <v:f eqn=3D"prod @6 1 2"/>
  <v:f eqn=3D"prod @7 21600 pixelWidth"/>
  <v:f eqn=3D"sum @8 21600 0"/>
  <v:f eqn=3D"prod @7 21600 pixelHeight"/>
  <v:f eqn=3D"sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
 <o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D'wi=
dth:294.75pt;
 height:168pt'>
 <v:imagedata src=3D"file6952.files/image001.gif" o:title=3D"20051111259153=
21"/>
</v:shape><![endif]--><![if !vml]><img width=3D393 height=3D224
src=3D"file6952.files/image001.gif" v:shapes=3D"_x0000_i1025"><![endif]></s=
pan></p>

<h4><span lang=3DEN-US>Input ports<o:p></o:p></span></h4>

<p class=3Ddoctext><span lang=3DEN-US>All ports with a suffix &quot;N&quot;=
 are
low-asserted.<o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:#F7F709'>Clk</span></span></span><span lang=
=3DEN-US
style=3D'color:red;background:#F7F709'>&#8212; Clock signal</span><span
lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:#F7F709'>RstN</span></span></span><span lang=
=3DEN-US
style=3D'color:red;background:#F7F709'>&#8212; Reset signal</span><span
lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:#F70909;background:#F7F709'>Data_In</span></span></span><span
lang=3DEN-US style=3D'color:#F70909;background:#F7F709'>&#8212; 32-bit data=
 into
the FIFO</span><span lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:#F7F709'>FInN</span></span></span><span lang=
=3DEN-US
style=3D'color:red;background:#F7F709'>&#8212; Write into FIFO signal</span=
><span
lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:#F70909;background:#F7F709'>FClrN</span></span></span><span
lang=3DEN-US style=3D'color:#F70909;background:#F7F709'>&#8212; Clear signa=
l to
FIFO</span><span lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:#FF3300;background:#F7F709'>FOutN</span></span></span><span
lang=3DEN-US style=3D'color:#FF3300;background:#F7F709'>&#8212; Read from F=
IFO
signal</span><span lang=3DEN-US><o:p></o:p></span></p>

<h4><a name=3Dapp06lev3sec2></a><span lang=3DEN-US>Output ports<o:p></o:p><=
/span></h4>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_Data</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; 32-bit output da=
ta from
FIFO</span><span lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_FullN</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; Signal indicatin=
g that
FIFO is full</span><span lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_EmptyN</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; Signal indicatin=
g that
FIFO is empty</span><span lang=3DEN-US><o:p></o:p></span></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_LastN</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; Signal indicatin=
g that
FIFO has space for one data value</span><span lang=3DEN-US><o:p></o:p></spa=
n></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_SLastN</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; Signal indicatin=
g that
FIFO has space for two data values</span><span lang=3DEN-US><o:p></o:p></sp=
an></p>

<p class=3Ddoctext><span class=3DSpellE><span class=3Ddocemphasis><span lan=
g=3DEN-US
style=3D'color:red;background:yellow'>F_FirstN</span></span></span><span
lang=3DEN-US style=3D'color:red;background:yellow'>&#8212; Signal indicatin=
g that
there is only one data value in FIFO</span><span lang=3DEN-US><o:p></o:p></=
span></p>

<p class=3Ddoctext><span lang=3DEN-US>&nbsp;<o:p></o:p></span></p>

<p class=3Ddoctext><span lang=3DEN-US>The <span class=3DSpellE>Verilog</spa=
n> HDL
code for the FIFO implementation is shown in Example F-1.<o:p></o:p></span>=
</p>

<h5><a name=3Dapp06list01></a><span lang=3DEN-US>Example F-1 Synthesizable =
FIFO
Model<o:p></o:p></span></h5>

<pre><span lang=3DEN-US>///////////////////////////////////////////////////=
/////////////////<o:p></o:p></span></pre><pre><span
lang=3DEN-US>// <span class=3DSpellE>FileName</span>:<span style=3D'mso-spa=
cerun:yes'>&nbsp; </span>&quot;<span
class=3DSpellE>Fifo.v</span>&quot;<o:p></o:p></span></pre><pre><span lang=
=3DEN-US>// <span
class=3DGramE>Author<span style=3D'mso-spacerun:yes'>&nbsp; </span>:</span>=
<span style=3D'mso-spacerun:yes'>&nbsp; </span><span
class=3DSpellE>Venkata</span> <span class=3DSpellE>Ramana</span> <span
class=3DSpellE>Kalapatapu</span><o:p></o:p></span></pre><pre><span lang=3DE=
N-US>// <span
class=3DGramE>Company :</span><span style=3D'mso-spacerun:yes'>&nbsp; </spa=
n>Sand Microelectronics Inc.<o:p></o:p></span></pre><pre><span
lang=3DEN-US>//<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(now a part of <span
class=3DSpellE>Synopsys</span>, Inc.),<o:p></o:p></span></pre><pre><span
lang=3DEN-US>// <span class=3DGramE>Profile :</span><span style=3D'mso-spac=
erun:yes'>&nbsp; </span>Sand develops Simulation Models, Synthesizable Core=
s and<o:p></o:p></span></pre><pre><span
lang=3DEN-US>//<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Performance Analysis Tools for Pro=
cessors, buses and<o:p></o:p></span></pre><pre><span
lang=3DEN-US>//<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>memory products.<span style=3D'mso=
-spacerun:yes'>&nbsp; </span>Sand's products include models for<o:p></o:p><=
/span></pre><pre><span
lang=3DEN-US>//<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>industry-standard components and c=
ustom-developed models<o:p></o:p></span></pre><pre><span
lang=3DEN-US>//<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>for specific simulation environmen=
ts.<o:p></o:p></span></pre><pre><span
lang=3DEN-US>//<o:p></o:p></span></pre><pre><span lang=3DEN-US>////////////=
////////////////////////////////////////////////////////<o:p></o:p></span><=
/pre><pre><span
lang=3DEN-US>`<span class=3DGramE>define<span style=3D'mso-spacerun:yes'>&n=
bsp; </span>FWIDTH</span><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp=
;&nbsp; </span>32<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style=3D'mso-spacerun:yes'>&nbsp=
;</span>// Width of the FIFO.<o:p></o:p></span></pre><pre><span
lang=3DEN-US>`<span class=3DGramE>define<span style=3D'mso-spacerun:yes'>&n=
bsp; </span>FDEPTH</span><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp=
;&nbsp; </span>4<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// Depth of the FIFO.<o:p><=
/o:p></span></pre><pre><span
lang=3DEN-US>`<span class=3DGramE>define<span style=3D'mso-spacerun:yes'>&n=
bsp; </span>FCWIDTH</span><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbs=
p; </span>2<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>// Counter Width of the FIFO 2 t=
o power<o:p></o:p></span></pre><pre><span
lang=3DEN-US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; </span>// FCWIDTH =3D FDEPTH.<o:p></o:p></span></pre><pre><sp=
an
class=3DGramE><span lang=3DEN-US>module</span></span><span lang=3DEN-US> FI=
FO(<span style=3D'mso-spacerun:yes'>&nbsp; </span><span
class=3DSpellE>Clk</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-US><=
span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>RstN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-US>=
<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>Data_In</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-=
US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>FClrN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-US=
><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>FInN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-US>=
<span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>FOutN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-US=
><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_Data</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-U=
S><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_FullN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-=
US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_LastN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN-=
US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_SLastN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN=
-US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_FirstN</span>,<o:p></o:p></span></pre><pre><span lang=3DEN=
-US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
class=3DSpellE>F_EmptyN</span><o:p></o:p></span></pre><pre><span lang=3DEN-=
US><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -