pci_wbr_fifo_control.v
上传用户:quan1896
上传日期:2014-05-14
资源大小:211k
文件大小:31k
源码类别:

并行计算

开发平台:

Others

  1. <!-- pf_header_start -->
  2. <html>
  3.   <head>
  4.     <META NAME="keywords" CONTENT="cores, VHDL, Verilog HDL, ASIC, Synthesizable,
  5.       standard cell, IP, Intellectual Property, 32-bit RISC, UART, PCI, SDRAM,
  6.       full custom, system on a chip, SOC, reusable, design, development, synthesis,
  7.       designs, developers, C, Linux, eCos, open, free, open source cores, RTL code,
  8.       system-on-a-chip, circuits, digital, GNU, GPL, core, controller, processor,
  9.       system design, chip design, EDA, design methodology, design tools, ASICs, programmable logic,
  10.       FPGA's, PLDs, CPLDs, verification, Synthesis, HDL, Simulation, IC design software,
  11.       semiconductor design, integrated circuits, system designs, chip designs, EDAs, 
  12.       design methodologies, design tool, ASIC, programmable logics, FPGA, PLD, CPLD, Synthesis, 
  13.       circuit, Synopsys, system design, chip design, programmable logic, FPGA's, PLDs, 
  14.       CPLDs, verification, Simulation">
  15.     <META NAME="description" CONTENT="OPENCORES.ORG endorses development and hosts
  16.       a repository of free, open-source cores (chip designs) and supplemental
  17.       platforms (boards).">
  18.     <STYLE type=text/css>
  19.       BODY {margin: 0;}
  20.       BODY, P, DIV, TD, TR, TH, FORM, OL, UL, LI, B, I, INPUT, TEXTAREA, SELECT,
  21.       FONT {font-size: 10pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  22.       P, TD, FORM, TEXTAREA {font-size: 10pt;}
  23.       H1, H2 {FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica; font-size: 13pt; text-decoration: none}
  24.       .noline {text-decoration: none;}
  25.       .menu_top {text-decoration: none; font-weight: bold;
  26.         font-size: 7pt; color: #000000; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;} 
  27.       .menu_section {text-decoration: none; font-weight: bold;
  28.         font-size: 10pt; color: #ffffff; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;} 
  29.       .menu_item {font-size: 10pt; color: #004488; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  30.       .menu_section_admin {text-decoration: none; font-weight: bold;
  31.         font-size: 10pt; color: #ffff44; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;} 
  32.       .page_title {text-decoration: none; font-weight: bold; color: #c00000; font-size: 13pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  33.       .block_title {text-decoration: none; font-weight: bold; font-size: 11pt; color: #000000; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  34.       .block_subtitle {text-decoration: none; font-weight: bold; font-size: 10pt; color: #000000; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  35.       .title {text-decoration: none; font-weight: bold; font-size: 10pt; color: #000000; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  36.       .large {font-size: 13pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  37.       .medium {font-size: 10pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  38.       .small {font-size: 7pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  39.       .ultrasmall {font-size: 3pt; FONT-FAMILY: Verdana, Tahoma, Arial, Helvetica;}
  40.       .button { font-family:Verdana, Tahoma, Arial, Helvetica; }
  41.       .searchfield {font-family: verdana, arial, helvetica; font-size: 10px; color: #333333; width: 80px; height: 17px;}
  42.     </STYLE>
  43.     <title>OPENCORES.ORG</title>
  44.     <script laguage="Javascript">
  45.       function check(msg) {
  46.         if(confirm(msg)) {
  47.           return true
  48.         } else {
  49.           return false
  50.         }
  51.       }
  52.     </script>
  53.   </head>
  54.   
  55.   <body 
  56.     bgcolor="#e0e0e0" 
  57.     topmargin="0" 
  58.     leftmargin="0" 
  59.     marginwidth="0" 
  60.     marginheight="0" 
  61.     link="#004488" 
  62.     alink="#ff3300"
  63.     vlink="#444444"
  64.   >
  65. <a name="top">
  66. <!-- pf_header_end -->
  67. <center>
  68. <table cellpadding=0 cellspacing=0 border=0 width=96%><tr>
  69. <td width=1 bgcolor=#000000><img width=1 src="/images/dotty.gif"></td>
  70. <td>
  71. <table border=0 cellpadding=0 cellspacing=0 width=100%>
  72. <tr><td background="/images/topbg.gif" bgcolor=#aaddff height=70>
  73. <table width=100% border=0 ><tr><td width=180>
  74. <a href="/"><img border=0 src="/images/oc_logo.gif"></a>
  75. </td><td>
  76. <center>
  77. <!--
  78. <a title="" href="/banner.cgi"><img width=468 height=60 border=0 alt="" src=""></a>
  79. //-->
  80. <script type="text/javascript"><!--
  81. google_ad_client = "pub-9285819221080148";
  82. xgoogle_ad_width = 728;
  83. xgoogle_ad_height = 79;
  84. xgoogle_ad_format = "728x90_as";
  85. google_ad_width = 468;
  86. google_ad_height = 47;
  87. google_ad_format = "468x60_as";
  88. google_ad_type = "text_image";
  89. google_ad_channel ="3274390903";
  90. google_color_border = "aaddff";
  91. xgoogle_color_border = "ffee88";
  92. xgoogle_color_bg = "FFEE88";
  93. google_color_bg = "aaddFF";
  94. google_color_link = "004488";
  95. google_color_url = "b00000";
  96. google_color_text = "000000";
  97. //--></script>
  98. <script type="text/javascript"
  99.   src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  100. </script>
  101. </center>
  102. </td><td align=right>
  103. </td>
  104. </tr></table>
  105. </td></tr>
  106. <tr bgcolor=#000000><td><img height=1 src="/images/dotty.gif"></td></tr>
  107. <tr><td bgcolor=#ffffff>
  108. <table border=0 cellpadding=0 cellspacing=0 width=100%><tr>
  109. <td bgcolor=#ffee88 width=60% background="/images/menu1.gif"></td>
  110. <td bgcolor=#ffee88 width=15 background="/images/menu1.gif" align=right><input type=image border=0 src="/images/exp1pf.gif" onclick="javascript:window.location='/pf.cgi?url=/cvsweb.shtml/pci/rtl/verilog/pci_wbr_fifo_control.v?rev=1.4'"></a></td>
  111. <td bgcolor=#ffffff align=right nowrap>
  112. &nbsp; &nbsp; &nbsp; &nbsp; 
  113. <font class=menu_top size=-1>
  114.         
  115.           <a class=menu_top href="/login.cgi/login">LOGIN</a>
  116.           
  117.             &nbsp; ::: &nbsp;
  118.           
  119.         
  120.           <a class=menu_top href="/recover_pass.cgi/recover_pass">RECOVER PASS</a>
  121.           
  122.             &nbsp; ::: &nbsp;
  123.           
  124.         
  125.           <a class=menu_top href="/get_account.cgi/get_account">GET ACCOUNT</a>
  126.           
  127.         
  128. &nbsp; &nbsp;
  129. </font>
  130. </td></tr>
  131. <tr bgcolor=#ffffff>
  132.   <td></td>
  133.   <td></td>
  134.   <td bgcolor=#000000><img src="/images/dotty.gif"></td>
  135. </tr>
  136. </table>
  137. <table border=0 cellpadding=0 cellspacing=0>
  138. <tr>
  139. <td width=10><img width=10 src="/images/dotty.gif"></td>
  140. <td width=120 valign=top>
  141.         
  142.         <table width=100% border=0 cellpadding=2 cellspacing=0>
  143.           <tr><td><img height=2 src="/images/dotty.gif"></td></tr>
  144.         
  145.          <tr><td bgcolor="#347FB8">
  146.            <img src="/images/bullet.gif">
  147.          
  148.            <font class=menu_section>Browse</font>
  149.          
  150.          </td></tr>
  151.           
  152.            <tr><td>
  153.               
  154.                   
  155.                       <li class=small>
  156.                   
  157.               
  158.             
  159.                 <a class=menu_item href="/browse.cgi/by_category"><font class=menu_item>Projects</font></a></li>
  160.             
  161.            </td></tr>
  162.             
  163.           
  164.            <tr><td>
  165.               
  166.                   
  167.                       <li class=small>
  168.                   
  169.               
  170.             
  171.                 <a class=menu_item href="/cvsweb.shtml/"><font class=menu_item>Code (CVS)</font></a></li>
  172.             
  173.            </td></tr>
  174.             
  175.           
  176.            <tr><td>
  177.               
  178.                   
  179.                       <li class=small>
  180.                   
  181.               
  182.             
  183.                 <a class=menu_item href="/forums.cgi"><font class=menu_item>Forums</font></a></li>
  184.             
  185.            </td></tr>
  186.             
  187.           
  188.            <tr><td>
  189.               
  190.                   
  191.                       <li class=small>
  192.                   
  193.               
  194.             
  195.                 <a class=menu_item href="/news.cgi/list/1"><font class=menu_item>News</font></a></li>
  196.             
  197.            </td></tr>
  198.             
  199.           
  200.            <tr><td>
  201.               
  202.                   
  203.                       <li class=small>
  204.                   
  205.               
  206.             
  207.                 <a class=menu_item href="/articles.cgi/list"><font class=menu_item>Articles</font></a></li>
  208.             
  209.            </td></tr>
  210.             
  211.           
  212.            <tr><td>
  213.               
  214.                   
  215.                       <li class=small>
  216.                   
  217.               
  218.             
  219.                 <a class=menu_item href="/polls.cgi/list"><font class=menu_item>Polls</font></a></li>
  220.             
  221.            </td></tr>
  222.             
  223.           
  224.           <tr><td><font size=-2>&nbsp;</font></td></tr>
  225.         
  226.          <tr><td bgcolor="#347FB8">
  227.            <img src="/images/bullet.gif">
  228.          
  229.            <font class=menu_section>OpenCores</font>
  230.          
  231.          </td></tr>
  232.           
  233.            <tr><td>
  234.               
  235.                   
  236.                       <li class=small>
  237.                   
  238.               
  239.             
  240.                 <a class=menu_item href="/faq.cgi/index"><font class=menu_item>FAQ</font></a></li>
  241.             
  242.            </td></tr>
  243.             
  244.           
  245.            <tr><td>
  246.               
  247.                   
  248.                       <li class=small>
  249.                   
  250.               
  251.             
  252.                 <a class=menu_item href="/projects.cgi/web/opencores/cvs_howto"><font class=menu_item>CVS HowTo</font></a></li>
  253.             
  254.            </td></tr>
  255.             
  256.           
  257.            <tr><td>
  258.               
  259.                   
  260.                       <li class=small>
  261.                   
  262.               
  263.             
  264.                 <a class=menu_item href="/projects.cgi/web/opencores/mission"><font class=menu_item>Mission</font></a></li>
  265.             
  266.            </td></tr>
  267.             
  268.           
  269.            <tr><td>
  270.               
  271.                   
  272.                       <li class=small>
  273.                   
  274.               
  275.             
  276.                 <a class=menu_item href="/projects.cgi/web/opencores/media"><font class=menu_item>Media</font></a></li>
  277.             
  278.            </td></tr>
  279.             
  280.           
  281.            <tr><td>
  282.               
  283.                   
  284.                       <li class=small>
  285.                   
  286.               
  287.             
  288.                 <a class=menu_item href="/projects.cgi/web/opencores/tools"><font class=menu_item>Tools</font></a></li>
  289.             
  290.            </td></tr>
  291.             
  292.           
  293.            <tr><td>
  294.               
  295.                   
  296.                       <li class=small>
  297.                   
  298.               
  299.             
  300.                 <a class=menu_item href="/projects.cgi/web/opencores/sponsors"><font class=menu_item>Sponsors</font></a></li>
  301.             
  302.            </td></tr>
  303.             
  304.           
  305.            <tr><td>
  306.               
  307.                   
  308.                       <li class=small>
  309.                   
  310.               
  311.             
  312.                 <a class=menu_item href="/projects.cgi/web/opencores/mirrors"><font class=menu_item>Mirrors</font></a></li>
  313.             
  314.            </td></tr>
  315.             
  316.           
  317.            <tr><td>
  318.               
  319.                   
  320.                       <li class=small>
  321.                   
  322.               
  323.             
  324.                 <a class=menu_item href="/projects.cgi/web/opencores/logos"><font class=menu_item>Logos</font></a></li>
  325.             
  326.            </td></tr>
  327.             
  328.           
  329.            <tr><td>
  330.               
  331.                   
  332.                       <li class=small>
  333.                   
  334.               
  335.             
  336.                 <a class=menu_item href="/projects.cgi/web/opencores/contacts"><font class=menu_item>Contact us</font></a></li>
  337.             
  338.            </td></tr>
  339.             
  340.           
  341.           <tr><td><font size=-2>&nbsp;</font></td></tr>
  342.         
  343.          <tr><td bgcolor="#347FB8">
  344.            <img src="/images/bullet.gif">
  345.          
  346.            <font class=menu_section>Tools</font>
  347.          
  348.          </td></tr>
  349.           
  350.            <tr><td>
  351.               
  352.                   
  353.                       <li class=small>
  354.                   
  355.               
  356.             
  357.                 <font class=menu_item><a href="/search.cgi">Search</a><br><table><tr><form action=/search.cgi/do_search><td><font class=small>&nbsp;&nbsp;</font></td><td><input class=searchfield type=text name=query></td></form></tr></table></font></li>
  358.             
  359.            </td></tr>
  360.             
  361.           
  362.            <tr><td>
  363.               
  364.                   
  365.                       <li class=small>
  366.                   
  367.               
  368.             
  369.                 <a class=menu_item href="/cvsget.shtml"><font class=menu_item>Download Cores (CVSGet)</font></a></li>
  370.             
  371.            </td></tr>
  372.             
  373.           
  374.           <tr><td><font size=-2>&nbsp;</font></td></tr>
  375.         
  376.          <tr><td bgcolor="#347FB8">
  377.            <img src="/images/bullet.gif">
  378.          
  379.            <font class=menu_section>More</font>
  380.          
  381.          </td></tr>
  382.           
  383.            <tr><td>
  384.               
  385.                   
  386.                       <li class=small>
  387.                   
  388.               
  389.             
  390.                 <a class=menu_item href="/projects.cgi/web/wishbone/"><font class=menu_item>Wishbone</font></a></li>
  391.             
  392.            </td></tr>
  393.             
  394.           
  395.            <tr><td>
  396.               
  397.                   
  398.                       <li class=small>
  399.                   
  400.               
  401.             
  402.                 <a class=menu_item href="/projects.cgi/web/perlilog/"><font class=menu_item>Perlilog</font></a></li>
  403.             
  404.            </td></tr>
  405.             
  406.           
  407.            <tr><td>
  408.               
  409.                   
  410.                       <li class=small>
  411.                   
  412.               
  413.             
  414.                 <a class=menu_item href="/projects.cgi/web/edatools/"><font class=menu_item>EDA tools</font></a></li>
  415.             
  416.            </td></tr>
  417.             
  418.           
  419.            <tr><td>
  420.               
  421.                   
  422.                       <li class=small>
  423.                   
  424.               
  425.             
  426.                 <a class=menu_item href="/projects.cgi/web/opentech/"><font class=menu_item>OpenTech CD</font></a></li>
  427.             
  428.            </td></tr>
  429.             
  430.           
  431.           <tr><td><font size=-2>&nbsp;</font></td></tr>
  432.         
  433.         </table>
  434. </td>
  435. <td width=10><img width=10 src="/images/dotty.gif"></td>
  436. <td background="/images/vpd.gif"><img width=1 src="/images/dotty.gif"></td>
  437. <td width=10><img width=10 src="/images/dotty.gif"></td>
  438. <td valign=top>
  439.         
  440.         <table width=100% cellpadding=2 cellspacing=0 border=0>
  441.           <tr><td><img height=2 src="/images/dotty.gif"></td></tr>
  442.         </table>
  443.         
  444. <table width=100% cellspacing=0 cellpadding=0 border=0><tr><td>
  445. <!-- pf_body_start -->
  446.  
  447. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  448. <html>
  449. <head>
  450. <title>pci/rtl/verilog/pci_wbr_fifo_control.v - view - 1.4</title>
  451. <meta name="robots" content="nofollow" />
  452. <meta name="generator" content="FreeBSD-CVSweb 3.0.5" />
  453. <meta http-equiv="Content-Script-Type" content="text/javascript" />
  454. <meta http-equiv="Content-Style-Type" content="text/css" />
  455. <link rel="stylesheet" type="text/css" href="/css/cvsweb.css" />
  456. </head>
  457. <body class="src">
  458. <table class="navigate-header" width="100%" summary="Navigation">
  459.  <tr>
  460.   <td>
  461. <a href="./pci_wbr_fifo_control.v#rev1.4"><img src="/icons/back.gif" alt="[BACK]" border="0" width="20" height="22" /></a><b>Return to <a href="./pci_wbr_fifo_control.v#rev1.4">pci_wbr_fifo_control.v</a> CVS log</b> <img src="/icons/text.gif" alt="[TXT]" border="0" width="20" height="22" /></td>  <td style="text-align: right"><img src="/icons/dir.gif" alt="[DIR]" border="0" width="20" height="22" /> <b>Up to  <a href="/cvsweb.shtml/#dirlist">[Official OpenCores CVS Repository]</a> / <a href="/cvsweb.shtml/pci/#dirlist">pci</a> / <a href="/cvsweb.shtml/pci/rtl/#dirlist">rtl</a> / <a href="/cvsweb.shtml/pci/rtl/verilog/#dirlist">verilog</a></b></td>
  462.  </tr>
  463. </table>
  464. <hr />
  465. <div class="log-markup">
  466. File:&nbsp;
  467.  <a href="/cvsweb.shtml/#dirlist">[Official OpenCores CVS Repository]</a> / <a href="/cvsweb.shtml/pci/#dirlist">pci</a> / <a href="/cvsweb.shtml/pci/rtl/#dirlist">rtl</a> / <a href="/cvsweb.shtml/pci/rtl/verilog/#dirlist">verilog</a> / <a href="/cvsweb.shtml/pci/rtl/verilog/pci_wbr_fifo_control.v">pci_wbr_fifo_control.v</a><br />
  468. <a name="rev1.4"></a><a name="wb2hpi"></a><a name="rel_WB_B3"></a><a name="rel_9"></a><a name="rel_8"></a><a name="rel_7"></a><a name="rel_6"></a><a name="rel_13"></a><a name="rel_12"></a><a name="rel_11"></a><a name="rel_10"></a><a name="asyst_3"></a><a name="asyst_2"></a><a name="HEAD"></a>
  469.  Revision <b>1.4</b>: <a href="/cvsweb.cgi/~checkout~/pci/rtl/verilog/pci_wbr_fifo_control.v?rev=1.4;content-type=text%2Fplain" class="download-link">download</a> - view: <a href="pci_wbr_fifo_control.v?rev=1.4;content-type=text%2Fplain" class="display-link">text</a>, <a href="pci_wbr_fifo_control.v?annotate=1.4">annotated</a> - <a href="pci_wbr_fifo_control.v?r1=1.4#rev1.4">select&nbsp;for&nbsp;diffs</a><br />
  470. <i>Thu Aug 14 13:06:03 2003 UTC</i> (3 years, 9 months ago) by <i>simons</i><br />
  471. Branches: <a href="./pci_wbr_fifo_control.v?only_with_tag=MAIN">MAIN</a><br />
  472. CVS tags: <a href="./pci_wbr_fifo_control.v?only_with_tag=wb2hpi">wb2hpi</a>,
  473. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_WB_B3">rel_WB_B3</a>,
  474. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_9">rel_9</a>,
  475. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_8">rel_8</a>,
  476. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_7">rel_7</a>,
  477. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_6">rel_6</a>,
  478. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_13">rel_13</a>,
  479. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_12">rel_12</a>,
  480. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_11">rel_11</a>,
  481. <a href="./pci_wbr_fifo_control.v?only_with_tag=rel_10">rel_10</a>,
  482. <a href="./pci_wbr_fifo_control.v?only_with_tag=asyst_3">asyst_3</a>,
  483. <a href="./pci_wbr_fifo_control.v?only_with_tag=asyst_2">asyst_2</a>,
  484. <a href="./pci_wbr_fifo_control.v?only_with_tag=HEAD">HEAD</a><br />
  485. <pre class="log">
  486. synchronizer_flop replaced with pci_synchronizer_flop, artisan ram instance updated.
  487. </pre>
  488. </div>
  489. <hr /><pre>
  490. //////////////////////////////////////////////////////////////////////
  491. ////                                                              ////
  492. ////  File name &quot;wbr_fifo_control.v&quot;                              ////
  493. ////                                                              ////
  494. ////  This file is part of the &quot;PCI bridge&quot; project               ////
  495. ////  http://www.opencores.org/cores/pci/                         ////
  496. ////                                                              ////
  497. ////  Author(s):                                                  ////
  498. ////      - Miha Dolenc (mihad@opencores.org)                     ////
  499. ////                                                              ////
  500. ////  All additional information is avaliable in the README       ////
  501. ////  file.                                                       ////
  502. ////                                                              ////
  503. ////                                                              ////
  504. //////////////////////////////////////////////////////////////////////
  505. ////                                                              ////
  506. //// Copyright (C) 2001 Miha Dolenc, mihad@opencores.org          ////
  507. ////                                                              ////
  508. //// This source file may be used and distributed without         ////
  509. //// restriction provided that this copyright statement is not    ////
  510. //// removed from the file and that any derivative work contains  ////
  511. //// the original copyright notice and the associated disclaimer. ////
  512. ////                                                              ////
  513. //// This source file is free software; you can redistribute it   ////
  514. //// and/or modify it under the terms of the GNU Lesser General   ////
  515. //// Public License as published by the Free Software Foundation; ////
  516. //// either version 2.1 of the License, or (at your option) any   ////
  517. //// later version.                                               ////
  518. ////                                                              ////
  519. //// This source is distributed in the hope that it will be       ////
  520. //// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
  521. //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
  522. //// PURPOSE.  See the GNU Lesser General Public License for more ////
  523. //// details.                                                     ////
  524. ////                                                              ////
  525. //// You should have received a copy of the GNU Lesser General    ////
  526. //// Public License along with this source; if not, download it   ////
  527. //// from http://www.opencores.org/lgpl.shtml                     ////
  528. ////                                                              ////
  529. //////////////////////////////////////////////////////////////////////
  530. //
  531. // CVS Revision History
  532. //
  533. // $Log: pci_wbr_fifo_control.v,v $
  534. // Revision 1.4  2003/08/14 13:06:03  simons
  535. // synchronizer_flop replaced with pci_synchronizer_flop, artisan ram instance updated.
  536. //
  537. // Revision 1.3  2003/07/29 08:20:11  mihad
  538. // Found and simulated the problem in the synchronization logic.
  539. // Repaired the synchronization logic in the FIFOs.
  540. //
  541. // Revision 1.2  2003/03/26 13:16:18  mihad
  542. // Added the reset value parameter to the synchronizer flop module.
  543. // Added resets to all synchronizer flop instances.
  544. // Repaired initial sync value in fifos.
  545. //
  546. // Revision 1.1  2003/01/27 16:49:31  mihad
  547. // Changed module and file names. Updated scripts accordingly. FIFO synchronizations changed.
  548. //
  549. // Revision 1.6  2002/11/27 20:36:12  mihad
  550. // Changed the code a bit to make it more readable.
  551. // Functionality not changed in any way.
  552. // More robust synchronization in fifos is still pending.
  553. //
  554. // Revision 1.5  2002/09/30 16:03:04  mihad
  555. // Added meta flop module for easier meta stable FF identification during synthesis
  556. //
  557. // Revision 1.4  2002/09/25 15:53:52  mihad
  558. // Removed all logic from asynchronous reset network
  559. //
  560. // Revision 1.3  2002/02/01 15:25:13  mihad
  561. // Repaired a few bugs, updated specification, added test bench files and design document
  562. //
  563. // Revision 1.2  2001/10/05 08:14:30  mihad
  564. // Updated all files with inclusion of timescale file for simulation purposes.
  565. //
  566. // Revision 1.1.1.1  2001/10/02 15:33:47  mihad
  567. // New project directory structure
  568. //
  569. //
  570. /* FIFO_CONTROL module provides read/write address and status generation for
  571.    FIFOs implemented with standard dual port SRAM cells in ASIC or FPGA designs */
  572. `include &quot;pci_constants.v&quot;
  573. // synopsys translate_off
  574. `include &quot;timescale.v&quot;
  575. // synopsys translate_on
  576. module pci_wbr_fifo_control
  577. (
  578.     rclock_in,
  579.     wclock_in,
  580.     renable_in,
  581.     wenable_in,
  582.     reset_in,
  583.     flush_in,
  584.     empty_out,
  585.     waddr_out,
  586.     raddr_out,
  587.     rallow_out,
  588.     wallow_out
  589. ) ;
  590. parameter ADDR_LENGTH = 7 ;
  591. // independent clock inputs - rclock_in = read clock, wclock_in = write clock
  592. input  rclock_in, wclock_in;
  593. // enable inputs - read address changes on rising edge of rclock_in when reads are allowed
  594. //                 write address changes on rising edge of wclock_in when writes are allowed
  595. input  renable_in, wenable_in;
  596. // reset input
  597. input  reset_in;
  598. // flush input
  599. input flush_in ;
  600. // empty status output
  601. output empty_out;
  602. // read and write addresses outputs
  603. output [(ADDR_LENGTH - 1):0] waddr_out, raddr_out;
  604. // read and write allow outputs
  605. output rallow_out, wallow_out ;
  606. // read address register
  607. reg [(ADDR_LENGTH - 1):0] raddr ;
  608. // write address register
  609. reg [(ADDR_LENGTH - 1):0] waddr;
  610. assign waddr_out = waddr ;
  611. // grey code register
  612. reg [(ADDR_LENGTH - 1):0] wgrey_addr ;
  613. // next write gray address calculation - bitwise xor between address and shifted address
  614. wire [(ADDR_LENGTH - 2):0] calc_wgrey_next  = waddr[(ADDR_LENGTH - 1):1] ^ waddr[(ADDR_LENGTH - 2):0] ;
  615. // grey code register
  616. reg [(ADDR_LENGTH - 1):0] rgrey_addr ;
  617. // next read gray address calculation - bitwise xor between address and shifted address
  618. wire [(ADDR_LENGTH - 2):0] calc_rgrey_next  = raddr[(ADDR_LENGTH - 1):1] ^ raddr[(ADDR_LENGTH - 2):0] ;
  619. // FF for registered empty flag
  620. wire empty ;
  621. // write allow wire
  622. wire wallow = wenable_in ;
  623. // write allow output assignment
  624. assign wallow_out = wallow ;
  625. // read allow wire
  626. wire rallow ;
  627. // clear generation for FFs and registers
  628. wire clear = reset_in /*|| flush_in*/ ; // flush changed to synchronous operation
  629. assign empty_out = empty ;
  630. //rallow generation
  631. assign rallow = renable_in &amp;&amp; !empty ; // reads allowed if read enable is high and FIFO is not empty
  632. // rallow output assignment
  633. assign rallow_out = renable_in ;
  634. // at any clock edge that rallow is high, this register provides next read address, so wait cycles are not necessary
  635. // when FIFO is empty, this register provides actual read address, so first location can be read
  636. reg [(ADDR_LENGTH - 1):0] raddr_plus_one ;
  637. // address output mux - when FIFO is empty, current actual address is driven out, when it is non - empty next address is driven out
  638. // done for zero wait state burst
  639. assign raddr_out = rallow ? raddr_plus_one : raddr ;
  640. always@(posedge rclock_in or posedge clear)
  641. begin
  642.     if (clear)
  643.     begin
  644.         raddr_plus_one &lt;= #`FF_DELAY 2 ;
  645.         raddr          &lt;= #`FF_DELAY 1 ;
  646.     end
  647.     else if (flush_in)
  648.     begin
  649.         raddr_plus_one &lt;= #`FF_DELAY waddr + 1'b1 ; 
  650.         raddr          &lt;= #`FF_DELAY waddr ;
  651.     end
  652.     else if (rallow)
  653.     begin
  654.         raddr_plus_one &lt;= #`FF_DELAY raddr_plus_one + 1'b1 ;
  655.         raddr          &lt;= #`FF_DELAY raddr_plus_one ;
  656.     end
  657. end
  658. /*-----------------------------------------------------------------------------------------------
  659. Read address control consists of Read address counter and Grey Address register
  660. --------------------------------------------------------------------------------------------------*/
  661. // grey coded address
  662. always@(posedge rclock_in or posedge clear)
  663. begin
  664.     if (clear)
  665.     begin
  666.         rgrey_addr &lt;= #`FF_DELAY 0 ;
  667.     end
  668.     else if (flush_in)
  669.     begin
  670.         rgrey_addr &lt;= #`FF_DELAY wgrey_addr ;   // when flushed, copy value from write side
  671.     end
  672.     else if (rallow)
  673.     begin
  674.         rgrey_addr &lt;= #`FF_DELAY {raddr[ADDR_LENGTH - 1], calc_rgrey_next} ;
  675.     end
  676. end
  677. /*--------------------------------------------------------------------------------------------
  678. Write address control consists of write address counter and Grey Code Register
  679. ----------------------------------------------------------------------------------------------*/
  680. // grey coded address for status generation in write clock domain
  681. always@(posedge wclock_in or posedge clear)
  682. begin
  683.     if (clear)
  684.     begin
  685.         wgrey_addr &lt;= #1 0 ;
  686.     end
  687.     else
  688.     if (wallow)
  689.     begin
  690.         wgrey_addr &lt;= #1 {waddr[(ADDR_LENGTH - 1)], calc_wgrey_next} ;
  691.     end
  692. end
  693. // write address counter - nothing special except initial value
  694. always@(posedge wclock_in or posedge clear)
  695. begin
  696.     if (clear)
  697.         // initial value is 1
  698.         waddr &lt;= #`FF_DELAY 1 ;
  699.     else
  700.     if (wallow)
  701.         waddr &lt;= #`FF_DELAY waddr + 1'b1 ;
  702. end
  703. /*------------------------------------------------------------------------------------------------------------------------------
  704. Empty control:
  705. Gray coded write address pointer is synchronized to read clock domain and compared to Gray coded read address pointer.
  706. If they are equal, fifo is empty.
  707. --------------------------------------------------------------------------------------------------------------------------------*/
  708. wire [(ADDR_LENGTH - 1):0] rclk_sync_wgrey_addr ;
  709. reg  [(ADDR_LENGTH - 1):0] rclk_wgrey_addr ;
  710. pci_synchronizer_flop #(ADDR_LENGTH, 0) i_synchronizer_reg_wgrey_addr
  711. (
  712.     .data_in        (wgrey_addr),
  713.     .clk_out        (rclock_in),
  714.     .sync_data_out  (rclk_sync_wgrey_addr),
  715.     .async_reset    (clear)
  716. ) ;
  717. always@(posedge rclock_in or posedge clear)
  718. begin
  719.     if (clear)
  720.         rclk_wgrey_addr &lt;= #`FF_DELAY 0 ;
  721.     else
  722.         rclk_wgrey_addr &lt;= #`FF_DELAY rclk_sync_wgrey_addr ;
  723. end
  724. assign empty = (rgrey_addr == rclk_wgrey_addr) ;
  725. endmodule
  726. </pre>
  727. <hr />
  728. <address><span style="font-size: smaller">FreeBSD-CVSweb &lt;<a href="mailto:freebsd-cvsweb@FreeBSD.org">freebsd-cvsweb@FreeBSD.org</a>&gt;</span></address>
  729. </body>
  730. </html>
  731. <!-- pf_body_end -->
  732. </td>
  733. <td><img width=15 src="/images/dotty.gif"></td>
  734. </tr></table>
  735. <xcenter>
  736. <p>
  737. <table width=100% cellpadding=0 cellspacing=0 border=0>
  738.       <tr><td align=right valign=bottom><a title='Top' href='#top'><img border=0 alt='Top' src='/images/hr_up.gif'></a></td></tr>
  739.       <tr><td background='/images/hpd.gif'><img height=1 border=0 src='/images/dotty.gif'></td></tr><tr><td height=4><img height=4 src='/images/dotty.gif'></td></tr></table>
  740. &nbsp;
  741. <br>
  742. <!--
  743. <table border=0 cellpadding=0 cellspacing=1 bgcolor=#ffffff><tr><td>
  744. <table cellpadding=0 cellspacing=0 border=0 bgcolor=#ffffff><tr><td>
  745. //-->
  746. <script type="text/javascript"><!--
  747. google_ad_client = "pub-9285819221080148";
  748. google_alternate_color = "FFFFFF";
  749. google_ad_width = 728;
  750. google_ad_height = 90;
  751. google_ad_format = "728x90_as";
  752. google_ad_type = "text_image";
  753. google_ad_channel ="3034172958";
  754. google_color_border = "ffffff";
  755. google_color_bg = "ffffff";
  756. google_color_link = "444488";
  757. google_color_url = "b00000";
  758. google_color_text = "666666";
  759. //--></script>
  760. <script type="text/javascript"
  761.   src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  762. </script>
  763. <!--
  764. </td></tr></table>
  765. </td></tr></table>
  766. //-->
  767. </center>
  768. <img border=0 src="/images/dotty.gif" height=1 width=400>
  769. <img border=0 src="/images/dotty.gif" height=1 width=30>
  770. <img border=0 src="/images/dotty.gif" height=1 width=30>
  771. <img border=0 src="/images/dotty.gif" height=1 width=30>
  772. <img border=0 src="/images/dotty.gif" height=1 width=30>
  773. <img border=0 src="/images/dotty.gif" height=1 width=30>
  774. <img border=0 src="/images/dotty.gif" height=1 width=30>
  775. <img border=0 src="/images/dotty.gif" height=1 width=30>
  776. <img border=0 src="/images/dotty.gif" height=1 width=30>
  777. <img border=0 src="/images/dotty.gif" height=1 width=30>
  778. <img border=0 src="/images/dotty.gif" height=1 width=30>
  779. <img border=0 src="/images/dotty.gif" height=1 width=30>
  780. <img border=0 src="/images/dotty.gif" height=1 width=30>
  781. <img border=0 src="/images/dotty.gif" height=1 width=30>
  782. <img border=0 src="/images/dotty.gif" height=1 width=30>
  783. <img border=0 src="/images/dotty.gif" height=1 width=30>
  784. <img border=0 src="/images/dotty.gif" height=1 width=30>
  785. <img border=0 src="/images/dotty.gif" height=1 width=30>
  786. <img border=0 src="/images/dotty.gif" height=1 width=30>
  787. <img border=0 src="/images/dotty.gif" height=1 width=30>
  788. <img border=0 src="/images/dotty.gif" height=1 width=30>
  789. <img border=0 src="/images/dotty.gif" height=1 width=30>
  790. <img border=0 src="/images/dotty.gif" height=1 width=30>
  791. <img border=0 src="/images/dotty.gif" height=1 width=30>
  792. <img border=0 src="/images/dotty.gif" height=1 width=30>
  793. </td></tr>
  794. </table>
  795. &nbsp;
  796. </td></tr>
  797. <tr bgcolor=#000000><td><img height=1 src="/images/dotty.gif"></td></tr>
  798. </table>
  799. <table background="/images/topbg.gif" width=100% cellpadding=0 cellspacing=0 border=0 bgcolor=#aaddff>
  800. <tr><td align=right>
  801. Copyright (c) 1999-2007 OPENCORES.ORG. All rights reserved. &nbsp;
  802. </td></tr>
  803. <tr><td>
  804. &nbsp;
  805. </td></tr>
  806. </table>
  807. </td>
  808. <td width=1 bgcolor=#000000><img width=1 src="/images/dotty.gif"></td>
  809. <td width=1 bgcolor=#f0f0c8><img width=1 src="/images/dotty.gif"></td>
  810. </tr></table>
  811. </center>
  812. <!-- pf_footer_start -->
  813.   </body>
  814. </html>
  815. <!-- pf_footer_end -->