compare3_tb.v.html
来自「和picoblaze完全兼容的mcu ip core」· HTML 代码 · 共 506 行 · 第 1/3 页
HTML
506 行
linkText = is_nav4up ? document.links[i].text : document.links[i].innerText;linkY = is_nav4up && ! is_nav5up ? document.links[i].y : document.links[i].offsetTop;if ((linkText == text) && (linkY != y)) {window.status="";if (is_nav4up) if (relative) window.scrollBy(0,linkY - y);else window.scrollTo(0,linkY); else if (is_ie4up)document.links[i].scrollIntoView(true); last_link=i;last_class=document.links[i].className;document.links[i].className='HI';return false;}}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>/*
Compare KCPSM3 and PacoBlaze3
*/</span>
<a name="5"></a><span class=M>`define</span> <a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#5">PACOBLAZE3</a>
<span class=M>`ifndef</span> <a onClick="return qs(event,this,0)" class=D href="#8">TEST_FILE</a>
<a name="8"></a><span class=M>`define</span> <a onClick="return qs(event,this,0)" class=D href="#8">TEST_FILE</a> <span class=S>"../test/uclock.rmh"</span>
<span class=M>`endif</span>
<span class=M>`ifndef</span> <a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#12">TEST_CYCLES</a>
<span class=M>`define</span> <a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#12">TEST_CYCLES</a> 100
<span class=M>`endif</span>
<span class=M>`ifndef</span> <a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#16">TEST_IRQ</a>
<span class=M>`define</span> <a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#16">TEST_IRQ</a> 50
<span class=M>`endif</span>
<span class=M>`include</span> <a onClick="return qs(event,this,0)" class=S href="timescale_inc.v.html">"timescale_inc.v"</a>
<span class=M>`include</span> <a onClick="return qs(event,this,0)" class=S href="pacoblaze_inc.v.html">"pacoblaze_inc.v"</a>
<a name="compare3_tb"></a><span class=K>module</span> <span class=MM>compare3_tb</span><a href="index-m.html#compare3_tb"><img align=top border=0 alt="Index" src="v2html-i.gif"></a>;
<a name="24"></a><span class=K>parameter</span> <a onClick="return qs(event,this,0)" class=PA href="#24">tck</a> = 10, <a onClick="return qs(event,this,0)" class=PA href="#24">program_cycles</a> = <span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#12">TEST_CYCLES</a>, <a onClick="return qs(event,this,0)" class=PA href="#24">irq_cycles</a> = <span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="cmprnd3_tb.v.html#16">TEST_IRQ</a>;
<span class=K>defparam</span> glbl.ROC_WIDTH = 0;
<a name="28"></a><span class=K>reg</span> <a onClick="return qs(event,this,1)" class=SR href="#90">clk</a>, <a onClick="return qs(event,this,2)" class=SR href="#209">rst</a>, <a onClick="return qs(event,this,3)" class=SR href="#209">irq</a>; <span class=C>// clock, reset, interrupt req
</span><a name="29"></a><span class=K>wire</span> [<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#73">code_depth</a>-1:0] <a onClick="return qs(event,this,4)" class=SW href="#29">addr_0</a>, <a onClick="return qs(event,this,5)" class=SW href="#29">addr_1</a>; <span class=C>// instruction address
</span><a name="30"></a><span class=K>reg</span> [<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#60">operand_width</a>-1:0] <a onClick="return qs(event,this,6)" class=SR href="#94">port_0</a>[0:<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#83">port_size</a>-1], <a onClick="return qs(event,this,7)" class=SR href="#95">port_1</a>[0:<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#83">port_size</a>-1];
<a name="31"></a><span class=K>wire</span> [<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#60">operand_width</a>-1:0] <a onClick="return qs(event,this,8)" class=SW href="#31">pid_0</a>, <a onClick="return qs(event,this,9)" class=SW href="#31">pid_1</a>, <a onClick="return qs(event,this,10)" class=SW href="#31">pout_0</a>, <a onClick="return qs(event,this,11)" class=SW href="#31">pout_1</a>; <span class=C>// port id, port out
</span><a name="32"></a><span class=K>wire</span> <a onClick="return qs(event,this,12)" class=SW href="#32">ren_0</a>, <a onClick="return qs(event,this,13)" class=SW href="#32">ren_1</a>, <a onClick="return qs(event,this,14)" class=SW href="#32">wen_0</a>, <a onClick="return qs(event,this,15)" class=SW href="#32">wen_1</a>, <a onClick="return qs(event,this,16)" class=SW href="#32">iak_0</a>, <a onClick="return qs(event,this,17)" class=SW href="#32">iak_1</a>; <span class=C>// read strobe, write strobe, interrupt ack
</span>
<a name="34"></a><span class=K>wire</span> [<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#72">code_width</a>-1:0] <a onClick="return qs(event,this,18)" class=SW href="#45">din_0</a>, <a onClick="return qs(event,this,19)" class=SW href="#71">din_1</a>;
<a name="35"></a><span class=K>wire</span> [<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#60">operand_width</a>-1:0] <a onClick="return qs(event,this,20)" class=SW href="#35">pin_0</a> = <a onClick="return qs(event,this,6)" class=SR href="#94">port_0</a>[<a onClick="return qs(event,this,8)" class=SW href="#31">pid_0</a>], <a onClick="return qs(event,this,21)" class=SW href="#35">pin_1</a> = <a onClick="return qs(event,this,7)" class=SR href="#95">port_1</a>[<a onClick="return qs(event,this,9)" class=SW href="#31">pid_1</a>]; <span class=C>// port in
</span>
<span class=C>/* PacoBlaze program memory */</span>
<a name="compare3_tb_rom_0"></a><a onClick="return qs(event,this,0)" class=MM href="blockram.v.html#blockram">blockram</a> #(.width(<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#72">code_width</a>),.depth(<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#73">code_depth</a>)) rom_0(
<span class=SI>.clk</span>(<a onClick="return qs(event,this,1)" class=SR href="#90">clk</a>),
<span class=SI>.rst</span>(<a onClick="return qs(event,this,2)" class=SR href="#209">rst</a>),
<span class=SI>.enb</span>(1'b1),
<span class=SI>.wen</span>(1'b0),
<span class=SI>.addr</span>(<a onClick="return qs(event,this,4)" class=SW href="#29">addr_0</a>),
<span class=SI>.din</span>(0),
<a name="45"></a> <a onClick="return qs(event,this,0)" class=SOR href="blockram.v.html#47">.dout</a>(<a onClick="return qs(event,this,18)" class=SW href="#34">din_0</a>)
);
<span class=C>/* PacoBlaze dut */</span>
<a name="compare3_tb_dut_0"></a><span class=MM>pacoblaze3</span> dut_0(
.clk(<a onClick="return qs(event,this,1)" class=SR href="#28">clk</a>),
.reset(<a onClick="return qs(event,this,2)" class=SR href="#28">rst</a>),
.address(<a onClick="return qs(event,this,4)" class=SW href="#29">addr_0</a>),
.instruction(<a onClick="return qs(event,this,18)" class=SW href="#34">din_0</a>),
.port_id(<a onClick="return qs(event,this,8)" class=SW href="#31">pid_0</a>),
.read_strobe(<a onClick="return qs(event,this,12)" class=SW href="#32">ren_0</a>),
.write_strobe(<a onClick="return qs(event,this,14)" class=SW href="#32">wen_0</a>),
.in_port(<a onClick="return qs(event,this,20)" class=SW href="#35">pin_0</a>),
.out_port(<a onClick="return qs(event,this,10)" class=SW href="#31">pout_0</a>),
.interrupt(<a onClick="return qs(event,this,3)" class=SR href="#28">irq</a>),
.interrupt_ack(<a onClick="return qs(event,this,16)" class=SW href="#32">iak_0</a>)
);
<span class=C>/* KCPSM3 program memory */</span>
<a name="compare3_tb_rom_1"></a><a onClick="return qs(event,this,0)" class=MM href="blockram.v.html#blockram">blockram</a> #(.width(<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#72">code_width</a>),.depth(<span class=D>`</span><a onClick="return qs(event,this,0)" class=D href="pacoblaze_inc.v.html#73">code_depth</a>)) rom_1(
<span class=SI>.clk</span>(<a onClick="return qs(event,this,1)" class=SR href="#90">clk</a>),
<span class=SI>.rst</span>(<a onClick="return qs(event,this,2)" class=SR href="#209">rst</a>),
<span class=SI>.enb</span>(1'b1),
<span class=SI>.wen</span>(1'b0),
<span class=SI>.addr</span>(<a onClick="return qs(event,this,5)" class=SW href="#29">addr_1</a>),
<span class=SI>.din</span>(0),
<a name="71"></a> <a onClick="return qs(event,this,0)" class=SOR href="blockram.v.html#47">.dout</a>(<a onClick="return qs(event,this,19)" class=SW href="#34">din_1</a>)
);
<span class=C>/* KCPSM3 dut */</span>
<a name="compare3_tb_dut_1"></a><span class=MM>kcpsm3</span> dut_1(
.clk(<a onClick="return qs(event,this,1)" class=SR href="#28">clk</a>),
.reset(<a onClick="return qs(event,this,2)" class=SR href="#28">rst</a>),
.address(<a onClick="return qs(event,this,5)" class=SW href="#29">addr_1</a>),
.instruction(<a onClick="return qs(event,this,19)" class=SW href="#34">din_1</a>),
.port_id(<a onClick="return qs(event,this,9)" class=SW href="#31">pid_1</a>),
.read_strobe(<a onClick="return qs(event,this,13)" class=SW href="#32">ren_1</a>),
.write_strobe(<a onClick="return qs(event,this,15)" class=SW href="#32">wen_1</a>),
.in_port(<a onClick="return qs(event,this,21)" class=SW href="#35">pin_1</a>),
.out_port(<a onClick="return qs(event,this,11)" class=SW href="#31">pout_1</a>),
.interrupt(<a onClick="return qs(event,this,3)" class=SR href="#28">irq</a>),
.interrupt_ack(<a onClick="return qs(event,this,17)" class=SW href="#32">iak_1</a>)
);
<span class=C>/* Clocking device */</span>
<a name="90"></a><span class=K>always</span> #(<a onClick="return qs(event,this,0)" class=PA href="#24">tck</a>/2) <a onClick="return qs(event,this,1)" class=SR href="#28">clk</a> = ~<a onClick="return qs(event,this,1)" class=SR href="#90">clk</a>;
<span class=C>/* Watch external ports */</span>
<span class=K>always</span> @(<span class=K>posedge</span> <a onClick="return qs(event,this,1)" class=SR href="#28">clk</a>) <span class=K>begin</span>
<a name="94"></a> <span class=K>if</span> (<a onClick="return qs(event,this,14)" class=SW href="#32">wen_0</a>) <a onClick="return qs(event,this,6)" class=SR href="#30">port_0</a>[<a onClick="return qs(event,this,8)" class=SW href="#31">pid_0</a>] <= <a onClick="return qs(event,this,10)" class=SW href="#31">pout_0</a>;
<a name="95"></a> <span class=K>if</span> (<a onClick="return qs(event,this,15)" class=SW href="#32">wen_1</a>) <a onClick="return qs(event,this,7)" class=SR href="#30">port_1</a>[<a onClick="return qs(event,this,9)" class=SW href="#31">pid_1</a>] <= <a onClick="return qs(event,this,11)" class=SW href="#31">pout_1</a>;
<span class=K>end</span>
<a name="98"></a><span class=K>integer</span> <a onClick="return qs(event,this,22)" class=SIT href="#98">i</a>;
<span class=K>always</span> @(<span class=K>negedge</span> <a onClick="return qs(event,this,1)" class=SR href="#28">clk</a>)
<span class=K>if</span> (!dut_0.timing_control) <span class=K>begin</span>
<span class=ST>$display</span>(<span class=S>"pb3=%h:%h kp3=%h:%h"</span>, <a onClick="return qs(event,this,4)" class=SW href="#29">addr_0</a>, <a onClick="return qs(event,this,18)" class=SW href="#34">din_0</a>, <a onClick="return qs(event,this,5)" class=SW href="#29">addr_1</a>, <a onClick="return qs(event,this,19)" class=SW href="#34">din_1</a>);
<span class=K>if</span> (<a onClick="return qs(event,this,4)" class=SW href="#29">addr_0</a> != <a onClick="return qs(event,this,5)" class=SW href="#29">addr_1</a>) <span class=ST>$display</span>(<span class=S>"***address mismatch***"</span>);
<span class=K>if</span> (dut_0.zero != dut_1.zero_flag) <span class=ST>$display</span>(<span class=S>"***zero mismatch***"</span>);
<span class=K>if</span> (dut_0.carry != dut_1.carry_flag) <span class=ST>$display</span>(<span class=S>"***carry mismatch***"</span>);
<span class=K>if</span> (dut_0.register.dpr['h0] != dut_1.s0_contents) <span class=ST>$display</span>(<span class=S>"***s0 mismatch***"</span>);
<span class=K>if</span> (dut_0.register.dpr['h1] != dut_1.s1_contents) <span class=ST>$display</span>(<span class=S>"***s1 mismatch***"</span>);
<span class=K>if</span> (dut_0.register.dpr['h2] != dut_1.s2_contents) <span class=ST>$display</span>(<span class=S>"***s2 mismatch***"</span>);
<span class=K>if</span> (dut_0.register.dpr['h3] != dut_1.s3_contents) <span class=ST>$display</span>(<span class=S>"***s3 mismatch***"</span>);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?