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

📄 fpga 设计的四种常用思想与技巧(一).htm

📁 FPGA设计常用的四种设计方法
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0052)http://www.pld.com.cn/advance/skill/design_skill.htm -->
<HTML><HEAD><TITLE>template</TITLE><!-- #BeginTemplate "../../Templates/main.dwt" --><!-- DW6 -->
<META http-equiv=Content-Type content="text/html; charset=gb2312"><!-- #BeginEditable "doctitle" --><!-- #EndEditable --><LINK 
href="FPGA 设计的四种常用思想与技巧(一).files/Style.css" type=text/css rel=stylesheet>
<META content="tb, default" name="Microsoft Border">
<STYLE type=text/css>.style1 {
	COLOR: #a6a6b9
}
BODY {
	FONT-SIZE: 9pt; COLOR: #333333
}
TD {
	FONT-SIZE: 9pt; COLOR: #333333
}
TH {
	FONT-SIZE: 9pt; COLOR: #333333
}
A:hover {
	COLOR: #0000ff
}
</STYLE>

<META content="MSHTML 6.00.2900.2668" name=GENERATOR></HEAD>
<BODY vLink=#000066 aLink=#fe818d link=#0000ff bgColor=#ffffff leftMargin=2 
topMargin=2 rightMargin=2 MARGINWIDTH="2" MARGINHEIGHT="2">
<TABLE height=36 cellSpacing=0 cellPadding=0 width=778 align=center border=0>
  <TBODY>
  <TR>
    <TD class=tbgc width=116 
    background="FPGA 设计的四种常用思想与技巧(一).files/mast_logo.gif" rowSpan=2>&nbsp;</TD>
    <TD width=37 bgColor=#504a8a height=20>&nbsp;</TD>
    <TD width=303 bgColor=#504a8a height=20>
      <DIV align=right><FONT class=font10 color=#ffffff><SPAN class=font10><B 
      class=font10_white>可编程逻辑器件 中文网站</B></SPAN></FONT></DIV></TD>
    <TD width=304 bgColor=#504a8a height=20>
      <DIV align=right><FONT color=#6699cc><FONT class=index2 
      color=#fafafa><SPAN class=index2>推荐使用1024x768分辨率</SPAN></FONT><SPAN 
      class=index2><FONT class=index2 color=#cccccc> 
    </FONT></SPAN></FONT></DIV></TD></TR>
  <TR>
    <TD class=font10 vAlign=center bgColor=#000066 colSpan=3>
      <DIV align=left><FONT class=verysmall color=#000066 size=1><SPAN 
      class=verysmall2>xilinx,lattice,altera,actel,Quicklogic,EDA软件,PLD,CPLD,FPGA,VHDL,verilog,IP 
      core,ABEL,单片机,8051,数字信号处理,DSP,MCU,PCI接口,数字逻辑电路,设计技巧,参考设计,电子元器件销售,解密,license,crack,synplify,modlesim,开发板,学习资料,学习套件</SPAN></FONT></DIV></TD></TR></TBODY></TABLE>
<TABLE class=font10 cellSpacing=0 cellPadding=0 width=778 align=center 
  border=0><TBODY>
  <TR vAlign=center align=middle bgColor=#000066>
    <TD class=font9 width=119 height=17>
      <DIV align=center><B><A class=index 
      href="http://www.pld.com.cn/index.htm">主 页</A></B></DIV></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/introduction1.htm">新手入门</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/advance.htm">设计进阶</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/hdl.htm">HDL语言</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/manufacturer.htm">PLD厂商</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/freeip.htm">参考设计</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B class=index><A class=index 
      href="http://www.pld.com.cn/software.htm">开发软件</A></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/application.htm">应用文章</A></FONT></B></TD>
    <TD class=font9 width=80 height=17><B><FONT color=#cccccc><A class=index 
      href="http://www.pld.com.cn/BBS/index.asp">PLD论坛</A></FONT></B></TD></TR><!--msnavigation--></TBODY></TABLE>
<TABLE class=font10 cellSpacing=0 cellPadding=0 width=778 align=center 
  border=0><TBODY>
  <TR>
    <TD width=119 bgColor=#e8e8e8>&nbsp;</TD>
    <TD colSpan=8>
      <MARQUEE class=font9 scrollAmount=5 scrollDelay=100 width="100%" 
      bgColor=#ffffff border="0" align="middle"><FONT 
      color=#000066>欢迎来到可编程逻辑器件中文网站! www.PLD.com.cn </FONT></MARQUEE></TD></TR><!--msnavigation--></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=778 align=center border=0>
  <TBODY>
  <TR>
    <TD vAlign=top width=119 bgColor=#e8e8e8>
      <DIV align=left><!-- #BeginEditable "column" --><!-- #EndEditable -->
      <P>&nbsp;</P>
      <P>&nbsp;</P>
      <P>&nbsp;</P></DIV></TD><!--msnavigation-->
    <TD vAlign=top height=52>
      <DIV align=center>
      <CENTER><!-- #BeginEditable "Content" -->
      <P>&nbsp;</P>
      <BLOCKQUOTE>
        <P align=left><A class=font9 href="http://www.pld.com.cn/advance.htm">栏目 
        &gt; 设计进阶</A></P></BLOCKQUOTE>
      <P>&nbsp;</P>
      <P align=center><SPAN class=font12B><STRONG>FPGA 
      设计的四种常用思想与技巧(一)</STRONG></SPAN></P>
      <P align=center>&nbsp;</P>
      <P align=left> </P>
      <BLOCKQUOTE>
        <P align=left>FPGA/CPLD 
        的设计思想与技巧是一个非常大的话题,由于篇幅所限,本文仅介绍一些常用的设计思想与技巧,包括乒乓球操作、串并转换、流水线操作和数据接口的同步方法。希望本文能引起工程师们的注意,如果能有意识地利用这些原则指导日后的设计工作,将取得事半功倍的效果! 
        </P>
        <P align=left>&nbsp;</P>
        <P align=left><STRONG>乒乓操作 </STRONG></P>
        <P align=center><IMG height=155 alt=图1:乒乓操作示意图。 
        src="FPGA 设计的四种常用思想与技巧(一).files/design_skill_clip_image001.gif" 
        width=400></P>
        <P align=left>“ 乒乓操作 ” 是一个常常应用于数据流控制的处理技巧,典型的乒乓操作方法如图 1 所示。 </P>
        <P align=left>乒乓操作的处理流程为:输入数据流通过 “ 输入数据选择单元 ” 
        将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口 RAM(DPRAM) 、单口 RAM(SPRAM) 
        、 FIFO 等。在第一个缓冲周期,将输入的数据流缓存到 “ 数据缓冲模块 1” ;在第 2 个缓冲周期,通过 “ 输入数据选择单元 ” 
        的切换,将输入的数据流缓存到 “ 数据缓冲模块 2” ,同时将 “ 数据缓冲模块 1” 缓存的第 1 个周期数据通过 “ 输入数据选择单元 ” 
        的选择,送到 “ 数据流运算处理模块 ” 进行运算处理;在第 3 个缓冲周期通过 “ 输入数据选择单元 ” 的再次切换,将输入的数据流缓存到 “ 
        数据缓冲模块 1” ,同时将 “ 数据缓冲模块 2” 缓存的第 2 个周期的数据通过 “ 输入数据选择单元 ” 切换,送到 “ 
        数据流运算处理模块 ” 进行运算处理。如此循环。 </P>
        <P align=left>乒乓操作的最大特点是通过 “ 输入数据选择单元 ” 和 “ 输出数据选择单元 ” 
        按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到 “ 数据流运算处理模块 ” 
        进行运算与处理。把乒乓操作模块当做一个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。所以乒乓操作常常应用于流水线式算法,完成数据的无缝缓冲与处理。 
        </P>
        <P align=left>乒乓操作的第二个优点是可以节约缓冲区空间。比如在 WCDMA 基带应用中, 1 个帧是由 15 
        个时隙组成的,有时需要将 1 整帧的数据延时一个时隙后处理,比较直接的办法是将这帧数据缓存起来,然后延时 1 个时隙进行处理。这时缓冲区的长度是 
        1 整帧数据长,假设数据速率是 3.84Mbps , 1 帧长 10ms ,则此时需要缓冲区长度是 38400 
        位。如果采用乒乓操作,只需定义两个能缓冲 1 个时隙数据的 RAM( 单口 RAM 即可 ) 。当向一块 RAM 写数据的时候,从另一块 RAM 
        读数据,然后送到处理单元处理,此时每块 RAM 的容量仅需 2560 位即可, 2 块 RAM 加起来也只有 5120 位的容量。 </P>
        <P align=center><IMG height=132 
        alt=图2:采用双口RAM,并在DPRAM后引入一级数据预处理模块实现用低速模块处理高速数据流。 
        src="FPGA 设计的四种常用思想与技巧(一).files/design_skill_clip_image002.gif" 
        width=400></P>
        <P align=left>另外,巧妙运用乒乓操作还可以达到用低速模块处理高速数据流的效果。如图 2 所示,数据缓冲模块采用了双口 RAM 
        ,并在 DPRAM 后引入了一级数据预处理模块,这个数据预处理可以根据需要的各种数据运算,比如在 WCDMA 
        设计中,对输入数据流的解扩、解扰、去旋转等。假设端口 A 的输入数据流的速率为 100Mbps ,乒乓操作的缓冲周期是 10ms 
        。以下分析各个节点端口的数据速率。 </P>
        <P align=left>A 端口处输入数据流速率为 100Mbps ,在第 1 个缓冲周期 10ms 内,通过 “ 输入数据选择单元 ” 
        ,从 B1 到达 DPRAM1 。 B1 的数据速率也是 100Mbps , DPRAM1 要在 10ms 内写入 1Mb 数据。同理,在第 2 
        个 10ms ,数据流被切换到 DPRAM2 ,端口 B2 的数据速率也是 100Mbps , DPRAM2 在第 2 个 10ms 被写入 
        1Mb 数据。在第 3 个 10ms ,数据流又切换到 DPRAM1 , DPRAM1 被写入 1Mb 数据。 </P>
        <P align=left>仔细分析就会发现到第 3 个缓冲周期时,留给 DPRAM1 读取数据并送到 “ 数据预处理模块 1” 的时间一共是 
        20ms 。有的工程师困惑于 DPRAM1 的读数时间为什么是 20ms ,这个时间是这样得来的:首先,在在第 2 个缓冲周期向 DPRAM2 
        写数据的 10ms 内, DPRAM1 可以进行读操作;另外,在第 1 个缓冲周期的第 5ms 起 ( 绝对时间为 5ms 时刻 ) , 
        DPRAM1 就可以一边向 500K 以后的地址写数据,一边从地址 0 读数,到达 10ms 时, DPRAM1 刚好写完了 1Mb 
        数据,并且读了 500K 数据,这个缓冲时间内 DPRAM1 读了 5ms ;在第 3 个缓冲周期的第 5ms 起 ( 绝对时间为 35ms 
        时刻 ) ,同理可以一边向 500K 以后的地址写数据一边从地址 0 读数,又读取了 5 个 ms ,所以截止 DPRAM1 
        第一个周期存入的数据被完全覆盖以前, DPRAM1 最多可以读取 20ms 时间,而所需读取的数据为 1Mb ,所以端口 C1 的数据速率为: 
        1Mb/20ms=50Mbps 。因此, “ 数据预处理模块 1” 的最低数据吞吐能力也仅仅要求为 50Mbps 。同理, “ 数据预处理模块 
        2” 的最低数据吞吐能力也仅仅要求为 50Mbps 。换言之,通过乒乓操作, “ 数据预处理模块 ” 
        的时序压力减轻了,所要求的数据处理速率仅仅为输入数据速率的 1/2 。 </P>
        <P align=left>通过乒乓操作实现低速模块处理高速数据的实质是:通过 DPRAM 这种缓存单元实现了数据流的串并转换,并行用 “ 
        数据预处理模块 1” 和 “ 数据预处理模块 2” 处理分流的数据,是面积与速度互换原则的体现! </P>
        <P align=left>&nbsp;</P>
        <P><A 
        href="http://www.pld.com.cn/advance/skill/design_skill2.htm">下一页</A> (1) 
        <A href="http://www.pld.com.cn/advance/skill/design_skill2.htm">(2)</A> 
        <A href="http://www.pld.com.cn/advance/skill/design_skill3.htm">(3)</A> 
        </P>
        <P>&nbsp;</P>
        <P>&nbsp;</P></BLOCKQUOTE><!-- #EndEditable -->
      <P 
class=index2>&nbsp;</P></CENTER></DIV></TD></TR><!--msnavigation--></TBODY></TABLE>
<TABLE class=font9 height=35 cellSpacing=0 cellPadding=0 width=778 align=center 
bgColor=#000000 border=0>
  <TBODY>
  <TR>
    <TD align=middle width="4%" bgColor=#000066 height=10>
      <DIV align=left><FONT face="Arial, Helvetica, sans-serif" 
      color=#ffffff><B><SPAN class=font9></SPAN></B></FONT></DIV></TD>
    <TD align=middle width="96%" bgColor=#000066 height=10>
      <DIV class=index>
      <DIV align=left><B><A class=index 
      href="http://www.pld.com.cn/others/aboutus.html" target=_blank><FONT 
      face="Arial, Helvetica, sans-serif"><SPAN class="index2 style1">about 
      us</SPAN></FONT></A> <FONT color=#cccccc><SPAN 
      class=index2>|</SPAN></FONT><SPAN class=font9><FONT 
      face="Arial, Helvetica, sans-serif" color=#cccccc> Site Map </FONT><FONT 
      color=#cccccc>| </FONT></SPAN></B></DIV></DIV></TD></TR>
  <TR vAlign=center bgColor=#f3f3f3>
    <TD align=middle colSpan=2 height=18>
      <P><FONT color=#666666><SPAN class=font9>copyright&copy; 1999-2003 all rights 
      reserved www.PLD.com.cn</SPAN></FONT></P></TD></TR>
  <TR bgColor=#f3f3f3>
    <TD align=middle colSpan=2 height=23><FONT color=#666666>e-mail: pld<SPAN 
      class=email><IMG height=10 src="FPGA 设计的四种常用思想与技巧(一).files/@.gif" 
      width=7>fpga.com.cn</SPAN></FONT></TD></TR>
  <TR bgColor=#ffffff>
    <TD align=middle colSpan=2 height=23>&nbsp;</TD></TR></TBODY></TABLE>
<P class=index2>&nbsp;</P><!-- #EndTemplate --></BODY></HTML>

⌨️ 快捷键说明

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