pacoblaze_dregister.v.html

来自「和picoblaze完全兼容的mcu ip core」· HTML 代码 · 共 365 行 · 第 1/2 页

HTML
365
字号
}nextpage = (inc==1) ? next_page() : prev_page();wrappage = (inc==1) ? first_page() : last_page();if (nextpage!="" || wrappage!="") {if (nextpage=="") { if (!confirm(text + " not found. Search again from "+((inc==1)?"first":"last")+" page?"))return false;nextpage=wrappage;}location=nextpage+ "?" + escape(text) + "&" + ( y - window.pageYOffset ) + "&" + inc;return false;}if (confirm(text + " not found. Search again from "+((inc==1)?"start":"end")+"?")) {if (inc==1) i=-1;else i=document.links.length;} else return false;}return true;}function loadqs() {var opt=location.search, text="", s="", y=0, si=0, inc=1;if (opt.length==0) return true;  for (var i=1;i<opt.length;i++) { if (opt.charAt(i) != "&") s += opt.charAt(i);else {if (text=="") text=unescape(s);else             y=s;s="";}}if (text=="") return true;if (s == "-1") { si=document.links.length-1; inc=-1; }window.scrollTo(0,0);search(text,y,si,inc);return true;}// --></script><body onload='loadqs();'><script language="JavaScript"type="text/javascript"><!--function prev_page() { return ""; }function last_page() { return ""; }// --></script><center><table class=NB cols=7 ><tr><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index.html';"><a target="_top" href="index.html">Hierarchy</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-f.html';"><a target="_top" href="index-f.html">Files</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-m.html';"><a target="_top" href="index-m.html">Modules</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-s.html';"><a target="_top" href="index-s.html">Signals</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-t.html';"><a target="_top" href="index-t.html">Tasks</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-fn.html';"><a target="_top" href="index-fn.html">Functions</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='http://www.burbleland.com/v2html/help_7_30.html?htf-ni-s-';"><a target="_top" href="http://www.burbleland.com/v2html/help_7_30.html?htf-ni-s-">Help</a></td></tr></table></center><pre><span class=C>/*  Copyright (C) 2006 Pablo Bleyer Kocik.  Redistribution and use in source and binary forms, with or without  modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this  list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice,  this list of conditions and the following disclaimer in the documentation  and/or other materials provided with the distribution.  3. The name of the author may not be used to endorse or promote products  derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE AUTHOR &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  POSSIBILITY OF SUCH DAMAGE.*/</span><span class=C>/** @file  PacoBlaze Dual Register File; dual-port RAM.*/</span><span class=M>`ifndef</span> <a  onClick="return qs(event,this,0)"  class=D href="#34">PACOBLAZE_DREGISTER_V_</a><a name="34"></a><span class=M>`define</span> <a  onClick="return qs(event,this,0)"  class=D href="#34">PACOBLAZE_DREGISTER_V_</a><span class=M>`include</span> <a  onClick="return qs(event,this,0)"  class=S href="pacoblaze_inc.v.html">&quot;pacoblaze_inc.v&quot;</a><a name="pacoblaze3m_register"></a><span class=K>module</span> <span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze3m.v.html#10">PACOBLAZE_REGISTER</a>(  <a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>, <a  onClick="return qs(event,this,2)"  class=SI href="#46">x_write_enable</a>, <a  onClick="return qs(event,this,3)"  class=SI href="#48">x_data_in</a>, <a  onClick="return qs(event,this,4)"  class=SO href="#49">x_data_out</a>,  <a  onClick="return qs(event,this,5)"  class=SI href="#47">y_address</a>, <a  onClick="return qs(event,this,6)"  class=SO href="#49">y_data_out</a>,  <a  onClick="return qs(event,this,7)"  class=SI href="#46">wx_write_enable</a>, <a  onClick="return qs(event,this,8)"  class=SI href="#48">w_data_in</a>, <a  onClick="return qs(event,this,9)"  class=SO href="#50">u_data_out</a>, <a  onClick="return qs(event,this,10)"  class=SO href="#50">v_data_out</a>,  <a  onClick="return qs(event,this,11)"  class=SI href="#45">reset</a>, <a  onClick="return qs(event,this,12)"  class=SI href="#45">clk</a>);<a name="45"></a><span class=K>input</span> <a  onClick="return qs(event,this,12)"  class=SI href="#45">clk</a>, <a  onClick="return qs(event,this,11)"  class=SI href="#45">reset</a>; <span class=C>///&lt; Clock, reset</span><a name="46"></a><span class=K>input</span> <a  onClick="return qs(event,this,2)"  class=SI href="#46">x_write_enable</a>, <a  onClick="return qs(event,this,7)"  class=SI href="#46">wx_write_enable</a>; <span class=C>///&lt; Write single or contiguous (wide) registers</span><a name="47"></a><span class=K>input</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#110">register_depth</a>-1:0] <a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>, <a  onClick="return qs(event,this,5)"  class=SI href="#47">y_address</a>; <span class=C>///&lt; Register x, y address</span><a name="48"></a><span class=K>input</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#101">register_width</a>-1:0] <a  onClick="return qs(event,this,3)"  class=SI href="#48">x_data_in</a>, <a  onClick="return qs(event,this,8)"  class=SI href="#48">w_data_in</a>; <span class=C>///&lt; Register x, w data input</span><a name="49"></a><span class=K>output</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#101">register_width</a>-1:0] <a  onClick="return qs(event,this,4)"  class=SO href="#69">x_data_out</a>, <a  onClick="return qs(event,this,6)"  class=SO href="#72">y_data_out</a>; <span class=C>///&lt; Register x, y data output</span><a name="50"></a><span class=K>output</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#101">register_width</a>-1:0] <a  onClick="return qs(event,this,9)"  class=SO href="#68">u_data_out</a>, <a  onClick="return qs(event,this,10)"  class=SO href="#71">v_data_out</a>; <span class=C>///&lt; Register u, v data output</span><span class=K>reg</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#101">register_width</a>-1:0]<a name="53"></a>  <a  onClick="return qs(event,this,13)"  class=SR href="#77">dpre</a>[0:(<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#115">register_size</a>&gt;&gt;1)-1], <span class=C>// even position dual-port ram</span><a name="54"></a>  <a  onClick="return qs(event,this,14)"  class=SR href="#78">dpro</a>[0:(<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#115">register_size</a>&gt;&gt;1)-1]; <span class=C>// odd position dual-port ram</span><span class=K>wire</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#110">register_depth</a>-2:0]<a name="57"></a>  <a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a> = <a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>[<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#110">register_depth</a>-1:1], <span class=C>// base x-register address</span><a name="58"></a>  <a  onClick="return qs(event,this,16)"  class=SW href="#58">y_address_base</a> = <a  onClick="return qs(event,this,5)"  class=SI href="#47">y_address</a>[<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#110">register_depth</a>-1:1]; <span class=C>// base y-register address</span><span class=K>wire</span> [<span class=D>`</span><a  onClick="return qs(event,this,0)"  class=D href="pacoblaze_inc.v.html#101">register_width</a>-1:0]<a name="61"></a>  <a  onClick="return qs(event,this,17)"  class=SW href="#61">dpre_in</a> = <a  onClick="return qs(event,this,3)"  class=SI href="#48">x_data_in</a>, <span class=C>// x-register data in</span><a name="62"></a>  <a  onClick="return qs(event,this,18)"  class=SW href="#62">dpro_in</a> = (<a  onClick="return qs(event,this,7)"  class=SI href="#46">wx_write_enable</a>) ? <a  onClick="return qs(event,this,8)"  class=SI href="#48">w_data_in</a> : <a  onClick="return qs(event,this,3)"  class=SI href="#48">x_data_in</a>; <span class=C>// wx-register data in</span><span class=K>wire</span><a name="65"></a>  <a  onClick="return qs(event,this,19)"  class=SW href="#65">dpre_we</a> = (<a  onClick="return qs(event,this,7)"  class=SI href="#46">wx_write_enable</a> || <a  onClick="return qs(event,this,2)"  class=SI href="#46">x_write_enable</a> &amp;&amp; !<a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>[0]), <span class=C>// write even</span><a name="66"></a>  <a  onClick="return qs(event,this,20)"  class=SW href="#66">dpro_we</a> = (<a  onClick="return qs(event,this,7)"  class=SI href="#46">wx_write_enable</a> || <a  onClick="return qs(event,this,2)"  class=SI href="#46">x_write_enable</a> &amp;&amp; <a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>[0]); <span class=C>// write odd</span><a name="68"></a><span class=K>assign</span> <a  onClick="return qs(event,this,9)"  class=SO href="#50">u_data_out</a> = <a  onClick="return qs(event,this,14)"  class=SR href="#78">dpro</a>[<a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a>]; <span class=C>// always odd (high) x</span><a name="69"></a><span class=K>assign</span> <a  onClick="return qs(event,this,4)"  class=SO href="#49">x_data_out</a> =  (<a  onClick="return qs(event,this,1)"  class=SI href="#47">x_address</a>[0]) ? <a  onClick="return qs(event,this,14)"  class=SR href="#78">dpro</a>[<a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a>] : <a  onClick="return qs(event,this,13)"  class=SR href="#77">dpre</a>[<a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a>]; <span class=C>// x-register output</span><a name="71"></a><span class=K>assign</span> <a  onClick="return qs(event,this,10)"  class=SO href="#50">v_data_out</a> = <a  onClick="return qs(event,this,14)"  class=SR href="#78">dpro</a>[<a  onClick="return qs(event,this,16)"  class=SW href="#58">y_address_base</a>]; <span class=C>// always odd (high) y</span><a name="72"></a><span class=K>assign</span> <a  onClick="return qs(event,this,6)"  class=SO href="#49">y_data_out</a> =  (<a  onClick="return qs(event,this,5)"  class=SI href="#47">y_address</a>[0]) ? <a  onClick="return qs(event,this,14)"  class=SR href="#78">dpro</a>[<a  onClick="return qs(event,this,16)"  class=SW href="#58">y_address_base</a>] : <a  onClick="return qs(event,this,13)"  class=SR href="#77">dpre</a>[<a  onClick="return qs(event,this,16)"  class=SW href="#58">y_address_base</a>]; <span class=C>// y-register output</span><span class=K>always</span> @(<span class=K>posedge</span> <a  onClick="return qs(event,this,12)"  class=SI href="#45">clk</a>)<span class=K>begin</span><a name="77"></a>  <span class=K>if</span> (<a  onClick="return qs(event,this,19)"  class=SW href="#65">dpre_we</a>) <a  onClick="return qs(event,this,13)"  class=SR href="#53">dpre</a>[<a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a>] &lt;= <a  onClick="return qs(event,this,17)"  class=SW href="#61">dpre_in</a>; <span class=C>// even write</span><a name="78"></a>  <span class=K>if</span> (<a  onClick="return qs(event,this,20)"  class=SW href="#66">dpro_we</a>) <a  onClick="return qs(event,this,14)"  class=SR href="#54">dpro</a>[<a  onClick="return qs(event,this,15)"  class=SW href="#57">x_address_base</a>] &lt;= <a  onClick="return qs(event,this,18)"  class=SW href="#62">dpro_in</a>; <span class=C>// odd write</span><span class=K>end</span><span class=K>endmodule</span><span class=M>`endif</span> <span class=C>// PACOBLAZE_DREGISTER_V_</span></pre><center><table class=NB cols=7 ><tr><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index.html';"><a target="_top" href="index.html">Hierarchy</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-f.html';"><a target="_top" href="index-f.html">Files</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-m.html';"><a target="_top" href="index-m.html">Modules</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-s.html';"><a target="_top" href="index-s.html">Signals</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-t.html';"><a target="_top" href="index-t.html">Tasks</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='index-fn.html';"><a target="_top" href="index-fn.html">Functions</a></td><td align="center" width="14%" onmousedown="this.style.border='inset';" onmouseup="this.style.border='outset';"  onclick="location='http://www.burbleland.com/v2html/help_7_30.html?htf-ni-s-';"><a target="_top" href="http://www.burbleland.com/v2html/help_7_30.html?htf-ni-s-">Help</a></td></tr></table></center><script language="JavaScript"type="text/javascript"><!--function next_page() { return ""; }function first_page() { return ""; }var extra_info = [["S","pacoblaze_dregister.v.html#47","","","pacoblaze_dregister.v.html#47","index-s.p5.html#x_address___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#46","","","pacoblaze_dregister.v.html#46","index-s.p5.html#x_write_enable___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#48","","","pacoblaze_dregister.v.html#48","index-s.p5.html#x_data_in___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#49","pacoblaze_dregister.v.html#69","","pacoblaze_dregister.v.html#69","index-s.p5.html#x_data_out___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#47","","","pacoblaze_dregister.v.html#47","index-s.p5.html#y_address___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#49","pacoblaze_dregister.v.html#72","","pacoblaze_dregister.v.html#72","index-s.p5.html#y_data_out___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#46","","","pacoblaze_dregister.v.html#46","index-s.p4.html#wx_write_enable___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#48","","","pacoblaze_dregister.v.html#48","index-s.p4.html#w_data_in___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#50","pacoblaze_dregister.v.html#68","","pacoblaze_dregister.v.html#68","index-s.p4.html#u_data_out___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#50","pacoblaze_dregister.v.html#71","","pacoblaze_dregister.v.html#71","index-s.p4.html#v_data_out___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#45","","","pacoblaze_dregister.v.html#45","index-s.p4.html#reset___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#45","","","pacoblaze_dregister.v.html#45","index-s.html#clk___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#53","pacoblaze_dregister.v.html#77","","pacoblaze_dregister.v.html#77","index-s.p2.html#dpre___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#54","pacoblaze_dregister.v.html#78","","pacoblaze_dregister.v.html#78","index-s.p2.html#dpro___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#57","pacoblaze_dregister.v.html#57","","pacoblaze_dregister.v.html#57","index-s.p5.html#x_address_base___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#58","pacoblaze_dregister.v.html#58","","pacoblaze_dregister.v.html#58","index-s.p5.html#y_address_base___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#61","pacoblaze_dregister.v.html#61","","pacoblaze_dregister.v.html#61","index-s.p2.html#dpre_in___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#62","pacoblaze_dregister.v.html#62","","pacoblaze_dregister.v.html#62","index-s.p2.html#dpro_in___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#65","pacoblaze_dregister.v.html#65","","pacoblaze_dregister.v.html#65","index-s.p2.html#dpre_we___pacoblaze3m_register"],["S","pacoblaze_dregister.v.html#66","pacoblaze_dregister.v.html#66","","pacoblaze_dregister.v.html#66","index-s.p2.html#dpro_we___pacoblaze3m_register"]];disabled=0;// --></script><hr><table> <tr><td><i>This page:</i></td>  <td><i>Maintained by:</i></td>  <td><i><a href="mailto:pablo.N@SPAM.bleyer.org">  pablo.N@SPAM.bleyer.org</a></i></tr><tr><td> </td>  <td><i>Created:</i></td><td><i>Tue May 29 02:37:53 2007</i></td></tr><tr> <td> </td> <td><i>From:</i></td><td><i>  <a href="pacoblaze_dregister.v">pacoblaze_dregister.v</a></i></td></tr></table><hr><table width="100%"><tr><td><i>Verilog converted to html by  <a target="_top" href="http://www.burbleland.com/v2html/v2html.html">  v2html 7.30</a>  (written by <a href="mailto:v2html730@burbleland.com">Costas Calamvokis</a>).</i></td><td align="right"><b><a href="http://www.burbleland.com/v2html/help_7_30.html?htf-ni-s-">Help</a></b></td></tr></table><table height="90%"><tr><td></td></tr></table></body></html>

⌨️ 快捷键说明

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