OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [doc/] [src/] [guides/] [guide_verification.html] - Diff between revs 27 and 28

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 27 Rev 28
Line 22... Line 22...
</p>
</p>
<p>Verification is the art of stimulating&nbsp; a component&nbsp;
<p>Verification is the art of stimulating&nbsp; a component&nbsp;
module and checking that it produces the correct outputs. Stimulations
module and checking that it produces the correct outputs. Stimulations
are designed to
are designed to
ensure that all of the components functions are exercised and any
ensure that all of the components functions are exercised and any
deviation from the expected value is reported as an error. Every
deviation from the expected behaviour&nbsp; is reported as an error.
 
Every
component must have at least one test case but may have as many as
component must have at least one test case but may have as many as
needed to fully verify the design.<br>
needed to fully verify the design. All components will have at least
 
one interface and a bus functional model (bfm) must be created for each
 
and every interface.<br>
</p>
</p>
<p>A complete test suite is required for every component module.&nbsp;
<p>A complete test suite is required for every component module.&nbsp;
Each test_case is simulated and the log file will indicate whether the
Each test_case is simulated and the log file will indicate whether the
test passed or failed. Other output files such as dump files may also
test passed or failed. Other output files such as dump files may also
be produced duging the simulation.<br>
be produced duging the simulation.<br>
Line 83... Line 86...
<p><br>
<p><br>
</p>
</p>
<p>Every interface on the component is connected to it's own bfm model
<p>Every interface on the component is connected to it's own bfm model
that contains all the tasks needed to test the interface. The calling
that contains all the tasks needed to test the interface. The calling
sequences needed to preform a particular test are all loaded from a
sequences needed to preform a particular test are all loaded from a
sperate file. It is important that each interface has its task calls in
sperate test_define file. It is important that each interface has its
a seperate code block. The goal is to develope these models and task
task calls in
 
a seperate code block in the test_define file. The goal is to develop
 
these models and task
calls on&nbsp; the component simulation and then reuse them as the
calls on&nbsp; the component simulation and then reuse them as the
component is used in larger designs.&nbsp; Interleaving task calls for
component is used in larger designs.&nbsp; Interleaving task calls for
different models makes that difficult.<br>
different models makes that difficult.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
 
</p>
 
<h2><a name="manifesto"></a>Protocol checkers and monitors<br>
 
</h2>
 
<br>
 
&nbsp;
 
Protocol checkers and monitors are similar to a bus functional
 
models&nbsp; except that they are for obsevation only and cannot
 
control any signals. They watch every transaction that occurs on the
 
interface and reports a failure when anything violates that interfaces
 
defined protocols. <span style="font-family: serif;"> They are created
 
in a seperate module and may be instantiated in the testbench&nbsp; and
 
connected to an interface.<br>
 
<br>
 
The same protocol checker can also be included in the rtl code so it
 
can monitor an interface that is buried deep inside a chip. Once
 
inserted in the rtl source it will watch for&nbsp; and report errors
 
that may occur during the regression suite. Since protocol checkers
 
are&nbsp; not synthesizable they must be excluded from synthesis with a
 
`ifndef SYNTHESYS statement.<br>
 
<br>
 
Monitors are similar to protocol checkers except that they are designed
 
to be implemetent in actual logic.&nbsp; If they ever fire during
 
product usage then these events should be latched and saved for later
 
debugging.<br>
 
&nbsp; <br>
 
</span>
 
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2><a name="manifesto"></a>guidelines for creating reusable test_cases<br>
<h2><a name="manifesto"></a>guidelines for creating reusable test_cases<br>
Line 130... Line 162...
  <li><big>Message Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is either
  <li><big>Message Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is either
ERROR&nbsp; or WARNING. No type indicates informational message</big></li>
ERROR&nbsp; or WARNING. No type indicates informational message</big></li>
  <li><big>Message&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <li><big>Message&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
 
 
 
 
 
 
 
    </big><br>
    </big><br>
  </li>
  </li>
</ul>
</ul>
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
Line 168... Line 202...
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
 
<h2><a name="manifesto"></a>Gate and Post Route Simulations<br>
 
</h2>
 
<br>
 
&nbsp; All signals between the DUT and the bfms change only at the
 
rising edge of clk. This is fine for RTL sims but will not work for
 
real logic with setup and hold time requirements. For these the signals
 
driving the dut must be delayed from clk and from each other to provide
 
the required setup and hold times. Signals from the DUT will have
 
delays and must only be tested during a prescribed time window.<br>
 
This is accomplished with a set of modules that mimic the functions of
 
a IC tester. These modules provide the interface between the BFM's and
 
the DUT.<br>
 
<br>
 
<br>
 
<img style="width: 800px; height: 600px;" alt=""
 
 src="../png/ver_fig4.png"><br>
 
<br style="font-family: serif;">
 
<br style="font-family: serif;">
 
&nbsp;<span style="font-family: serif;"></span><span
 
 style="font-family: serif;"><br>
 
</span>
 
<p></p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
Line 480... Line 536...
<h2><a name="manifesto"></a>modellist</h2>
<h2><a name="manifesto"></a>modellist</h2>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
</p>
</p>
<code><br>
<code><br>
`include "../../bench/verilog/models/clock_gen.v"<br>
`include "../../bench/verilog/models/clock_gen.v"<br>
`include "../../bench/verilog/models/ps2_model.v"&nbsp;&nbsp;&nbsp; <br>
`include "../../bench/verilog/models/ps2_model.v"<br>
 
</code><code>`include "../../bench/verilog/models/uart_model.v"</code><code>&nbsp;&nbsp;
 
<br>
`include "../../bench/verilog/models/iobuftri.v"&nbsp;&nbsp;&nbsp; <br>
`include "../../bench/verilog/models/iobuftri.v"&nbsp;&nbsp;&nbsp; <br>
</code><span style="font-family: monospace;"></span><code><br>
</code><span style="font-family: monospace;"></span><code><br>
</code>
</code>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
<br>
<br>
Line 493... Line 551...
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<h2><a name="manifesto"></a>dut<br>
<h2><a name="manifesto"></a>dut<br>
</h2>
</h2>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><code><br>
<p><code>reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
device_write;<br>
 
reg&nbsp; [7:0]&nbsp;&nbsp; device_tx_data;<br>
 
reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_parity;<br>
 
reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_ack;<br>
 
reg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_stop;<br>
 
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_rx_read;<br>
 
wire [7:0]&nbsp;&nbsp; device_rx_data;<br>
 
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_rx_parity;<br>
 
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data_pad_oe;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data_pad_oe;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data_pad_in;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data_pad_in;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_data;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk_pad_oe;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk_pad_oe;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk_pad_in;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk_pad_in;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps2_clk;<br>
<br>
<br>
<br>
 
<br>
 
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portaout;<br>
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portaout;<br>
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portbout;<br>
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portbout;<br>
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portcout;<br>
wire [7:0]&nbsp;&nbsp;&nbsp;&nbsp; portcout;<br>
<br>
<br>
<br>
<br>
Line 531... Line 578...
ms_left;&nbsp; <br>
ms_left;&nbsp; <br>
<br>
<br>
<br>
<br>
<br>
<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
txd_pad_out;<br>
serial_txd;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rxd_pad_in;<br>
serial_rxd;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loop;<br>
cts_pad_in;<br>
&nbsp; <br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
rts_pad_out;&nbsp; <br>
 
<br>
<br>
<br>
 
// Instantiate one CPU to be tested.<br>
 
soc_mouse<br>
soc_mouse<br>
#(<br>
#(<br>
.ROM_WORDS ( `ROM_WORDS ), <br>
.ROM_WORDS ( `ROM_WORDS ), <br>
.ROM_ADDR&nbsp; ( `ROM_ADDR&nbsp; ),&nbsp; <br>
.ROM_ADDR&nbsp; ( `ROM_ADDR&nbsp; ),&nbsp; <br>
.ROM_WIDTH ( `ROM_WIDTH ), <br>
.ROM_WIDTH ( `ROM_WIDTH ), <br>
.ROM_FILE&nbsp; ( `ROM_FILE&nbsp; )<br>
.ROM_FILE&nbsp; ( `ROM_FILE&nbsp; )<br>
)<br>
)<br>
dut(<br>
dut(<br>
&nbsp;&nbsp; .clk&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .clk&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; (
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
&nbsp;&nbsp; .reset&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .reset &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; (
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
reset&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; ),<br>
<br>
<br>
&nbsp;&nbsp; .ps2_data_pad_in ( ps2_data_pad_in ),<br>
&nbsp;&nbsp; .ps2_data_pad_in ( ps2_data_pad_in ),<br>
&nbsp;&nbsp; .ps2_clk_pad_in&nbsp; ( ps2_clk_pad_in&nbsp; ),<br>
&nbsp;&nbsp; .ps2_clk_pad_in&nbsp; ( ps2_clk_pad_in&nbsp; ),<br>
<br>
<br>
&nbsp;&nbsp; .ps2_data_pad_oe ( ps2_data_pad_oe ),<br>
&nbsp;&nbsp; .ps2_data_pad_oe ( ps2_data_pad_oe ),<br>
&nbsp;&nbsp; .ps2_clk_pad_oe&nbsp; ( ps2_clk_pad_oe&nbsp; ),<br>
&nbsp;&nbsp; .ps2_clk_pad_oe&nbsp; ( ps2_clk_pad_oe&nbsp; ),<br>
<br>
<br>
<br>
&nbsp;&nbsp; .portaout&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; (
&nbsp;&nbsp; .portaout&nbsp;&nbsp;&nbsp; ( portaout&nbsp;&nbsp;&nbsp; ),<br>
portaout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
&nbsp;&nbsp; .portbout&nbsp;&nbsp;&nbsp; ( portbout&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .portbout&nbsp; &nbsp; &nbsp; &nbsp; ( portbout&nbsp;
&nbsp;&nbsp; .portcout&nbsp;&nbsp;&nbsp; ( portcout&nbsp;&nbsp;&nbsp; ),<br>
&nbsp; &nbsp; &nbsp; ),<br>
<br>
&nbsp;&nbsp; .portcout&nbsp; &nbsp; &nbsp; &nbsp; (
<br>
portcout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
&nbsp;&nbsp; .y_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
<br>
y_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .y_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
&nbsp;&nbsp; .x_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
y_pos&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ),<br>
x_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .x_pos&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (
&nbsp;&nbsp; .new_packet&nbsp; ( new_packet&nbsp; ),<br>
x_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .ms_mid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .new_packet &nbsp; &nbsp;&nbsp; ( new_packet &nbsp;
ms_mid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ), <br>
&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .ms_right&nbsp;&nbsp;&nbsp; ( ms_right&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; .ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
 
ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ), <br>
 
&nbsp;&nbsp; .ms_right&nbsp; &nbsp; &nbsp; &nbsp; (
 
ms_right&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;
),&nbsp; <br>
),&nbsp; <br>
&nbsp;&nbsp; .ms_left&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .ms_left&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (
ms_left&nbsp;&nbsp;&nbsp;&nbsp; ),&nbsp; <br>
ms_left&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),&nbsp; <br>
<br>
 
<br>
 
<br>
<br>
&nbsp;&nbsp; .txd_pad_out ( loop1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .txd_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .rxd_pad_in&nbsp; (
serial_txd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
loop1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .rxd_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .cts_pad_in&nbsp; (
serial_rxd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
loop2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .cts_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .rts_pad_out ( loop2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp; .rts_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
 
loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
)&nbsp; <br>
)&nbsp; <br>
<br>
<br>
&nbsp;&nbsp; );<br>
&nbsp;&nbsp; );<br>
 
</code></p>
 
<p><code>uart_model <br>
 
#(.CLKCNT(4'hc))<br>
 
uart_model<br>
 
(<br>
 
&nbsp;&nbsp;
 
.clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp;
 
.reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
),
<br>
<br>
 
&nbsp;&nbsp;
 
.txd_in &nbsp;&nbsp; &nbsp;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
( serial_txd&nbsp; ),<br>
 
&nbsp;&nbsp;
 
.rxd_out &nbsp;&nbsp;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
( serial_rxd&nbsp; )<br>
<br>
<br>
 
);</code><br>
 
<code></code></p>
 
<p><code><br>
 
</code></p>
 
<p><code><br>
iobuftri<br>
iobuftri<br>
data_tri_buf<br>
data_tri_buf<br>
&nbsp; (<br>
&nbsp; (<br>
&nbsp;&nbsp; .i&nbsp;&nbsp; (
&nbsp;&nbsp; .i&nbsp;&nbsp; (
1'b0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
1'b0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
Line 620... Line 695...
pullup ua1(ps2_data);<br>
pullup ua1(ps2_data);<br>
<br>
<br>
<br>
<br>
ps2_model <br>
ps2_model <br>
#(.CLKCNT(10'h177))<br>
#(.CLKCNT(10'h177))<br>
ps2<br>
ps2_model<br>
(<br>
(<br>
&nbsp;&nbsp;
&nbsp;&nbsp;
.clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(
(
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Line 634... Line 709...
(
(
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),
),
<br>
<br>
&nbsp;&nbsp;
&nbsp;&nbsp;
.send&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
device_write&nbsp;&nbsp;&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp;
 
.send_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
device_tx_data&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp;
 
.device_parity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
 
device_parity&nbsp;&nbsp;&nbsp; ),<br>
 
&nbsp;&nbsp;
 
.device_ack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
device_ack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp;
 
.device_stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
(
 
device_stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
),<br>
 
&nbsp;&nbsp;
 
.device_rx_read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
 
device_rx_read&nbsp;&nbsp; ),<br>
 
&nbsp;&nbsp;
 
.device_rx_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
 
device_rx_data&nbsp;&nbsp; ),<br>
 
&nbsp;&nbsp; .device_rx_parity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
 
device_rx_parity ),<br>
 
<br>
 
&nbsp;&nbsp;
 
.ps2_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.ps2_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(
(
ps2_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ps2_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),<br>
),<br>
&nbsp;&nbsp;
&nbsp;&nbsp;
.ps2_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.ps2_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(
(
ps2_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ps2_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
)<br>
)<br>
<br>
<br>
);<br>
);</code></p>
 
<p><code><br>
 
</code></p>
 
<p><code><br>
</code><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
</code><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
</p>
</p>
<p>This file is a verilog code segment that declares all the wires and
<p>This file is a verilog code segment that declares all the wires and
regs needed in the sim (except for clk and reset). It then&nbsp;
regs needed in the sim (except for clk and reset). It then&nbsp;
instantiates the component and all needed models for the simulation.<br>
instantiates the component and all needed models for the simulation.<br>
Line 696... Line 742...
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><br>
<p><br>
</p>
</p>
<p><span style="font-family: monospace;">initial</span><br
<p><span style="font-family: monospace;">initial</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">begin</span><br
<span style="font-family: monospace;">begin</span><span
 style="font-family: monospace;">
 style="font-family: monospace;"></span><br
<span style="font-family: monospace;">&nbsp;`TIMEFORMAT</span><br
 
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">$display("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">$display("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
");</span><br style="font-family: monospace;">
");</span><br style="font-family: monospace;">
<span style="font-family: monospace;">$display("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">$display("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
===================================================");</span><br
===================================================");</span><br

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.