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

Subversion Repositories socgen

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

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 94
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<html>
<head>
<head>
  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8">
  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8">
  <title>Verification Guidelines</title>
  <title>Verification Guidelines</title>
  <meta name="GENERATOR" content="OpenOffice.org 3.0  (Linux)">
  <meta name="GENERATOR" content="OpenOffice.org 3.0  (Linux)">
  <meta name="CREATED" content="0;0">
  <meta name="CREATED" content="0;0">
  <meta name="CHANGED" content="20100309;9312200">
  <meta name="CHANGED" content="20100309;9312200">
  <meta name="KEYWORDS" content="start">
  <meta name="KEYWORDS" content="start">
  <meta name="Info 3" content="">
  <meta name="Info 3" content="">
  <meta name="Info 4" content="">
  <meta name="Info 4" content="">
  <meta name="date" content="2008-01-08T12:01:41-0500">
  <meta name="date" content="2008-01-08T12:01:41-0500">
  <meta name="robots" content="index,follow">
  <meta name="robots" content="index,follow">
</head>
</head>
<body dir="ltr" lang="en-US">
<body dir="ltr" lang="en-US">
<h1><a name="socgen_project"></a><big>SOCGEN Project</big></h1>
<h1><a name="socgen_project"></a><big>SOCGEN Project</big></h1>
<h2><br>
<h2><br>
</h2>
</h2>
<h2><a name="manifesto"></a>Verification Guidelines</h2>
<h2><a name="manifesto"></a>Verification Guidelines</h2>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p>Verification is the art of stimulating&nbsp; a component&nbsp;
<p>Verification is the process 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 behaviour&nbsp; is reported as an error.
deviation from the expected behaviour&nbsp; is reported as an error.
Every
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. All components will have at least
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
one interface and a bus functional model (bfm) must be created for each
and every interface.<br>
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>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p></p>
<p></p>
<br>
<br>
<p><img style="width: 800px; height: 600px;" alt=""
<p><img style="width: 800px; height: 600px;" alt=""
 src="../png/ver_fig1.png"><br>
 src="../png/ver_fig1.png"><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p>A test suite is needed for every piece of IP in the design and
<p>A test suite is needed for every piece of IP in the design and
creating this suite can be a very labor intensive operation. It usually
creating this suite can be a very labor intensive operation. It usually
takes four hours to create the test_cases for each hour that was spent
takes four hours to create the test_cases for each hour that was spent
creating the rtl code.&nbsp; A full test must be run on every leaf cell
creating the rtl code.&nbsp; A full test must be run on every leaf cell
component and some of these are repeated as the components are used as
component and some of these are repeated as the components are used as
children of other components.&nbsp; It is essential that all test_cases
children of other components.&nbsp; It is essential that all test_cases
are written so that they may be reused when testing the component when
are written so that they may be reused when testing the component when
it it part of a parent component.<br>
it it part of a parent component.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><img style="width: 800px; height: 600px;" alt=""
<p><img style="width: 800px; height: 600px;" alt=""
 src="../png/ver_fig2.png"><br>
 src="../png/ver_fig2.png"><br>
</p>
</p>
<p>In this case a new component is created by combining&nbsp; two leaf
<p>In this case a new component is created by combining&nbsp; two leaf
cell components and its test_case is created by combining blocks from
cell components and its test_case is created by combining blocks from
those two components test_cases.<br>
those two components test_cases.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><img style="width: 800px; height: 600px;" alt=""
<p><img style="width: 800px; height: 600px;" alt=""
 src="../png/ver_fig3.png"><br>
 src="../png/ver_fig3.png"><br>
</p>
</p>
<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 test_define file. It is important that each interface has its
sperate test_define file. It is important that each interface has its
task calls in
task calls in
a seperate code block in the test_define file. The goal is to develop
a seperate code block in the test_define file. The goal is to develop
these models and task
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>
</p>
<h2><a name="manifesto"></a>Protocol checkers and monitors<br>
<h2><a name="manifesto"></a>Protocol checkers and monitors<br>
</h2>
</h2>
<br>
<br>
&nbsp;
&nbsp;
Protocol checkers and monitors are similar to a bus functional
Protocol checkers and monitors are similar to a bus functional
models&nbsp; except that they are for obsevation only and cannot
models&nbsp; except that they are for obsevation only and cannot
control any signals. They watch every transaction that occurs on the
control any signals. They watch every transaction that occurs on the
interface and reports a failure when anything violates that interfaces
interface and reports a failure when anything violates that interfaces
defined protocols. <span style="font-family: serif;"> They are created
defined protocols. <span style="font-family: serif;"> They are created
in a seperate module and may be instantiated in the testbench&nbsp; and
in a seperate module and may be instantiated in the testbench&nbsp; and
connected to an interface.<br>
connected to an interface.<br>
<br>
<br>
The same protocol checker can also be included in the rtl code so it
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
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
inserted in the rtl source it will watch for&nbsp; and report errors
that may occur during the regression suite. Since protocol checkers
that may occur during the regression suite. Since protocol checkers
are&nbsp; not synthesizable they must be excluded from synthesis with a
are&nbsp; not synthesizable they must be excluded from synthesis with a
`ifndef SYNTHESYS statement.<br>
`ifndef SYNTHESYS statement.<br>
<br>
<br>
Monitors are similar to protocol checkers except that they are designed
Monitors are similar to protocol checkers except that they are designed
to be implemetent in actual logic.&nbsp; If they ever fire during
to be implemetent in actual logic.&nbsp; If they ever fire during
product usage then these events should be latched and saved for later
product usage then these events should be latched and saved for later
debugging.<br>
debugging.<br>
&nbsp; <br>
&nbsp; <br>
</span>
</span>
<p><br>
<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>
</h2>
</h2>
<br>
<br>
&nbsp; All test_cases will have a master clock and reset signal.&nbsp;
&nbsp; All test_cases will have a master clock and reset signal.&nbsp;
The DUT and all models will respond to the reset signal. Anything in
The DUT and all models will respond to the reset signal. Anything in
test_define will only change state on the rising edge of clock.<br
test_define will only change state on the rising edge of clock.<br
 style="font-family: serif;">
 style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; All test_cases will be
<span style="font-family: serif;">&nbsp; All test_cases will be
self-checking.&nbsp; Test suites are usually run by scripts and robots
self-checking.&nbsp; Test suites are usually run by scripts and robots
that need a simple method to determine wether a test_case finished and
that need a simple method to determine wether a test_case finished and
passed. </span><br style="font-family: serif;">
passed. </span><br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; All models, tasks and protocal
<span style="font-family: serif;">&nbsp; All models, tasks and protocal
checkers will use a common method to report&nbsp; if there is a failure.</span><br
checkers will use a common method to report&nbsp; if there is a failure.</span><br
 style="font-family: serif;">
 style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; All test sequences will use a
<span style="font-family: serif;">&nbsp; All test sequences will use a
common method to signal the successful completion of the test</span><br
common method to signal the successful completion of the test</span><br
 style="font-family: serif;">
 style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; All messages in the log file
<span style="font-family: serif;">&nbsp; All messages in the log file
must use the following format:</span><br>
must use the following format:</span><br>
<br style="font-family: serif;">
<br style="font-family: serif;">
<ul style="font-family: monospace;">
<ul style="font-family: monospace;">
  <li><big>Time stamp&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the
  <li><big>Time stamp&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the
$realtime&nbsp; formated by %t</big></li>
$realtime&nbsp; formated by %t</big></li>
  <li><big>Instance Name&nbsp;&nbsp;&nbsp;&nbsp; This is obtained with
  <li><big>Instance Name&nbsp;&nbsp;&nbsp;&nbsp; This is obtained with
%m</big></li>
%m</big></li>
  <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;">
<p style="font-family: serif;">&nbsp;&nbsp; All test cases MUST have a
<p style="font-family: serif;">&nbsp;&nbsp; All test cases MUST have a
finite run time.&nbsp; Use a TIMEOUT counter to stop the sim if it
finite run time.&nbsp; Use a TIMEOUT counter to stop the sim if it
exceeds the expected number of clocks<br style="font-family: serif;">
exceeds the expected number of clocks<br style="font-family: serif;">
</p>
</p>
<span style="font-family: serif;">&nbsp;&nbsp;
<span style="font-family: serif;">&nbsp;&nbsp;
<code><span style="font-family: serif;">All test_cases must be
<code><span style="font-family: serif;">All test_cases must be
deterministic. If any pseudorandom delays are used they must be
deterministic. If any pseudorandom delays are used they must be
"seeded" and repeatable from run to run.</span></code></span><code
"seeded" and repeatable from run to run.</span></code></span><code
 style="font-family: serif;"><br>
 style="font-family: serif;"><br>
<br>
<br>
<br>
<br>
&nbsp;<span style="font-family: serif;"> </span></code><span
&nbsp;<span style="font-family: serif;"> </span></code><span
 style="font-family: serif;"><code><span style="font-family: serif;">Do
 style="font-family: serif;"><code><span style="font-family: serif;">Do
not interweave threads in the test_define blocks. Each block should
not interweave threads in the test_define blocks. Each fork/join block
 
should
only access a single BFM.</span><br style="font-family: serif;">
only access a single BFM.</span><br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; Plan on designs where you will
<span style="font-family: serif;">&nbsp; Plan on designs where you will
need to test multiple instances of a component</span><br
need to test multiple instances of a component</span><br
 style="font-family: serif;">
 style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<span style="font-family: serif;">&nbsp; Only test a single
<span style="font-family: serif;">&nbsp; Only test a single
configuration or mode in any test_case. If you need to test 3 different
configuration or mode in any test_case. If you need to test 3 different
modes then create 3 different test_cases. The exception to this is when
modes then create 3 different test_cases. The exception to this is when
there is a mission mode requirement to switch modes and you are testing
there is a mission mode requirement to switch modes and you are testing
that switch.&nbsp; </span><br style="font-family: serif;">
that switch.&nbsp; </span><br style="font-family: serif;">
</code></span>
</code></span>
<p style="font-family: serif;"><br>
<p style="font-family: serif;"><br>
</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><a name="manifesto"></a>Gate and Post Route Simulations<br>
</h2>
</h2>
<br>
<br>
&nbsp; All signals between the DUT and the bfms change only at the
&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
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
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
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
the required setup and hold times. Signals from the DUT will have
delays and must only be tested during a prescribed time window.<br>
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
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
a IC tester. These modules provide the interface between the BFM's and
the DUT.<br>
the DUT.<br>
<br>
<br>
<br>
<br>
<img style="width: 800px; height: 600px;" alt=""
<img style="width: 800px; height: 600px;" alt=""
 src="../png/ver_fig4.png"><br>
 src="../png/ver_fig4.png"><br>
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
<br style="font-family: serif;">
&nbsp;<span style="font-family: serif;"></span><span
&nbsp;<span style="font-family: serif;"></span><span
 style="font-family: serif;"><br>
 style="font-family: serif;"><br>
</span>
</span>
<p></p>
<p></p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2><a name="manifesto"></a>simulation directory (sim)<br>
<h2><a name="manifesto"></a>simulation directory (sim)<br>
</h2>
</h2>
<p><br>
<p><br>
</p>
</p>
<big><code>
<big><code>
./sim<br>
./sim<br>
&nbsp; +/bin<br>
&nbsp; +/bin<br>
&nbsp;&nbsp; &nbsp;&nbsp; Makefile<br>
&nbsp;&nbsp; &nbsp;&nbsp; Makefile<br>
&nbsp; +/bench<br>
 
&nbsp;&nbsp; &nbsp;&nbsp; +verilog<br>
 
&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; TestBench<br>
 
&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; +models<br>
 
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; model1<br>
 
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; model2<br>
 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; .<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; .<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; .<br>
 
&nbsp; +/lib<br>
&nbsp; +/lib<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +lib_part1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +lib_part1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lib_part(s).v<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lib_part(s).v<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +lib_part2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +lib_part2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
</code><code>&nbsp; +/run</code><br>
</code><code>&nbsp; +/run</code><br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +test_case1<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +/test_case1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filelist<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dmp_define<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dmp_define<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modellist<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dut<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_define<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_define<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; liblist<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +/test_case2<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TB.defs<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +test_case2<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp; +/log<br>
&nbsp; +/xml<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_case1.log<br>
&nbsp;</code><code>&nbsp;&nbsp;&nbsp;&nbsp; test_case1.xml<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_case2.log<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_case2.xml<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
 
&nbsp; +/out<br>
 
&nbsp;</code><code>&nbsp;&nbsp;&nbsp;&nbsp; test_case1.vcd<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; test_case2.vcd<br>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .</code><br>
</big>
</big>
<code><ouabache design="" works=""><big><br>
<code><ouabache design="" works=""><br>
<br>
 
<br>
 
</big>
 
<br>
 
</ouabache></code>
</ouabache></code>
<p>Each component will have a ./sim directory for the test suite.
<p>Each component will have a ./sim directory for the test suite.
Typing:<br>
Typing:<br>
</p>
</p>
<p><big><big><br>
<p><big><big><br>
<small><span style="font-family: monospace;">
<small><span style="font-family: monospace;">
&lt;&gt;:~$&gt;cd ./sim/bin</span><br style="font-family: monospace;">
&lt;&gt;:~$&gt;cd ./sim/bin</span><br style="font-family: monospace;">
</small><span style="font-family: monospace;"><small>
</small><span style="font-family: monospace;"><small>
&lt;&gt;:~$&gt;make run_sims</small><br>
&lt;&gt;:~$&gt;make run_sims</small><br>
</span></big></big></p>
</span></big></big></p>
<p><big><big><span style="font-family: monospace;"><br>
<p><big><big><span style="font-family: monospace;"><br>
</span></big></big>
</span></big></big>
</p>
</p>
will run the entire test suite. After that has been done then
will run the entire test suite. After that has been done then
individual test_cases may be rerun by changing into their test_case
individual test_cases may be rerun by changing into their test_case
directory and typing:<br>
directory and typing:<br>
<code><ouabache design="" works=""><br>
<code><ouabache design="" works=""><br>
<br>
<br>
</ouabache></code>
</ouabache></code>
<p><big><big><span style="font-family: monospace;"><small>&lt;&gt;:~$&gt;make
<p><big><big><span style="font-family: monospace;"><small>&lt;&gt;:~$&gt;make
sim</small></span></big></big>
sim</small></span></big></big>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p>Each test_case will produce a log file that may be parsed for the
<p>Each test_case will produce a log file that may be parsed for the
string "PASSED" to indicate that the sim finished. If so then the log
string "PASSED" to indicate that the sim finished. If so then the log
file should be parsed for the strings "ERROR" and "WARNING" to see if
file should be parsed for the strings "ERROR" and "WARNING" to see if
there were and errors or warnings. <br>
there were and errors or warnings. <br>
</p>
</p>
<p>Simulating a test_case requires involking a verilog simulator and
<p>Simulating a test_case requires involking a verilog simulator and
passing it command line arguments and a TestBench file. Icarus verilog
passing it command line arguments and a TestBench file. Icarus verilog
is the default simulator for the socgen project. Socgen uses a minumal
is the default simulator for the socgen project. Socgen uses a minumal
command line and instead puts most needed information in the TestBench
command line and instead puts most needed information in the TestBench
file.&nbsp; The only command line option is to set the VCD flag if a
file.&nbsp; The only command line option is to set the VCD flag if a
value change dump file is needed.<br>
value change dump file is needed.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</p>
</p>
<h2><a name="manifesto"></a>TestBench file<br>
<h2><a name="manifesto"></a>TestBench file<br>
</h2>
</h2>
<code>
<code>
<ouabache design="" works="">--------------------------------------------------------------------------------------------------------------------------------------<br>
<ouabache design="" works="">--------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
`include&nbsp; "./TB.defs"<br>
`include&nbsp; "./TB.defs"<br>
<br>
<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE&nbsp;&nbsp; 1ns/1ns<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE&nbsp;&nbsp; 1ns/1ns<br>
`endif<br>
`endif<br>
<br>
<br>
<br>
<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT&nbsp; $timeformat(-6, 2, "
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT&nbsp; $timeformat(-6, 2, "
us", 14);<br>
us", 14);<br>
`endif<br>
`endif<br>
<br>
<br>
<br>
<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; PERIOD<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; PERIOD<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; PERIOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
`define&nbsp;&nbsp;&nbsp;&nbsp; PERIOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
40.00000 <br>
40.00000 <br>
`endif<br>
`endif<br>
<br>
<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT<br>
`ifndef&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp; 200000<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp; 200000<br>
`endif<br>
`endif<br>
<br>
<br>
<br>
<br>
`timescale `TIMESCALE<br>
`timescale `TIMESCALE<br>
<br>
<br>
<br>
<br>
`include&nbsp; "./filelist"<br>
`include&nbsp; "./filelist"<br>
`include&nbsp; "./liblist"<br>
`include&nbsp; "./liblist"<br>
`include&nbsp; "./modellist"<br>
`include&nbsp; "./modellist"<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
module TB();<br>
module TB();<br>
<br>
<br>
wire clk;<br>
wire clk;<br>
wire reset;<br>
wire reset;<br>
<br>
<br>
`include "./dut"<br>
`include "./dut"<br>
`include "./test_define"<br>
`include "./test_define"<br>
<br>
<br>
<br>
<br>
`ifdef VCD<br>
`ifdef VCD<br>
initial<br>
initial<br>
begin<br>
begin<br>
`include "./dmp_define"<br>
`include "./dmp_define"<br>
end<br>
end<br>
`endif<br>
`endif<br>
<br>
<br>
clock_gen<br>
clock_gen<br>
#(.PERIOD(`PERIOD),<br>
#(.PERIOD(`PERIOD),<br>
&nbsp; .TIMEOUT(`TIMEOUT))<br>
&nbsp; .TIMEOUT(`TIMEOUT))<br>
cg <br>
cg <br>
( .clk&nbsp;&nbsp; ( clk&nbsp;&nbsp; ),<br>
( .clk&nbsp;&nbsp; ( clk&nbsp;&nbsp; ),<br>
&nbsp;
&nbsp;
.reset ( reset )<br>
.reset ( reset )<br>
);<br>
);<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
endmodule<br>
endmodule<br>
</ouabache></code><span style="font-family: monospace;"><br>
</ouabache></code><span style="font-family: monospace;"><br>
--------------------------------------------------------------------------------------------------------------------------------------<br>
--------------------------------------------------------------------------------------------------------------------------------------<br>
</span>
</span>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span></p>
</span></p>
<p><br>
<p><br>
<span style="font-family: monospace;"></span></p>
<span style="font-family: monospace;"></span></p>
<p>A single&nbsp; TestBench file provides the infrastructure for all
<p>A single&nbsp; TestBench file provides the infrastructure for all
test cases. The actual testing is determined by the data contained in
test cases. The actual testing is determined by the data contained in
six files in the ./sim/run/test_case directory. The TestBench file
six files in the ./sim/run/test_case directory. The TestBench file
creates a top level module named TB and instantiates a clock_reset
creates a top level module named TB and instantiates a clock_reset
generator module to provide each test_case with a clock and a reset
generator module to provide each test_case with a clock and a reset
signal. It also provides a vcd dump&nbsp; and timeout&nbsp; functions
signal. It also provides a vcd dump&nbsp; and timeout&nbsp; functions
for each test_case.<span style="font-family: monospace;"><br>
for each test_case.<span style="font-family: monospace;"><br>
</span></p>
</span></p>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span></p>
</span></p>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span></p>
</span></p>
<h2><a name="manifesto"></a>TB.defs <br>
<h2><a name="manifesto"></a>TB.defs <br>
</h2>
</h2>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
</p>
</p>
<code>
<code>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE&nbsp;&nbsp; 1ns/1ns<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMESCALE&nbsp;&nbsp; 1ns/1ns<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT&nbsp; $timeformat(-6, 2, "
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEFORMAT&nbsp; $timeformat(-6, 2, "
us", 14);<br>
us", 14);<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; PERIOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
`define&nbsp;&nbsp;&nbsp;&nbsp; PERIOD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
40.0000 <br>
40.0000 <br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp; 200000<br>
`define&nbsp;&nbsp;&nbsp;&nbsp; TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp; 200000<br>
</code>
</code>
<p></p>
<p></p>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
</span></p>
</span></p>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span></p>
</span></p>
<p>The TB.defs file may be used to set up the timescale and master
<p>The TB.defs file may be used to set up the timescale and master
clock period for the simulation.&nbsp; Any model or lib part that needs
clock period for the simulation.&nbsp; Any model or lib part that needs
to reset the timescale back to the system default must use:<br>
to reset the timescale back to the system default must use:<br>
</p>
</p>
<p><code>`timescale `TIMESCALE<br>
<p><code>`timescale `TIMESCALE<br>
</code></p>
</code></p>
<p><code><br>
<p><code><br>
<span style="font-family: serif;">Do NOT use</span><br>
<span style="font-family: serif;">Do NOT use</span><br>
</code></p>
</code></p>
<p><code>`include "./timescale.v"<br>
<p><code>`include "./timescale.v"<br>
</code></p>
</code></p>
<p><code><br>
<p><code><br>
<span style="font-family: serif;">The socgen project does not contain
<span style="font-family: serif;">The socgen project does not contain
any timescale.v file.&nbsp; All socgen rtl code is preprocessed before
any timescale.v file.&nbsp; All socgen rtl code is preprocessed before
it is passed to simulation and the value of the timescale may change
it is passed to simulation and the value of the timescale may change
depending on the simulation. All ip components must only contain
depending on the simulation. All ip components must only contain
synthesisable code and should not have any need for timescale.<br>
synthesisable code and should not have any need for timescale.<br>
</span></code></p>
</span></code></p>
<p><code><span style="font-family: serif;">TIMEFORMAT will set the
<p><code><span style="font-family: serif;">TIMEFORMAT will set the
format that is used when time is displayed using the %t format . All
format that is used when time is displayed using the %t format . All
$display statements must start by displaying $realtime using the %t
$display statements must start by displaying $realtime using the %t
format so every line in the log has a time stamp. Any display statement
format so every line in the log has a time stamp. Any display statement
from an instantiated module must also have %m to print out it's
from an instantiated module must also have %m to print out it's
instance name. If the message is an error or a warning then the strings
instance name. If the message is an error or a warning then the strings
ERROR or WARNING must be used so that this information may be parsed
ERROR or WARNING must be used so that this information may be parsed
from the log file.<br>
from the log file.<br>
<br style="font-family: serif;">
<br style="font-family: serif;">
</span></code></p>
</span></code></p>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span>The TB.defs file may also
</span>The TB.defs file may also
be used to pass the size and location&nbsp; of an embedded&nbsp; bit
be used to pass the size and location&nbsp; of an embedded&nbsp; bit
file to the device_under_test<span style="font-family: monospace;"> <br>
file to the device_under_test<span style="font-family: monospace;"> <br>
</span></p>
</span></p>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><span style="font-family: monospace;">`define&nbsp; ROM_WORDS 2048 <br>
<p><span style="font-family: monospace;">`define&nbsp; ROM_WORDS 2048 <br>
`define&nbsp; ROM_ADDR&nbsp;&nbsp; 11&nbsp; <br>
`define&nbsp; ROM_ADDR&nbsp;&nbsp; 11&nbsp; <br>
`define&nbsp; ROM_WIDTH&nbsp; 12&nbsp; <br>
`define&nbsp; ROM_WIDTH&nbsp; 12&nbsp; <br>
`define&nbsp; ROM_FILE "../../../../../sw/mouse/mouse.abs12"<br>
`define&nbsp; ROM_FILE "../../../../../sw/mouse/mouse.abs12"<br>
</span><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
</span><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
</p>
</p>
<p>The path is the relative path from the test_case run directory.<span
<p>The path is the relative path from the test_case run directory.<span
 style="font-family: monospace;"><br>
 style="font-family: monospace;"><br>
</span></p>
</span></p>
<p><span style="font-family: monospace;"><br>
<p><span style="font-family: monospace;"><br>
</span></p>
</span></p>
<h2><a name="manifesto"></a>filelist </h2>
<h2><a name="manifesto"></a>filelist </h2>
<p style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
<p style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
</p>
</p>
<p style="font-family: monospace;">`include
<p style="font-family: monospace;">`include
"../../../rtl/gen/sim/soc_mouse.v"<br>
"../../../rtl/gen/sim/soc_mouse.v"<br>
`include "../../../../pic16c5x/rtl/gen/sim/pic16c5x.v"<br>
`include "../../../../pic16c5x/rtl/gen/sim/pic16c5x.v"<br>
`include
`include
"../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module_mouse.v"<br>
"../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module_mouse.v"<br>
`include
`include
"../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v"<br>
"../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v"<br>
`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v"<br>
`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v"<br>
</p>
</p>
<code style="font-family: monospace;"></code>
<code style="font-family: monospace;"></code>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
<span style="font-family: monospace;">-------------------------------------------------------------------------------------------------------------------------------------</span>
<p><br>
<p></p>
</p>
 
<p>The filelist uses `include statements to load all the rtl files into
 
the simulation.The paths are&nbsp; relative from the test_case run
 
directory. Note that all the verilog files have been post-processed and
 
search directories or include directories are not needed.
 
</p>
 
<p><br>
<p><br>
</p>
</p>
<h2><a name="manifesto"></a>liblist</h2>
<h2><a name="manifesto"></a>liblist</h2>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span>
</p>
</p>
<code>
<code>
<br>
<br>
`include "../../lib/cde_sram/cde_sram.v"<br>
`include "../../lib/cde_sram/cde_sram.v"<br>
`include "../../lib/cde_lifo/cde_lifo.v"<br>
`include "../../lib/cde_lifo/cde_lifo.v"<br>
`include "../../lib/cde_synchronizers/cde_sync_with_hysteresis.v"<br>
`include "../../lib/cde_synchronizers/cde_sync_with_hysteresis.v"<br>
<br>
<br>
</code>
</code>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
<p>The liblist uses `include statements to load all the generic lib
<p>The liblist uses `include statements to load all the generic lib
models&nbsp; into
models&nbsp; into
the simulation.The paths are&nbsp; relative from the test_case run
the simulation.The paths are&nbsp; relative from the test_case run
directory. Note that these libs may be replaced&nbsp; by vendor
directory. Note that these libs may be replaced&nbsp; by vendor
specific instances when the design is&nbsp; synthesised into gates.<br>
specific instances when the design is&nbsp; synthesised into gates.<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p></p>
<p></p>
<p><br>
<p><br>
</p>
</p>
<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"<br>
`include "../../bench/verilog/models/ps2_model.v"<br>
</code><code>`include "../../bench/verilog/models/uart_model.v"</code><code>&nbsp;&nbsp;
</code><code>`include "../../bench/verilog/models/uart_model.v"</code><code>&nbsp;&nbsp;
<br>
<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>
This list loads all of the simulation models used in the simulation.<br>
This list loads all of the simulation models used in the simulation.<br>
<br>
<br>
<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><code><br>
<p><span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><code><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>
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>
wire [9:0]&nbsp;&nbsp;&nbsp;&nbsp; y_pos;<br>
wire [9:0]&nbsp;&nbsp;&nbsp;&nbsp; y_pos;<br>
wire [9:0]&nbsp;&nbsp;&nbsp;&nbsp; x_pos;<br>
wire [9:0]&nbsp;&nbsp;&nbsp;&nbsp; x_pos;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
new_packet;<br>
new_packet;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ms_mid; <br>
ms_mid; <br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ms_right;&nbsp; <br>
ms_right;&nbsp; <br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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;
serial_txd;<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;
serial_rxd;<br>
serial_rxd;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loop;<br>
wire&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loop;<br>
&nbsp; <br>
&nbsp; <br>
<br>
<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; (
&nbsp;&nbsp; .clk&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; (
clk&nbsp;&nbsp;&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;&nbsp; (
&nbsp;&nbsp; .reset &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; (
reset&nbsp;&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>
&nbsp;&nbsp; .portaout&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; (
&nbsp;&nbsp; .portaout&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; (
portaout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
portaout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
&nbsp;&nbsp; .portbout&nbsp; &nbsp; &nbsp; &nbsp; ( portbout&nbsp;
&nbsp;&nbsp; .portbout&nbsp; &nbsp; &nbsp; &nbsp; ( portbout&nbsp;
&nbsp; &nbsp; &nbsp; ),<br>
&nbsp; &nbsp; &nbsp; ),<br>
&nbsp;&nbsp; .portcout&nbsp; &nbsp; &nbsp; &nbsp; (
&nbsp;&nbsp; .portcout&nbsp; &nbsp; &nbsp; &nbsp; (
portcout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
portcout&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ),<br>
<br>
<br>
&nbsp;&nbsp; .y_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
&nbsp;&nbsp; .y_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
y_pos&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ),<br>
y_pos&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .x_pos&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (
&nbsp;&nbsp; .x_pos&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (
x_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),<br>
x_pos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .new_packet &nbsp; &nbsp;&nbsp; ( new_packet &nbsp;
&nbsp;&nbsp; .new_packet &nbsp; &nbsp;&nbsp; ( new_packet &nbsp;
&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
&nbsp;&nbsp; .ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; (
ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ), <br>
ms_mid&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ), <br>
&nbsp;&nbsp; .ms_right&nbsp; &nbsp; &nbsp; &nbsp; (
&nbsp;&nbsp; .ms_right&nbsp; &nbsp; &nbsp; &nbsp; (
ms_right&nbsp;&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;&nbsp; .ms_left&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (
ms_left&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),&nbsp; <br>
ms_left&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; ),&nbsp; <br>
<br>
<br>
&nbsp;&nbsp; .txd_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .txd_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
serial_txd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
serial_txd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .rxd_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .rxd_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
serial_rxd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
serial_rxd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ),<br>
&nbsp;&nbsp; .cts_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .cts_pad_in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (
loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),<br>
),<br>
&nbsp;&nbsp; .rts_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
&nbsp;&nbsp; .rts_pad_out&nbsp;&nbsp;&nbsp;&nbsp; (
loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>
</code></p>
<p><code>uart_model <br>
<p><code>uart_model <br>
#(.CLKCNT(4'hc))<br>
#(.CLKCNT(4'hc))<br>
uart_model<br>
uart_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;
clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),<br>
),<br>
&nbsp;&nbsp;
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(
(
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
reset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),
),
<br>
<br>
&nbsp;&nbsp;
&nbsp;&nbsp;
.txd_in &nbsp;&nbsp; &nbsp;
.txd_in &nbsp;&nbsp; &nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
( serial_txd&nbsp; ),<br>
( serial_txd&nbsp; ),<br>
&nbsp;&nbsp;
&nbsp;&nbsp;
.rxd_out &nbsp;&nbsp;
.rxd_out &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
( serial_rxd&nbsp; )<br>
( serial_rxd&nbsp; )<br>
<br>
<br>
);</code><br>
);</code><br>
<code></code></p>
<code></code></p>
<p><code><br>
<p><code><br>
</code></p>
</code></p>
<p><code><br>
<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>
&nbsp;&nbsp; .oe&nbsp; ( ps2_data_pad_oe ),<br>
&nbsp;&nbsp; .oe&nbsp; ( ps2_data_pad_oe ),<br>
&nbsp;&nbsp; .o&nbsp;&nbsp; ( ps2_data_pad_in ),<br>
&nbsp;&nbsp; .o&nbsp;&nbsp; ( ps2_data_pad_in ),<br>
&nbsp;&nbsp; .pad ( ps2_data&nbsp;&nbsp;&nbsp; )<br>
&nbsp;&nbsp; .pad ( ps2_data&nbsp;&nbsp;&nbsp; )<br>
&nbsp;&nbsp; );<br>
&nbsp;&nbsp; );<br>
<br>
<br>
<br>
<br>
iobuftri<br>
iobuftri<br>
clk_tri_buf<br>
clk_tri_buf<br>
&nbsp; (<br>
&nbsp; (<br>
&nbsp;&nbsp; .i&nbsp;&nbsp; ( 1'b0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; .i&nbsp;&nbsp; ( 1'b0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
),<br>
),<br>
&nbsp;&nbsp; .oe&nbsp; ( ps2_clk_pad_oe ),<br>
&nbsp;&nbsp; .oe&nbsp; ( ps2_clk_pad_oe ),<br>
&nbsp;&nbsp; .o&nbsp;&nbsp; ( ps2_clk_pad_in ),<br>
&nbsp;&nbsp; .o&nbsp;&nbsp; ( ps2_clk_pad_in ),<br>
&nbsp;&nbsp; .pad ( ps2_clk&nbsp;&nbsp;&nbsp; )<br>
&nbsp;&nbsp; .pad ( ps2_clk&nbsp;&nbsp;&nbsp; )<br>
&nbsp;&nbsp; );<br>
&nbsp;&nbsp; );<br>
<br>
<br>
<br>
<br>
<br>
<br>
pullup ua0(ps2_clk);<br>
pullup ua0(ps2_clk);<br>
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_model<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;
),<br>
),<br>
&nbsp;&nbsp;
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(
(
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;
.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>
);</code></p>
);</code></p>
<p><code><br>
<p><code><br>
</code></p>
</code></p>
<p><code><br>
<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>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2><a name="manifesto"></a>test_define<br>
<h2><a name="manifesto"></a>test_define<br>
</h2>
</h2>
<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><span
<span style="font-family: monospace;">begin</span><span
 style="font-family: monospace;"></span><br
 style="font-family: monospace;"></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
 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;
Test
Test
Start");</span><br style="font-family: monospace;">
Start");</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
 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;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h00;</span><br style="font-family: monospace;">
=&nbsp; 8'h00;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_ack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_ack&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_stop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20);</span><br
<span style="font-family: monospace;">cg.next(20);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">cg.reset_off;</span><br
<span style="font-family: monospace;">cg.reset_off;</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'haa;</span><br style="font-family: monospace;">
=&nbsp; 8'haa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h00;</span><br style="font-family: monospace;">
=&nbsp; 8'h00;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h03;</span><br style="font-family: monospace;">
=&nbsp; 8'h03;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
<span style="font-family: monospace;">while (device_rx_read == 1'b0 )
cg.next(1);</span><br style="font-family: monospace;">
cg.next(1);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(2000);</span><br
<span style="font-family: monospace;">cg.next(2000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
=&nbsp; 8'hfa;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h12;</span><br style="font-family: monospace;">
=&nbsp; 8'h12;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h34;</span><br style="font-family: monospace;">
=&nbsp; 8'h34;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h56;</span><br style="font-family: monospace;">
=&nbsp; 8'h56;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h78;</span><br style="font-family: monospace;">
=&nbsp; 8'h78;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
=&nbsp; 1'b0;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'h9a;</span><br style="font-family: monospace;">
=&nbsp; 8'h9a;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_parity&nbsp;&nbsp;&nbsp;
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
=&nbsp; 1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
<span style="font-family: monospace;">device_tx_data&nbsp;&nbsp;
=&nbsp; 8'hbc;</span><br style="font-family: monospace;">
=&nbsp; 8'hbc;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b1;</span><br style="font-family: monospace;">
1'b1;</span><br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(1);</span><br
<span style="font-family: monospace;">cg.next(1);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">device_write&nbsp;&nbsp;&nbsp;&nbsp;
=&nbsp;
=&nbsp;
1'b0;</span><br style="font-family: monospace;">
1'b0;</span><br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">cg.next(20000);</span><br
<span style="font-family: monospace;">cg.next(20000);</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<span style="font-family: monospace;">$display("%t&nbsp;&nbsp;&nbsp;
<span style="font-family: monospace;">$display("%t&nbsp;&nbsp;&nbsp;
Test&nbsp; PASSED",$realtime);</span><br style="font-family: monospace;">
Test&nbsp; PASSED",$realtime);</span><br style="font-family: monospace;">
<span style="font-family: monospace;">$finish;</span><br
<span style="font-family: monospace;">$finish;</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<span style="font-family: monospace;">end</span><br
<span style="font-family: monospace;">end</span><br
 style="font-family: monospace;">
 style="font-family: monospace;">
<br style="font-family: monospace;">
<br style="font-family: monospace;">
<br>
<br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<p><br>
<p><br>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
<span style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------</span><br>
</p>
</p>
<p><br>
<p><br>
</p>
</p>
<h2><a name="manifesto"></a>dmp_define<br>
<h2><a name="manifesto"></a>dmp_define<br>
</h2>
</h2>
<p style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
<p style="font-family: monospace;">--------------------------------------------------------------------------------------------------------------------------------------<br>
</p>
</p>
<p style="font-family: monospace;">$dumpfile ("TestBench.vcd");<br>
<p style="font-family: monospace;">$dumpfile ("TestBench.vcd");<br>
$dumpvars (0, TB);<br>
$dumpvars (0, TB);<br>
--------------------------------------------------------------------------------------------------------------------------------------<br>
--------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p></p>
<br>
<p></p>
</p>
 
<p><br>
 
<br>
 
</p>
 
<p><br>
 
</p>
 
<p><br>
 
</p>
 
<p><br>
 
</p>
 
<p>This is a test<br>
 
</p>
 
<p><br>
<p><br>
&nbsp;<br>
&nbsp;<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
<p><br>
<p><br>
<br>
<br>
</p>
</p>
</body>
</body>
</html>
</html>
 
 

powered by: WebSVN 2.1.0

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