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

Subversion Repositories socgen

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /socgen
    from Rev 87 to Rev 88
    Reverse comparison

Rev 87 → Rev 88

/trunk/tools/Jtag_programmers/etc/udev/rules.d/xusbdfwu.rules
1,8 → 1,8
# version 0003
SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", MODE="666"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusbdfwu.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb_xup.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb_emb.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb_xlp.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb_xp2.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/12.3/ISE_DS/ISE/bin/lin/xusb_xse.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusbdfwu.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusb_xup.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusb_emb.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusb_xlp.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusb_xp2.hex -D $tempnode"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/13.1/ISE_DS/ISE/bin/lin/xusb_xse.hex -D $tempnode"
/trunk/tools/bin/build_geda
0,0 → 1,359
eval 'exec `which perl` -S $0 ${1+"$@"}'
if 0;
 
#/**********************************************************************/
#/* */
#/* ------- */
#/* / SOC \ */
#/* / GEN \ */
#/* / TOOL \ */
#/* ============== */
#/* | | */
#/* |____________| */
#/* */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
#/**********************************************************************/
#/* */
#/* Copyright (C) <2010> <Ouabache Design Works> */
#/* */
#/* This source file may be used and distributed without */
#/* restriction provided that this copyright statement is not */
#/* removed from the file and that any derivative work contains */
#/* the original copyright notice and the associated disclaimer. */
#/* */
#/* This source file is free software; you can redistribute it */
#/* and/or modify it under the terms of the GNU Lesser General */
#/* Public License as published by the Free Software Foundation; */
#/* either version 2.1 of the License, or (at your option) any */
#/* later version. */
#/* */
#/* This source is distributed in the hope that it will be */
#/* useful, but WITHOUT ANY WARRANTY; without even the implied */
#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
#/* PURPOSE. See the GNU Lesser General Public License for more */
#/* details. */
#/* */
#/* You should have received a copy of the GNU Lesser General */
#/* Public License along with this source; if not, download it */
#/* from http://www.opencores.org/lgpl.shtml */
#/* */
#/**********************************************************************/
 
# ToDO: add handling unaligned words
 
 
############################################################################
# General PERL config
############################################################################
use Getopt::Long;
use English;
use File::Basename;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
############################################################################
### Process the options
############################################################################
 
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h"
) || die "(use '$program_name -h' for help)";
 
 
##############################################################################
## Help option
##############################################################################
if ( ($opt_h eq "1") )
{ print "\n type test filename ( no extension)";
print "\n";
exit 1;
}
 
 
##############################################################################
##
##############################################################################
 
 
 
use Cwd;
use XML::LibXML;
 
$cde_home = cwd();
$lib_comp_sep = "/ip/";
$comp_xml_sep = "/rtl/xml/";
 
 
 
 
#############################################################################
##
## open intel hex file and read into array
##
#############################################################################
 
my $project = $ARGV[0];
my $component = $ARGV[1];
my $prefix = "work/${project}";
 
 
 
#############################################################################
##
##
#############################################################################
 
 
 
 
 
 
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file("${cde_home}/${prefix}/ip/${component}/soc/design.soc");
 
 
foreach my $comp ($doc->findnodes('//components/component'))
{
 
my($name) = $comp->findnodes('./name/text()')->to_literal ;
my($version) = $comp->findnodes('./version/text()')->to_literal ;
 
my $variant = "";
if($version) {$variant = "${name}_${version}"}
else {$variant = "${name}"}
 
print "gEDA directories for $project - $component . ${version}. $name - $variant \n";
 
#/*********************************************************************************************/
#/ */
#/ */
#/ */
#/ */
#/ */
#/ */
#/*********************************************************************************************/
 
 
my $path = "${cde_home}/${prefix}/ip/${component}/doc/geda";
mkdir $path,0755 unless( -e $path );
 
my $path = "${cde_home}/${prefix}/ip/${component}/doc/geda/drawing";
mkdir $path,0755 unless( -e $path );
 
my $path = "${cde_home}/${prefix}/ip/${component}/doc/geda/drawing/sch";
mkdir $path,0755 unless( -e $path );
 
my $path = "${cde_home}/${prefix}/ip/${component}/doc/geda/drawing/sym";
mkdir $path,0755 unless( -e $path );
 
my $outfile ="${cde_home}/${prefix}/ip/${component}/doc/geda/drawing/sch/${variant}.sch";
open SCH_FILE,">$outfile" or die "unable to open $outfile";
 
my $outfile ="${cde_home}/${prefix}/ip/${component}/doc/geda/drawing/sym/${variant}.sym";
open SYM_FILE,">$outfile" or die "unable to open $outfile";
 
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file("${cde_home}/${prefix}${lib_comp_sep}${component}${comp_xml_sep}${variant}.xml");
foreach my $comp ($doc->findnodes('//spirit:component'))
{
my($vendor) = $comp->findnodes('./spirit:vendor/text()')->to_literal ;
my($library) = $comp->findnodes('./spirit:library/text()')->to_literal ;
my($name) = $comp->findnodes('./spirit:name/text()')->to_literal ;
my($version) = $comp->findnodes('./spirit:version/text()')->to_literal ;
#/**********************************************************************/
#/* */
#/* Every hier cell is constructed from the ipxact file with seperate */
#/* versions for simulation and synthesys */
#/* */
#/* */
#/**********************************************************************/
my $in_count = 0;
my $out_count = 0;
my $in_length = 0;
my $out_length = 0;
 
 
foreach my $i_name ($doc->findnodes("//spirit:component/spirit:model/spirit:ports/spirit:port/name"))
{
my($port_name) = $i_name ->findnodes('./text()')->to_literal ;
my($direction) = $i_name ->findnodes('../spirit:wire/spirit:direction/text()')->to_literal ;
my($left) = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:left/text()')->to_literal ;
my($right) = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:right/text()')->to_literal ;
my($type) = $i_name ->findnodes('../spirit:wireTypeDefs/spirit:wireTypeDef/spirit:typeName/text()')->to_literal ;
 
 
 
 
 
 
if($left) {$width = "[${left}:${right}]";}
else {$width = " ";}
my $pin_name = "${port_name}${width}";
if("input" eq $direction)
{
push(@invads,$pin_name);
$in_count = $in_count+1;
if( length($pin_name) > $in_length) { $in_length = length($pin_name)};
}
if("output" eq $direction)
{
push(@outvads,$pin_name);
$out_count = $out_count+1;
if( length($pin_name) > $out_length){ $out_length = length($pin_name) }
}
if("inout" eq $direction)
{
push(@inoutvads,$pin_name);
$in_count = $in_count+1;
if( length($pin_name) > $in_length){ $in_length = length($pin_name) }
}
}
 
my $max_pins;
 
if($in_count > $out_count) {$max_pins = $in_count ;} else {$max_pins = $out_count ;}
 
 
 
my $sch_color = 5;
my $sch_size = 10;
my $sch_pin_y = 300;
 
 
my $sch_in_edg = ($in_length)*10*$sch_size +200;
my $sch_in_pad = ($in_length)*10*$sch_size +200;
my $sch_out_edg = ($in_length +$out_length)*10*$sch_size +2500;
my $sch_out_pad = ($in_length +$out_length)*10*$sch_size +1500;
 
printf SCH_FILE ("v 20100214 1\n");
 
 
my $sym_color = 5;
my $sym_size = 10;
my $sym_box_h = ($max_pins * 200) +300;
my $sym_box_w = ($in_length +$out_length)*10*$sym_size +400;
my $sym_out_title = ($in_length +$out_length)*10*$sym_size +600;
my $sym_out_edg = ($in_length +$out_length)*10*$sym_size +700;
my $sym_out_pad = ($in_length +$out_length)*10*$sym_size +1000;
my $sym_title = $sym_box_h +150;
my $sym_ref_des = $sym_box_h +350;
 
 
printf SYM_FILE ("v 20100214 1\n");
printf SYM_FILE ("B 300 0 $sym_box_w $sym_box_h 3 60 0 0 -1 -1 0 -1 -1 -1 -1 -1\n");
printf SYM_FILE ("T 400 $sym_title 5 10 1 1 0 0 1 1\ndevice=%s\n", $variant);
printf SYM_FILE ("T 400 $sym_ref_des 8 10 1 1 0 0 1 1\n%srefdes=U?\n");
 
my $sym_pin_y = 200;
my $sym_pin_seq = 1;
 
 
 
while( $name =pop(@invads))
{
printf SCH_FILE ("C $sch_in_pad $sch_pin_y 1 0 0 in_port_v.sym \n{\nT $sch_in_edg $sch_pin_y $sch_color $sch_size 1 1 0 6 1 1\nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P 300 $sym_pin_y 0 $sym_pin_y 10 1 1 \n");
printf SYM_FILE ("{\nT 400 $sym_pin_y $sym_color $sym_size 1 1 0 1 1 1\npinnumber=%s\n",$name);
printf SYM_FILE ("T 400 $sym_pin_y $sym_color $sym_size 0 1 0 1 1 1\npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
}
 
$sym_pin_y = 200;
 
 
while( $name =pop(@inpads))
{
printf SCH_FILE ("C $sch_in_pad $sch_pin_y 1 0 0 in_port.sym \n{\nT $sch_in_edg $sch_pin_y $sch_color $sch_size 1 1 0 6 1 1 \nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P 300 $sym_pin_y 0 $sym_pin_y 4 0 1 \n");
printf SYM_FILE ("{\nT 400 $sym_pin_y $sym_color $sym_size 1 1 0 1 1 1 \npinnumber=%s\n",$name);
printf SYM_FILE ("T 400 $sym_pin_y $sym_color $sym_size 0 1 0 1 1 1 \npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
 
}
 
 
 
while( $name =pop(@inoutvads))
{
printf SCH_FILE ("C $sch_in_pad $sch_pin_y 1 0 0 io_port_v.sym \n{\nT $sch_in_edg $sch_pin_y $sch_color $sch_size 1 1 0 6 1 1\nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P $sym_out_edg $sym_pin_y $sym_out_pad $sym_pin_y 10 1 1\n");
printf SYM_FILE ("{\nT $sym_out_title $sym_pin_y $sym_color $sym_size 1 1 0 7 1 1 \npinnumber=%s\n",$name);
printf SYM_FILE ("T $sym_out_title $sym_pin_y $sym_color $sym_size 0 1 0 7 1 1 \npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
 
}
 
 
while( $name =pop(@inoutpads))
{
printf SCH_FILE ("C $sch_in_pad $sch_pin_y 1 0 0 io_port.sym \n{\nT $sch_in_edg $sch_pin_y $sch_color $sch_size 1 1 0 6 1 1 \nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P $sym_out_edg $sym_pin_y $sym_out_pad $sym_pin_y 4 0 1\n");
printf SYM_FILE ("{\nT $sym_out_title $sym_pin_y $sym_color $sym_size 1 1 0 7 1 1\npinnumber=%s\n",$name);
printf SYM_FILE ("T $sym_out_edg $sym_pin_y $sym_color $sym_size 0 1 0 7 1 1\npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
}
 
 
$sch_pin_y = 300;
 
while( $name =pop(@outvads))
{
printf SCH_FILE ("C $sch_out_pad $sch_pin_y 1 0 0 out_port_v.sym\n{\nT $sch_out_edg $sch_pin_y $sch_color $sch_size 1 1 0 0 1 1 \nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P $sym_out_edg $sym_pin_y $sym_out_pad $sym_pin_y 10 1 1\n");
printf SYM_FILE ("{\nT $sym_out_title $sym_pin_y $sym_color $sym_size 1 1 0 7 1 1 \npinnumber=%s\n",$name);
printf SYM_FILE ("T $sym_out_title $sym_pin_y $sym_color $sym_size 0 1 0 7 1 1 \npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
}
 
 
while( $name =pop(@outpads))
{
printf SCH_FILE ("C $sch_out_pad $sch_pin_y 1 0 0 out_port.sym\n{\nT $sch_out_edg $sch_pin_y $sch_color $sch_size 1 1 0 0 1 1\nrefdes=%s\n}\n",$name);
$sch_pin_y = $sch_pin_y +400;
 
printf SYM_FILE ("P $sym_out_edg $sym_pin_y $sym_out_pad $sym_pin_y 4 0 1\n");
printf SYM_FILE ("{\nT $sym_out_title $sym_pin_y $sym_color $sym_size 1 1 0 7 1 1\npinnumber=%s\n",$name);
printf SYM_FILE ("T $sym_out_edg $sym_pin_y $sym_color $sym_size 0 1 0 7 1 1\npinseq=%s\n}\n",$sym_pin_seq);
$sym_pin_seq = $sym_pin_seq +1;
$sym_pin_y = $sym_pin_y +200;
}
 
}
 
}
 
 
 
 
 
 
 
 
trunk/tools/bin/build_geda Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/tools/bin/soc_link_1 =================================================================== --- trunk/tools/bin/soc_link_1 (revision 87) +++ trunk/tools/bin/soc_link_1 (revision 88) @@ -132,7 +132,7 @@ &link_dir( "${home}/targets/${chip_target}", "${home}/${prefix}/ip/${component}/syn/${chip}/target" ); &link_dir( "${home}/lib", "${home}/${prefix}/ip/${component}/syn/${chip}/target/lib/syn" ); - + &link_dir( "${home}/tools/Jtag_programmers/debug", "${home}/${prefix}/ip/${component}/syn/${chip}/debug" ); }
/trunk/tools/bin/soc_link_2
97,7 → 97,7
foreach $line (@filelist)
{
$_ = $line;
if(/::(\w+)::(\w+)::(\w+)::/)
if(/::(\S+)::(\S+)::(\S+)::/)
{
$new_proj = $1;
$new_comp = $2;
/trunk/tools/bin/build_verilog
11,9 → 11,9
#/* | | */
#/* |____________| */
#/* */
#/* builds verilog rtl from a ip-xact component file */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
/trunk/tools/bin/soc_builder
116,6 → 116,12
$cmd ="./tools/bin/setup_cov $project $component /n";
if (system($cmd)) {}
print "exit setup_cov \n";
 
$cmd ="./tools/bin/build_geda $project $component /n";
if (system($cmd)) {}
print "exit build_geda \n";
 
 
$cmd ="./tools/bin/build_filelists $project $component $variant /n";
if (system($cmd)) {}
print "exit build_filelists \n";
153,7 → 159,7
chomp($xml_file);
my $filename= "${home}/${prefix}/ip/${component}/rtl/xml/${xml_file}";
$_ = $filename;
if(/(\S+)\/ip\/(\w+)\/rtl\/xml\/(\w+).xml/)
if(/(\S+)\/ip\/(\S+)\/rtl\/xml\/(\S+).xml/)
{
$variant = $3;
}
169,7 → 175,7
foreach $line (@filelist)
{
$_ = $line;
if(/::(\w+)::(\w+)::(\w+)::/)
if(/::(\S+)::(\S+)::(\S+)::/)
{
$new_proj = $1;
$new_comp = $2;
212,7 → 218,7
foreach my $kid (@kids)
{
$_ = $kid;
if(/(\S+)\/ip\/(\w+)\/rtl\/xml\/(\w+).xml/)
if(/(\S+)\/ip\/(\S+)\/rtl\/xml\/(\S+).xml/)
{
$prefix = $1;
$component = $2;
/trunk/tools/bin/Makefile.root
50,7 → 50,7
chmod 755 filelist.ver ;\
rm -f TB.v;\
./filelist.ver ;\
verilator --cc TB.v --exe ../../bench/verilator/sim_main.cpp -top-module TB -Wno-WIDTH 2> lint.log;\
verilator --cc TB.v --exe ../../bench/verilator/sim_main.cpp -top-module TB -Wno-WIDTH 2> lint.log;\
cd $(CUR_DIR) ;\
done; \
 
/trunk/tools/bin/soc_link
151,7 → 151,7
 
my $filename= "${home}/${prefix}/ip/${component}/rtl/xml/${xml_file}";
$_ = $filename;
if(/(\S+)\/ip\/(\w+)\/rtl\/xml\/(\w+).xml/) { $variant = $3; }
if(/(\S+)\/ip\/(\S+)\/rtl\/xml\/(\S+).xml/) { $variant = $3; }
$cmd ="./tools/bin/soc_link_2 $project $component $variant /n";
if (system($cmd)) {}
}
/trunk/tools/bin/build_filelists
135,7 → 135,7
{
 
$_ = $line;
if(/::(\w+)::(\w+)::(\w+)::/)
if(/::(\S+)::(\S+)::(\S+)::/)
{
$new_proj = $1;
$new_comp = $2;
/trunk/projects/Testbench/soc/library.soc
0,0 → 1,64
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
//------------------------------------------------------------------------//
// This file is used to map a libraries ip-xact files into a common design//
// environment. Variable $cde_home is set to the top level of the upper //
// most level of the design datbase and ${prefix} shows where the libs are//
// installed so that when given a VLNV: //
// //
// $project = ${vendor_local_name}{vendor_lib_sep}${library} //
// $variant = ${component}${comp_ver_sep}${version} //
// $ip-xact_file = //
// ${cde_home}${prefix}${project}${lib_comp_sep}${variant}${ip_xact_post} //
// //
// The end user must edit the vendor_local_name and vendor_lib_sep //
// variables to match where the vendors library is installed in the design//
// environment //
//------------------------------------------------------------------------//
-->
 
<library>
<name>Testbench</name>
<vendor_local_name></vendor_local_name>
<vendor_lib_sep></vendor_lib_sep>
<vendor>opencores.org</vendor>
<lib_comp_sep>/ip/</lib_comp_sep>
<comp_ver_sep>_</comp_ver_sep>
<ip_xact_post>.xml</ip_xact_post>
</library>
 
 
 
 
 
 
 
 
 
/trunk/projects/Testbench/bin/repeater
0,0 → 1,133
eval 'exec `which perl` -S $0 ${1+"$@"}'
if 0;
 
#/**********************************************************************/
#/* */
#/* ------- */
#/* / SOC \ */
#/* / GEN \ */
#/* / TOOL \ */
#/* ============== */
#/* | | */
#/* |____________| */
#/* */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
#/**********************************************************************/
#/* */
#/* Copyright (C) <2010> <Ouabache Design Works> */
#/* */
#/* This source file may be used and distributed without */
#/* restriction provided that this copyright statement is not */
#/* removed from the file and that any derivative work contains */
#/* the original copyright notice and the associated disclaimer. */
#/* */
#/* This source file is free software; you can redistribute it */
#/* and/or modify it under the terms of the GNU Lesser General */
#/* Public License as published by the Free Software Foundation; */
#/* either version 2.1 of the License, or (at your option) any */
#/* later version. */
#/* */
#/* This source is distributed in the hope that it will be */
#/* useful, but WITHOUT ANY WARRANTY; without even the implied */
#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
#/* PURPOSE. See the GNU Lesser General Public License for more */
#/* details. */
#/* */
#/* You should have received a copy of the GNU Lesser General */
#/* Public License along with this source; if not, download it */
#/* from http://www.opencores.org/lgpl.shtml */
#/* */
#/**********************************************************************/
 
# ToDO: add handling unaligned words
 
 
############################################################################
# General PERL config
############################################################################
use Getopt::Long;
use English;
use File::Basename;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
############################################################################
### Process the options
############################################################################
 
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h"
) || die "(use '$program_name -h' for help)";
 
 
##############################################################################
## Help option
##############################################################################
if ( ($opt_h eq "1") )
{ print "\n type test filename ( no extension)";
print "\n";
exit 1;
}
 
 
##############################################################################
##
##############################################################################
 
use Cwd;
use XML::LibXML;
 
$home = cwd();
 
 
 
 
 
#############################################################################
##
##
#############################################################################
 
my $prefix = $ARGV[0];
my $component = $ARGV[1];
my $variant = $ARGV[2];
print "Repeater\n" ;
 
my $index =0;
 
while($ARGV[$index])
{
my $arg = $ARGV[$index];
$index = $index +1;
print " $index -- $arg \n" ;
 
}
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/projects/Testbench/bin/repeater Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/projects/Testbench/ip/ps2_host/rtl/xml/ps2_host.xml =================================================================== --- trunk/projects/Testbench/ip/ps2_host/rtl/xml/ps2_host.xml (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/rtl/xml/ps2_host.xml (revision 88) @@ -0,0 +1,184 @@ + + + + +opencores.org +Testbench +ps2_host + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + ps2_host + + + variant + ps2_host + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + +clk +wire +input + + +reset +wire +input + + + +busy +wire +input + + +rx_read +wire +input + + + +rx_full +wire +input + + +rx_parity_error +wire +input + + +rx_parity_rcv +wire +input + + +rx_parity_cal +wire +input + + +rx_frame_error +wire +input + + +rx_clr +wire +output + + + + +tx_write +wire +output + + + +output reg [7:0] tx_data, +inout wire [7:0] rx_data, + + + + + + + + + + + + + + + fs-sim + + + + + ../verilog/top + verilogSourceTop + + + + + ../verilog/ps2h_probe + verilogSource + + + + + + + + + + + + + + Index: trunk/projects/Testbench/ip/ps2_host/rtl/verilog/top =================================================================== --- trunk/projects/Testbench/ip/ps2_host/rtl/verilog/top (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/rtl/verilog/top (revision 88) @@ -0,0 +1,179 @@ + +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* ps2 host model for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + + +module ps2_host + +( +input wire clk, +input wire reset, +input wire busy, + +inout wire [7:0] rx_data, +input wire rx_read, +input wire rx_full, +input wire rx_parity_error, +input wire rx_parity_rcv, +input wire rx_parity_cal, +input wire rx_frame_error, +inout wire tx_ack_error, + +output reg rx_clr, +output reg [7:0] tx_data, +output reg tx_write +); + + +reg exp_tx_ack_err; +reg mask_tx_ack_err; + +reg [7:0] exp_rcv_byte; +reg [7:0] mask_rcv_byte; + + +task automatic next; + input [31:0] num; + repeat (num) @ (posedge clk); +endtask + + + +always@(posedge clk) + if(reset) + begin + tx_data <= 8'h00; + tx_write <= 1'b0; + rx_clr <= 1'b0; + exp_tx_ack_err <= 1'b0; + mask_tx_ack_err <= 1'b0; + exp_rcv_byte <= 8'h00; + mask_rcv_byte <= 8'h00; + + + + end + + +task clear_rx_host; + begin + rx_clr <= 1'b1; + next(1); + rx_clr <= 1'b0; + end +endtask + + + + +task send_byte; + input [7:0] byte_out; + begin + $display("%t %m %2h",$realtime ,byte_out ); + tx_data <= byte_out; + next(1); + tx_write <= 1'b1; + next(1); + tx_write <= 1'b0; + next(1); + while(busy) next(1); + mask_tx_ack_err <= 1'b1; + next(1); + mask_tx_ack_err <= 1'b0; + end +endtask // send_byte + + + + +ps2h_probe +#( .MESG("ps2_host tx_ack error") + ) +tx_ack_err_tpb +( + .clk ( clk ), + .drive_value ( 1'bz ), + .expected_value ( exp_tx_ack_err ), + .mask ( mask_tx_ack_err ), + .signal ( tx_ack_error ) +); + + + + + +task rcv_byte; + input [7:0] byte_in; + begin + exp_rcv_byte <= byte_in; + + while(!rx_read) next(1); + $display("%t checking %h",$realtime,byte_in); + mask_rcv_byte <= 8'hff; + next(1); + mask_rcv_byte <= 8'h00; +end +endtask + + + + +ps2h_probe +#( .MESG("ps2_host receive error"), + .WIDTH (8) + ) +rcv_byte_tpb +( + .clk ( clk ), + .drive_value ( {8{1'bz}} ), + .expected_value ( exp_rcv_byte ), + .mask ( mask_rcv_byte ), + .signal ( rx_data ) +); + + + + +endmodule + Index: trunk/projects/Testbench/ip/ps2_host/rtl/verilog/ps2h_probe =================================================================== --- trunk/projects/Testbench/ip/ps2_host/rtl/verilog/ps2h_probe (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/rtl/verilog/ps2h_probe (revision 88) @@ -0,0 +1,112 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* io_probe for handling timing delays in dut */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + +module ps2h_probe +#(parameter MESG = " ", + parameter WIDTH = 1, + parameter RESET = {WIDTH{1'bz}}, + parameter IN_DELAY = 5, + parameter OUT_DELAY = 15, + parameter OUT_WIDTH = 10 + ) +( +input wire clk, + +input wire [WIDTH-1:0] drive_value, +input wire [WIDTH-1:0] expected_value, +input wire [WIDTH-1:0] mask, + +inout wire [WIDTH-1:0] signal + + +); + + +reg [WIDTH-1:0] filtered_value; +reg [WIDTH:1] fail; + + + + + + +assign signal = drive_value; + + + + + + +always @(posedge clk) filtered_value <= signal; +always @(posedge clk) fail <= mask & (signal^ expected_value); + + + + + +initial + begin + cg.next(3); + while(1) + begin + if(fail !== {WIDTH{1'b0}}) + begin + $display("%t %m value %x failure on bit(s) %b",$realtime,filtered_value,fail ); + cg.fail(MESG); + end + cg.next(1); + end // while (1) + end // initial begin + + + + + + + + +endmodule + + + Index: trunk/projects/Testbench/ip/ps2_host/soc/design.soc =================================================================== --- trunk/projects/Testbench/ip/ps2_host/soc/design.soc (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/soc/design.soc (revision 88) @@ -0,0 +1,41 @@ + + + + + + +ps2_host +ps2_host + + + + + + Index: trunk/projects/Testbench/ip/ps2_host/doc/copyright.v =================================================================== --- trunk/projects/Testbench/ip/ps2_host/doc/copyright.v (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/doc/copyright.v (revision 88) @@ -0,0 +1,43 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + Index: trunk/projects/Testbench/ip/ps2_host/bin/Makefile =================================================================== --- trunk/projects/Testbench/ip/ps2_host/bin/Makefile (nonexistent) +++ trunk/projects/Testbench/ip/ps2_host/bin/Makefile (revision 88) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root + Index: trunk/projects/Testbench/ip/clock_gen/rtl/xml/clock_gen.xml =================================================================== --- trunk/projects/Testbench/ip/clock_gen/rtl/xml/clock_gen.xml (nonexistent) +++ trunk/projects/Testbench/ip/clock_gen/rtl/xml/clock_gen.xml (revision 88) @@ -0,0 +1,136 @@ + + + + +opencores.org +Testbench +clock_gen + + + + + + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + clock_gen + + + variant + clock_gen + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + +10 +0 + + + + +clk +reg +output + + +reset +reg +output + + + + + + + + + + + + + + + + fs-sim + + + + + ../verilog/top + verilogSourceTop + + + + + + + + + + + + + Index: trunk/projects/Testbench/ip/clock_gen/rtl/verilog/top =================================================================== --- trunk/projects/Testbench/ip/clock_gen/rtl/verilog/top (nonexistent) +++ trunk/projects/Testbench/ip/clock_gen/rtl/verilog/top (revision 88) @@ -0,0 +1,138 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + +`timescale 1ns/1ns + +module clock_gen +#(parameter PERIOD=10, + parameter TIMEOUT=0 + ) + (output reg clk, + output reg reset + ); + + + +`ifndef SYNTHESIS + +reg failed; +reg [31:0] fail_count; + + +task automatic next; + input [31:0] num; + repeat (num) @ (posedge clk); +endtask // next + + + +task reset_on; + reset = 1; +endtask // reset_on + + +task automatic fail; + input [799:0] message; + begin + failed = 1; + fail_count = fail_count+1; + $display("%t Simulation FAILURE: %s ",$realtime,message ); + end +endtask + + +task reset_off; + begin + reset = 0; + end +endtask // reset_off + + +task exit; + begin + if(failed) + begin + $display("%t Sim over: ERROR %d failures",$realtime ,fail_count ); + end + else + begin + $display("%t Sim over: PASSED",$realtime ); + end // else: !if(failed) + $dumpflush; + $finish; + end +endtask + + +initial +begin +clk=0; +reset=1; +failed=0; +fail_count =32'h00000000; +end + +always +#(PERIOD/2) clk = !clk; + + + +initial + begin + if(TIMEOUT) + begin + next(TIMEOUT); + $display("%t Sim over :ERROR TIMEOUT",$realtime ); + $finish; + end + + end + +`endif + + + +endmodule + + + Index: trunk/projects/Testbench/ip/clock_gen/soc/design.soc =================================================================== --- trunk/projects/Testbench/ip/clock_gen/soc/design.soc (nonexistent) +++ trunk/projects/Testbench/ip/clock_gen/soc/design.soc (revision 88) @@ -0,0 +1,41 @@ + + + + + + +clock_gen +clock_gen + + + + + + Index: trunk/projects/Testbench/ip/clock_gen/doc/copyright.v =================================================================== --- trunk/projects/Testbench/ip/clock_gen/doc/copyright.v (nonexistent) +++ trunk/projects/Testbench/ip/clock_gen/doc/copyright.v (revision 88) @@ -0,0 +1,43 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + Index: trunk/projects/Testbench/ip/clock_gen/bin/Makefile =================================================================== --- trunk/projects/Testbench/ip/clock_gen/bin/Makefile (nonexistent) +++ trunk/projects/Testbench/ip/clock_gen/bin/Makefile (revision 88) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root + Index: trunk/projects/Testbench/ip/ps2_model/rtl/xml/ps2_model.xml =================================================================== --- trunk/projects/Testbench/ip/ps2_model/rtl/xml/ps2_model.xml (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/rtl/xml/ps2_model.xml (revision 88) @@ -0,0 +1,151 @@ + + + + +opencores.org +Testbench +ps2_model + + + + + + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + ps2_model + + + variant + ps2_model + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + +10'h1f0 + + + + +clk +wire +input + + +reset +wire +input + + + +ps2_clk +wire +inout + + +ps2_data +wire +inout + + + + + + + + + + + + + + + + fs-sim + + + + + ../verilog/top + verilogSourceTop + + + + + ../verilog/ps2_probe + verilogSource + + + + + + + + + + + + + + Index: trunk/projects/Testbench/ip/ps2_model/rtl/verilog/top =================================================================== --- trunk/projects/Testbench/ip/ps2_model/rtl/verilog/top (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/rtl/verilog/top (revision 88) @@ -0,0 +1,388 @@ + +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* ps2 device model for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + + +module ps2_model + #(parameter CLKCNT = 10'h1f0) + +( +input wire clk, +input wire reset, +inout wire ps2_clk, +inout wire ps2_data + + +); + + +//******************************************************************** +//*** TAP Controller State Machine +//******************************************************************** + +// TAP state parameters +parameter RESET = 2'b00, + WAIT_63US = 2'b01, + CLOCK = 2'b10, + IDLE = 2'b11; + + + +reg device_rx_parity; +reg [7:0] device_rx_data; + +wire prb_device_rx_parity; +wire [7:0] prb_device_rx_data; + +wire device_rx_read; +reg ps2_data_out; +reg dev_host; +reg [1:0] tap_state, next_tap_state; +reg [9:0] count; +reg clk_out; +reg [4:0] bit_cnt; +reg ack; +reg [10:0] frame; +reg clk_fall; +reg clk_rise; +reg device_write; +reg [7:0] device_tx_data; +reg device_tx_parity; +reg device_ack; +reg device_stop; +reg [7:0] exp_device_rx_data; +reg [7:0] mask_device_rx_data; +reg exp_device_rx_parity; +reg mask_device_rx_parity; + + + + +initial + begin + device_write <= 1'b0; + device_tx_data <= 8'h00; + device_tx_parity <= 1'b0; + device_ack <= 1'b1; + device_stop <= 1'b1; + + exp_device_rx_data <= 8'h00; + mask_device_rx_data <= 8'h00; + exp_device_rx_parity <= 1'b0; + mask_device_rx_parity <= 1'b0; + + end + + +assign prb_device_rx_parity = device_rx_parity; +assign prb_device_rx_data = device_rx_data; + + + +task next; + input [31:0] num; + repeat (num) @ (posedge clk); +endtask + + +task send_byte; + input [7:0] byte_out; + +begin + while(tap_state != IDLE) next(1); + $display("%t %m %2h parity %b",$realtime ,byte_out,device_tx_parity ); + device_tx_data <= byte_out; + next(1); + device_write <= 1'b1; + next(1); + device_write <= 1'b0; +end +endtask // send_byte + + + + + + +task rcv_byte; + input [7:0] byte_in; + input parity; + begin + + exp_device_rx_data <= byte_in; + exp_device_rx_parity <= parity; + + while(!device_rx_read) next(1); + $display("%t checking %h %b",$realtime,byte_in,parity); + mask_device_rx_data <= 8'hff; + mask_device_rx_parity <= 1'b1; + next(1); + + mask_device_rx_data <= 8'h00; + mask_device_rx_parity <= 1'b0; + + +end +endtask + + + + +ps2_probe +#(.MESG ( "ps2 data receive error"), + .WIDTH ( 8)) +device_rx_data_tpb ( + .clk ( clk ), + .drive_value (8'bzzzzzzzz ), + .expected_value ( exp_device_rx_data ), + .mask ( mask_device_rx_data ), + .signal ( prb_device_rx_data ) + ); + + + + + +ps2_probe +#(.MESG ( "ps2 parity receive error")) +device_rx_parity_tpb ( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_device_rx_parity ), + .mask ( mask_device_rx_parity ), + .signal ( prb_device_rx_parity ) + ); + + + + +assign ps2_clk = clk_out ? 1'b0 : 1'bz ; +assign ps2_data = ps2_data_out ? 1'b0 : 1'bz ; + + + + + + + + +always @(posedge clk or posedge reset ) + begin + if (reset) + begin + tap_state <= RESET; + ps2_data_out <= 1'b0; + end + else + begin + tap_state <= next_tap_state; + ps2_data_out <= ( (tap_state == CLOCK) && (dev_host? frame[0] : ack) ); + end + end + + + +always @(posedge clk or posedge reset ) + begin + if (reset) dev_host <= 1'b0; + else + if( device_write) dev_host <= 1'b1; + else + if( bit_cnt == 5'h16 ) dev_host <= 1'b0; + else dev_host <= dev_host ; + end + + + +always@(*) ack = (((bit_cnt == 5'h14)|| (bit_cnt == 5'h15)) && device_ack ) ; + + + + +// next state decode for tap controller +always @(*) + begin + if(device_write) next_tap_state = CLOCK; + else + case (tap_state) // synopsys parallel_case + RESET: + begin + next_tap_state = ps2_clk ? RESET : WAIT_63US ; + end + + WAIT_63US: + begin + next_tap_state = ps2_clk ? CLOCK : WAIT_63US ; + end + + CLOCK: + begin + next_tap_state = ((bit_cnt == 5'h16)&& (count == 10'h000)) ? IDLE : CLOCK; + end + + IDLE: + begin + next_tap_state = ps2_data ? IDLE : WAIT_63US; + end + endcase + end + + + + +always @(posedge clk or posedge reset ) + begin + if (reset) + begin + count <= CLKCNT; + clk_out <= 1'b0; + bit_cnt <= 5'h00; + clk_fall <= 1'b0; + clk_rise <= 1'b0; + end + else + if((next_tap_state != CLOCK)) + begin + count <= CLKCNT; + clk_out <= 1'b0; + bit_cnt <= 5'h00; + clk_fall <= 1'b0; + clk_rise <= 1'b0; + end + else + if((count == 10'h000) ) + begin + count <= CLKCNT; + clk_out <= !clk_out; + bit_cnt <= bit_cnt+5'b0001; + clk_fall <= !clk_out; + clk_rise <= clk_out; + end + else + begin + count <= count - 10'h001; + clk_out <= clk_out; + bit_cnt <= bit_cnt; + clk_fall <= 1'b0; + clk_rise <= 1'b0; + end + end + + + + + +always @(posedge clk or posedge reset ) + begin + if (reset) + begin + frame <= {device_ack,10'h000}; + end + else + if(device_write) + begin + frame <= {!device_stop,device_tx_parity,~device_tx_data,1'b1}; + end + else + if((tap_state == WAIT_63US) || (tap_state == IDLE)) + begin + frame <= {device_ack,10'h000}; + end + else + if((tap_state == CLOCK) && clk_fall && !dev_host ) frame <= { ps2_data,frame[10:1]}; + else + if((tap_state == CLOCK) && clk_rise && dev_host ) frame <= { 1'b0,frame[10:1]}; + else frame <= frame; + end + + + + +always @(posedge clk or posedge reset ) + begin + if (reset) + begin + device_rx_data <= 8'h00; + device_rx_parity <= 1'b0; + end + else + if(tap_state == WAIT_63US) + begin + device_rx_data <= 8'h00; + device_rx_parity <= 1'b0; + end + + else + if((bit_cnt == 5'h12) && clk_rise) + begin + device_rx_data <= frame[10:3]; + device_rx_parity <= ps2_data; + end + else + begin + device_rx_data <= device_rx_data; + device_rx_parity <= device_rx_parity; + end + + end + + + +assign device_rx_read = (bit_cnt == 5'h13) && !dev_host && clk_fall; + + +always@(posedge clk) + if( device_rx_read) + $display ("%t %m device rec %h parity %b",$realtime,device_rx_data,device_rx_parity); + +always@(posedge clk) + if(device_write) + $display ("%t %m device send %h parity %b stop %b ",$realtime,device_tx_data,device_tx_parity,device_stop); + + + + + +endmodule + Index: trunk/projects/Testbench/ip/ps2_model/rtl/verilog/ps2_probe =================================================================== --- trunk/projects/Testbench/ip/ps2_model/rtl/verilog/ps2_probe (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/rtl/verilog/ps2_probe (revision 88) @@ -0,0 +1,112 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* io_probe for handling timing delays in dut */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + +module ps2_probe +#(parameter MESG = " ", + parameter WIDTH = 1, + parameter RESET = {WIDTH{1'bz}}, + parameter IN_DELAY = 5, + parameter OUT_DELAY = 15, + parameter OUT_WIDTH = 10 + ) +( +input wire clk, + +input wire [WIDTH-1:0] drive_value, +input wire [WIDTH-1:0] expected_value, +input wire [WIDTH-1:0] mask, + +inout wire [WIDTH-1:0] signal + + +); + + +reg [WIDTH-1:0] filtered_value; +reg [WIDTH:1] fail; + + + + + + +assign signal = drive_value; + + + + + + +always @(posedge clk) filtered_value <= signal; +always @(posedge clk) fail <= mask & (signal^ expected_value); + + + + + +initial + begin + cg.next(3); + while(1) + begin + if(fail !== {WIDTH{1'b0}}) + begin + $display("%t %m value %x failure on bit(s) %b",$realtime,filtered_value,fail ); + cg.fail(MESG); + end + cg.next(1); + end // while (1) + end // initial begin + + + + + + + + +endmodule + + + Index: trunk/projects/Testbench/ip/ps2_model/soc/design.soc =================================================================== --- trunk/projects/Testbench/ip/ps2_model/soc/design.soc (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/soc/design.soc (revision 88) @@ -0,0 +1,41 @@ + + + + + + +ps2_model +ps2_model + + + + + + Index: trunk/projects/Testbench/ip/ps2_model/doc/copyright.v =================================================================== --- trunk/projects/Testbench/ip/ps2_model/doc/copyright.v (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/doc/copyright.v (revision 88) @@ -0,0 +1,43 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + Index: trunk/projects/Testbench/ip/ps2_model/bin/Makefile =================================================================== --- trunk/projects/Testbench/ip/ps2_model/bin/Makefile (nonexistent) +++ trunk/projects/Testbench/ip/ps2_model/bin/Makefile (revision 88) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root + Index: trunk/projects/Testbench/ip/uart_host/rtl/xml/uart_host.xml =================================================================== --- trunk/projects/Testbench/ip/uart_host/rtl/xml/uart_host.xml (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/rtl/xml/uart_host.xml (revision 88) @@ -0,0 +1,154 @@ + + + + +opencores.org +Testbench +uart_host + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + ps2_host + + + variant + ps2_host + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + +clk +wire +input + + +reset +wire +input + + + + + + + +output reg parity_enable, +output reg txd_parity, +output reg txd_force_parity, +output reg [7:0] txd_data_in, +input wire txd_buffer_empty, +output reg txd_load, +output reg txd_break, +output reg rxd_parity, +output reg rxd_force_parity, +output reg rxd_data_avail_stb, +inout wire [7:0] rxd_data_out, +input wire rxd_data_avail, +inout wire rxd_stop_error, +inout wire rxd_parity_error + + + + + + + + + + + + + + + + + + fs-sim + + + + + ../verilog/top + verilogSourceTop + + + + + ../verilog/uarth_probe + verilogSource + + + + + + + + + + + + + + Index: trunk/projects/Testbench/ip/uart_host/rtl/verilog/top =================================================================== --- trunk/projects/Testbench/ip/uart_host/rtl/verilog/top (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/rtl/verilog/top (revision 88) @@ -0,0 +1,211 @@ + +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* uart host model for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + + +module uart_host ( +input wire clk, +input wire reset, +output reg parity_enable, +output reg txd_parity, +output reg txd_force_parity, +output reg [7:0] txd_data_in, +input wire txd_buffer_empty, +output reg txd_load, +output reg txd_break, +output reg rxd_parity, +output reg rxd_force_parity, +output reg rxd_data_avail_stb, +inout wire [7:0] rxd_data_out, +input wire rxd_data_avail, +inout wire rxd_stop_error, +inout wire rxd_parity_error +); + +reg exp_rxd_stop_error; +reg exp_rxd_parity_error; +reg [7:0] exp_rxd_data_out; + +reg mask_rxd_stop_error; +reg mask_rxd_parity_error; +reg [7:0] mask_rxd_data_out; + + + + + +task automatic next; + input [31:0] num; + repeat (num) @ (posedge clk); +endtask + + + +always@(posedge clk) +if(reset) + begin + parity_enable <= 1'b0; + txd_data_in <= 8'h00; + txd_parity <= 1'b0; + txd_force_parity <= 1'b0; + txd_load <= 1'b0; + txd_break <= 1'b0; + rxd_parity <= 1'b0; + rxd_force_parity <= 1'b0; + rxd_data_avail_stb <= 1'b0; + exp_rxd_stop_error <= 1'b0; + exp_rxd_parity_error <= 1'b0; + exp_rxd_data_out <= 8'h00; + + mask_rxd_stop_error <= 1'b0; + mask_rxd_parity_error <= 1'b0; + mask_rxd_data_out <= 8'h00; + + + end + + +task clear_rx_host; + begin + next(1); + end +endtask + + + + +task send_byte; + input [7:0] byte_out; + + begin + while(!txd_buffer_empty) next(1); + $display("%t %m %2h",$realtime ,byte_out); + txd_data_in <= byte_out; + next(1); + txd_load <= 1'b1; + next(1); + txd_load <= 1'b0; + next(1); + end +endtask // send_byte + + + +task rcv_byte; + input [7:0] byte_in; + begin + exp_rxd_data_out <= byte_in; + while(!rxd_data_avail) next(1); + $display("%t %m checking %h",$realtime,byte_in); + mask_rxd_stop_error <= 1'b1; + mask_rxd_parity_error <= 1'b1; + mask_rxd_data_out <= 8'hff; + next(1); + mask_rxd_stop_error <= 1'b0; + mask_rxd_parity_error <= 1'b0; + mask_rxd_data_out <= 8'h00; + rxd_data_avail_stb <= 1'b1; + next(1); + rxd_data_avail_stb <= 1'b0; + next(1); +end +endtask + + +uarth_probe +#(.MESG("uart_host receive error"), + .WIDTH(8)) +rxd_data_out_prb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz ), + .expected_value ( exp_rxd_data_out ), + .mask ( mask_rxd_data_out ), + .signal ( rxd_data_out ) + + +); + + + + + + +uarth_probe +#(.MESG("uart_host stop error")) +rxd_stop_error_prb +( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_rxd_stop_error ), + .mask ( mask_rxd_stop_error ), + .signal ( rxd_stop_error ) + + +); + + + + +uarth_probe +#(.MESG("uart_host parity error")) +rxd_parity_error_prb +( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_rxd_parity_error ), + .mask ( mask_rxd_parity_error ), + .signal ( rxd_parity_error ) + + +); + + + + + + + +endmodule + Index: trunk/projects/Testbench/ip/uart_host/rtl/verilog/uarth_probe =================================================================== --- trunk/projects/Testbench/ip/uart_host/rtl/verilog/uarth_probe (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/rtl/verilog/uarth_probe (revision 88) @@ -0,0 +1,112 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* io_probe for handling timing delays in dut */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + +module uarth_probe +#(parameter MESG = " ", + parameter WIDTH = 1, + parameter RESET = {WIDTH{1'bz}}, + parameter IN_DELAY = 5, + parameter OUT_DELAY = 15, + parameter OUT_WIDTH = 10 + ) +( +input wire clk, + +input wire [WIDTH-1:0] drive_value, +input wire [WIDTH-1:0] expected_value, +input wire [WIDTH-1:0] mask, + +inout wire [WIDTH-1:0] signal + + +); + + +reg [WIDTH-1:0] filtered_value; +reg [WIDTH:1] fail; + + + + + + +assign signal = drive_value; + + + + + + +always @(posedge clk) filtered_value <= signal; +always @(posedge clk) fail <= mask & (signal^ expected_value); + + + + + +initial + begin + cg.next(3); + while(1) + begin + if(fail !== {WIDTH{1'b0}}) + begin + $display("%t %m value %x failure on bit(s) %b",$realtime,filtered_value,fail ); + cg.fail(MESG); + end + cg.next(1); + end // while (1) + end // initial begin + + + + + + + + +endmodule + + + Index: trunk/projects/Testbench/ip/uart_host/soc/design.soc =================================================================== --- trunk/projects/Testbench/ip/uart_host/soc/design.soc (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/soc/design.soc (revision 88) @@ -0,0 +1,41 @@ + + + + + + +uart_host +uart_host + + + + + + Index: trunk/projects/Testbench/ip/uart_host/doc/copyright.v =================================================================== --- trunk/projects/Testbench/ip/uart_host/doc/copyright.v (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/doc/copyright.v (revision 88) @@ -0,0 +1,43 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + Index: trunk/projects/Testbench/ip/uart_host/bin/Makefile =================================================================== --- trunk/projects/Testbench/ip/uart_host/bin/Makefile (nonexistent) +++ trunk/projects/Testbench/ip/uart_host/bin/Makefile (revision 88) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root + Index: trunk/projects/Testbench/ip/uart_model/rtl/xml/uart_model.xml =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/xml/uart_model.xml (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/xml/uart_model.xml (revision 88) @@ -0,0 +1,174 @@ + + + + +opencores.org +Testbench +uart_model + + + + + + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + uart_model + + + variant + uart_model + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + +4'h5 +4 + + + + +clk +wire +input + + +reset +wire +input + + + +txd_in +wire +input + + +rxd_out +wire +output + + + + + + + + + + + + + + + + fs-sim + + + + + ../verilog/top + verilogSourceTop + + + + + ../verilog/serial_rcvr + verilogSource + + + + + ../verilog/serial_xmit + verilogSource + + + + + + ../verilog/divider + verilogSource + + + + + + ../verilog/io_probe + verilogSource + + + + + + + + + + + + + + Index: trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_xmit =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_xmit (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_xmit (revision 88) @@ -0,0 +1,181 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / LIB \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Generic model for a serial asynchronous transmitter */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + +module +uart_model_serial_xmit +#(parameter WIDTH=8, // Number of data bits + parameter SIZE=4 // binary size of shift_cnt, must be able to hold WIDTH + 4 states + ) + + +( +input wire clk, +input wire reset, +input wire edge_enable, // one pulse per bit time for data rate timing +input wire parity_enable, // 0 = no parity bit sent, 1= parity bit sent +input wire two_stop_enable, // 0 = 1 stop bit, 1 = 2 stop bits +input wire [1:0] parity_type, // 00= odd,01=even,10=force a 0,11= force a 1 +input wire load, // start transmiting data +input wire start_value, // value out at start bit time +input wire stop_value, // value out for stop bit also used for break +input wire [WIDTH-1:0] data, // data byte + +output reg buffer_empty, // ready for next byte +output reg ser_out // to pad_ring + ); + +reg [SIZE-1:0] shift_cnt; +reg [WIDTH-1:0] shift_buffer; +reg parity_calc; +reg delayed_edge_enable; + + +// +// shift_cnt controls the serial bit out +// +// 0 Start bit +// 1-> WIDTH Data bit lsb first +// WIDTH+1 Parity bit if enabled +// 2^SIZE-2 Second stop bit if enabled +// 2^SIZE-1 Last stop bit and idle + +always@(posedge clk) + if(reset || buffer_empty) shift_cnt <= {SIZE{1'b1}}; + else + if(!edge_enable) shift_cnt <= shift_cnt; + else + if(( shift_cnt == {SIZE{1'b1}} ) && ! buffer_empty ) shift_cnt <= {SIZE{1'b0}}; + else + if ( shift_cnt == WIDTH) + case({two_stop_enable,parity_enable}) + (2'b00): shift_cnt <= {SIZE{1'b1}}; + (2'b01): shift_cnt <= shift_cnt + 1'b1; + (2'b10): shift_cnt <= {SIZE{1'b1}} - 1'b1; + (2'b11): shift_cnt <= shift_cnt + 1'b1; + endcase // case ({two_stop_enable,parity_enable}) + else + if ( shift_cnt == (WIDTH+1)) + case( two_stop_enable) + (1'b0): shift_cnt <= {SIZE{1'b1}}; + (1'b1): shift_cnt <= {SIZE{1'b1}} - 1'b1; + endcase + else shift_cnt <= shift_cnt + 1'b1; + +// +// +// Clear buffer_empty upon load pulse +// set it back at the start of the final stop pulse +// if load happens BEFORE the next edge_enable then data transfer will have no pauses +// logic ensures that having load happen on a edge_enable will work +// + +always@(posedge clk) + if(reset) delayed_edge_enable <= 1'b0; + else delayed_edge_enable <= edge_enable && ! load; + + +always@(posedge clk) +if(reset) buffer_empty <= 1'b1; +else +if(load) buffer_empty <= 1'b0; +else +if((shift_cnt == {SIZE{1'b1}}) && delayed_edge_enable) + buffer_empty <= 1'b1; +else buffer_empty <= buffer_empty; + + + + + +// +// +// load shift_buffer during start_bit +// shift down every bit +// +// +always@(posedge clk) + if(reset) shift_buffer <= {WIDTH{1'b0}}; + else + if(!edge_enable) shift_buffer <= shift_buffer; + else + if(shift_cnt == {SIZE{1'b0}}) shift_buffer <= data; + else shift_buffer <= {1'b0,shift_buffer[WIDTH-1:1]}; + + + + + + +// +// +// calculate parity on the fly +// seed reg with 0 for odd and 1 for even +// force reg to 0 or 1 if needed +// +always@(posedge clk) + if(reset) parity_calc <= 1'b0; + else + if(!edge_enable) parity_calc <= parity_calc; + else + if(parity_type[1] || (shift_cnt == {SIZE{1'b0}})) parity_calc <= parity_type[0]; + else parity_calc <= parity_calc ^ shift_buffer[0]; + + +// send start_bit,data,parity and stop based on shift_cnt + + + always@(posedge clk) + if(reset) ser_out <= stop_value; + else + if( shift_cnt == {SIZE{1'b0}} ) ser_out <= start_value; + else + if( shift_cnt == {SIZE{1'b1}} ) ser_out <= stop_value; + else + if( shift_cnt == ({SIZE{1'b1}}+1'b1) ) ser_out <= stop_value; + else + if( shift_cnt == (WIDTH+1) ) ser_out <= parity_calc; + else ser_out <= shift_buffer[0]; + + +endmodule + + Index: trunk/projects/Testbench/ip/uart_model/rtl/verilog/top =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/verilog/top (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/verilog/top (revision 88) @@ -0,0 +1,408 @@ + +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* uart device model for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + +`timescale 1ns/1ns + +module uart_model + #(parameter CLKCNT = 4'h5, + parameter SIZE = 4) + +( +input wire clk, +input wire reset, +input wire txd_in, +output wire rxd_out + +); + + + + +reg rx_parity_enable; // 0 = no parity bit sent; 1= parity bit sent +reg rx_parity ; +reg rx_force_parity ; +reg rx_stop_value; // value out for stop bit +reg rx_start_detect; +reg [7:0] rx_shift_buffer; +reg rx_parity_calc; +reg rx_parity_samp; +reg rx_parity_error; +reg rx_frame_err; +reg [7:0] exp_rx_shift_buffer; +reg exp_rx_parity_err; +reg exp_rx_frame_err; +reg [7:0] mask_rx_shift_buffer; +reg mask_rx_parity_err; +reg mask_rx_frame_err; + + +reg rx_frame_rdy; + + +reg rx_baud_enable; +wire rx_stop_cnt; +wire rx_last_cnt; +wire [7:0] next_rx_shift_buffer; +wire next_rx_parity_calc; +wire next_rx_parity_samp; +wire next_rx_frame_err; + + +reg rxd_pad_sig; +reg [1:0] rx_rdy_del; +reg [SIZE-1:0] rx_baudgen; +reg edge_enable; +reg [SIZE-1:0] divide_cnt; + + + wire xmit_enable; +reg txd_parity_enable; +reg txd_force_parity; +reg txd_parity; +reg txd_load; +reg txd_break; +reg [7:0] txd_data_in; +wire txd_buffer_empty; + + +// +// watch for start bit +// + + + +always@(posedge clk) + if(reset) + begin + rx_parity_enable <= 1'b0; + rx_parity <= 1'b0; + rx_force_parity <= 1'b0; + rx_stop_value <= 1'b1; + exp_rx_frame_err <= 1'b0; + exp_rx_parity_err <= 1'b0; + exp_rx_shift_buffer <= 8'h00; + mask_rx_frame_err <= 1'b0; + mask_rx_parity_err <= 1'b0; + mask_rx_shift_buffer <= 8'h00; + txd_parity_enable <= 1'b0; + txd_force_parity <= 1'b0; + txd_parity <= 1'b0; + txd_load <= 1'b0; + txd_break <= 1'b0; + txd_data_in <= 8'h00; + end + + + + +task next; + input [31:0] num; + repeat (num) @ (posedge clk); +endtask + + + + +task wait_tx; + +begin + while(!txd_buffer_empty) next(1); +end +endtask // wait_tx + + + +task send_byte; + input [7:0] byte_out; + +begin + while(!txd_buffer_empty) next(1); + $display("%t %m %2h",$realtime ,byte_out ); + txd_data_in = byte_out; + next(1); + txd_load = 1'b1; + next(1); + txd_load = 1'b0; + next(1); +end +endtask // send_byte + + +task rcv_byte; + input [7:0] byte_in; + begin + exp_rx_shift_buffer <= byte_in; + while(!rx_frame_rdy) next(1); + $display("%t %m check %h %h ",$realtime,rx_shift_buffer,byte_in); + mask_rx_frame_err <= 1'b1; + mask_rx_parity_err <= 1'b1; + mask_rx_shift_buffer <= 8'hff; + next(1); + mask_rx_frame_err <= 1'b0; + mask_rx_parity_err <= 1'b0; + mask_rx_shift_buffer <= 8'h00; +end +endtask + + +wire [7:0] prb_rx_shift_buffer; +wire prb_rx_frame_err; +wire prb_rx_parity_err; + +assign prb_rx_shift_buffer = rx_shift_buffer; +assign prb_rx_frame_err = rx_frame_err; +assign prb_rx_parity_err = rx_parity_error; + + +io_probe +#(.MESG ("uart data receive error"), + .WIDTH (8) + ) +rx_shift_buffer_prb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz), + .expected_value( exp_rx_shift_buffer), + .mask ( mask_rx_shift_buffer), + .signal ( prb_rx_shift_buffer) +); + + +io_probe +#(.MESG ("uart parity error")) +rx_parity_err_prb +( + .clk ( clk ), + .drive_value (1'bz), + .expected_value( exp_rx_parity_err), + .mask ( mask_rx_parity_err), + .signal ( prb_rx_parity_err) +); + + + + + + + + + + + + +always@(posedge clk) +if(reset) rx_baudgen <= CLKCNT; +else +if(rx_baudgen == 4'h0) rx_baudgen <= CLKCNT; +else rx_baudgen <= rx_baudgen - 1'h1; + + + +always@(posedge clk) +if(reset) edge_enable <= 1'b0; +else edge_enable <= (rx_baudgen == {SIZE{1'b0}}); + + + + + + +always@(posedge clk) +if(reset) rxd_pad_sig <= 1'b1; +else rxd_pad_sig <= txd_in; + + +always@(posedge clk) +if(reset) rx_start_detect <= 1'b0; +else +if(rx_start_detect) + begin + if(rx_stop_cnt && edge_enable ) rx_start_detect <= !rxd_pad_sig; + else + if(rx_last_cnt) rx_start_detect <= 1'b0; + else rx_start_detect <= 1'b1; + end +else +if(!rxd_pad_sig ) rx_start_detect <= 1'b1; +else rx_start_detect <= rx_start_detect; + + +always@(posedge clk) + if(reset) + begin + rx_frame_rdy <= 1'b0; + rx_rdy_del <= 2'b00; + end + else + begin + rx_frame_rdy <= rx_rdy_del[1] ; + rx_rdy_del <= {rx_rdy_del[0],rx_last_cnt}; + end + + +uart_model_serial_rcvr +#(.WIDTH(8), .SIZE(4) ) +serial_rcvr + ( + .clk ( clk ), + .reset ( reset ), + .edge_enable ( rx_baud_enable ), + .parity_enable ( rx_parity_enable ), + .parity_type ( {rx_force_parity, rx_parity } ), + .stop_cnt ( rx_stop_cnt ), + .last_cnt ( rx_last_cnt ), + .stop_value ( rx_stop_value ), + .ser_in ( txd_in ), + .shift_buffer ( next_rx_shift_buffer ), + .parity_calc ( next_rx_parity_calc ), + .parity_samp ( next_rx_parity_samp ), + .frame_err ( next_rx_frame_err ) +); + + + + + + + + +always@(posedge clk) + if( reset || (!rx_start_detect)) rx_baud_enable <= 1'b0; + else + if(!edge_enable) rx_baud_enable <= 1'b0; + else rx_baud_enable <= ( divide_cnt == 4'b1000 ); + + + +always@(posedge clk) + if( reset || (!rx_start_detect)) divide_cnt <= 4'b1111; + else + if(!edge_enable) divide_cnt <= divide_cnt; + else + if(!(|divide_cnt)) divide_cnt <= 4'b1111; + else divide_cnt <= divide_cnt - 'b1; + + + + + + +always@(posedge clk) + if(reset) + begin + rx_shift_buffer <= 8'h00; + rx_parity_calc <= 1'b0; + rx_parity_samp <= 1'b0; + rx_parity_error <= 1'b0; + rx_frame_err <= 1'b0; + end + else + if(rx_last_cnt ) + begin + rx_shift_buffer <= next_rx_shift_buffer; + rx_parity_calc <= next_rx_parity_calc; + rx_parity_samp <= next_rx_parity_samp; + rx_parity_error <= (next_rx_parity_samp ^ next_rx_parity_calc) && rx_parity_enable; + rx_frame_err <= next_rx_frame_err; + end + else + begin + rx_shift_buffer <= rx_shift_buffer; + rx_parity_calc <= rx_parity_calc; + rx_parity_samp <= rx_parity_samp; + rx_parity_error <= rx_parity_error; + rx_frame_err <= rx_frame_err; + end + + +///////////////// Xmit + + + + + + + + + + + +uart_model_divider +#(.SIZE(4)) +x_divider ( + .clk ( clk ), + .reset ( reset ), + .divider_in ( 4'b1111 ), + .enable ( edge_enable ), + .divider_out ( xmit_enable ) + ); + + + + + +uart_model_serial_xmit +serial_xmit ( + .clk ( clk ), + .reset ( reset ), + .edge_enable ( xmit_enable ), + .parity_enable ( txd_parity_enable ), + .two_stop_enable ( 1'b0 ), + .parity_type ( {txd_force_parity, txd_parity } ), + .load ( txd_load ), + .start_value ( 1'b0 ), + .stop_value (!txd_break ), + .data ( txd_data_in ), + .buffer_empty ( txd_buffer_empty ), + .ser_out ( rxd_out ) + ); + + + + + + + +endmodule + Index: trunk/projects/Testbench/ip/uart_model/rtl/verilog/divider =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/verilog/divider (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/verilog/divider (revision 88) @@ -0,0 +1,87 @@ + +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / LIB \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Generic model for a rate divider */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + + +module +uart_model_divider + +#(parameter SIZE=4, + parameter SAMPLE=0, + parameter RESET=1 + ) +( +input wire clk, +input wire reset, +input wire enable, +input wire [SIZE-1:0] divider_in, +output reg divider_out + ); + +reg [SIZE-1:0] divide_cnt; + +always@(posedge clk) + if(reset) divider_out <= RESET; + else + if(!enable) divider_out <= 1'b0; + else divider_out <= ( divide_cnt == SAMPLE ); + + + +always@(posedge clk) + if(reset) divide_cnt <= divider_in; + else + if(!enable) divide_cnt <= divide_cnt; + else + if(!(|divide_cnt)) divide_cnt <= divider_in; + else divide_cnt <= divide_cnt - 'b1; + + + + + + +endmodule + + + Index: trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_rcvr =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_rcvr (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/verilog/serial_rcvr (revision 88) @@ -0,0 +1,183 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / LIB \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Generic model for a serial asynchronous receiver */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + +module +uart_model_serial_rcvr +#(parameter WIDTH=8, // Number of data bits + parameter SIZE=4 // binary size of shift_cnt, must be able to hold WIDTH + 4 states + )( +input wire clk, +input wire reset, +input wire edge_enable, // one pulse per bit time for 16 x data rate timing +input wire parity_enable, // 0 = no parity bit sent, 1= parity bit sent +input wire [1:0] parity_type, // 00= odd,01=even,10=force a 0,11= force a 1 +input wire stop_value, // value out for stop bit +input wire ser_in, // from pad_ring +output reg [WIDTH-1:0] shift_buffer, +output reg stop_cnt, +output reg last_cnt, +output reg parity_calc, +output reg parity_samp, +output reg frame_err + +); + +reg [SIZE-1:0] shift_cnt; + +// +// shift_cnt controls the serial bit out +// +// 0 Start bit +// 1-> WIDTH Data bit lsb first +// WIDTH+1 Parity bit if enabled +// 2^SIZE-2 Second stop bit if enabled +// 2^SIZE-1 Last stop bit and idle + +always@(posedge clk) + if( reset ) + begin + shift_cnt <= {SIZE{1'b1}}; + last_cnt <= 1'b0; + end + else + if(!edge_enable) + begin + shift_cnt <= shift_cnt; + last_cnt <= 1'b0; + end + else + if(( shift_cnt == {SIZE{1'b1}})) + begin + shift_cnt <= {SIZE{1'b0}}; + last_cnt <= 1'b0; + end + else + if ( shift_cnt == WIDTH) + case( parity_enable ) + (2'b0): + begin + shift_cnt <= {SIZE{1'b1}}; + last_cnt <= 1'b1; + end + + (2'b1): + begin + shift_cnt <= shift_cnt + 1'b1; + last_cnt <= 1'b0; + end + endcase // case (parity_enable) + else + if ( shift_cnt == (WIDTH+1)) + begin + shift_cnt <= {SIZE{1'b1}}; + last_cnt <= 1'b1; + end + else + begin + shift_cnt <= shift_cnt + 1'b1; + last_cnt <= 1'b0; + end +// +// +// load shift_buffer during start_bit +// shift down every bit +// +// +always@(posedge clk) + if(reset) shift_buffer <= {WIDTH{1'b0}}; + else + if(!edge_enable) shift_buffer <= shift_buffer; + else + if(shift_cnt == {SIZE{1'b1}}) shift_buffer <= {WIDTH{1'b0}}; + else + if(shift_cnt <= WIDTH-1 ) shift_buffer <= {ser_in,shift_buffer[WIDTH-1:1]}; + else shift_buffer <= shift_buffer; +// +// +// calculate parity on the fly +// seed reg with 0 for odd and 1 for even +// force reg to 0 or 1 if needed +// +always@(posedge clk) + if(reset) parity_calc <= 1'b0; + else + if(!edge_enable) parity_calc <= parity_calc; + else + if(parity_type[1] || (shift_cnt == {SIZE{1'b1}})) parity_calc <= parity_type[0]; + else + if(shift_cnt <= WIDTH-1 ) parity_calc <= parity_calc ^ ser_in; + else parity_calc <= parity_calc; +// +// sample parity bit and hold it until next start bit +// +always@(posedge clk) + if(reset) parity_samp <= 1'b0; + else + if(!edge_enable) parity_samp <= parity_samp; + else + if(shift_cnt == {SIZE{1'b1}}) parity_samp <= 1'b0; + else + if(shift_cnt == WIDTH ) parity_samp <= ser_in; + else parity_samp <= parity_samp; +// +// check for stop bit error +// +always@(posedge clk) + if(reset) frame_err <= 1'b0; + else + if(!edge_enable) frame_err <= frame_err; + else + if(shift_cnt == {SIZE{1'b1}}) frame_err <= 1'b0; + else + if(shift_cnt == WIDTH+1 ) frame_err <= ser_in ^ stop_value; + else frame_err <= frame_err; + +always@(*) + if( shift_cnt == {SIZE{1'b1}}) stop_cnt <= 1'b1; + else stop_cnt <= 1'b0; + + +endmodule + + + + Index: trunk/projects/Testbench/ip/uart_model/rtl/verilog/io_probe =================================================================== --- trunk/projects/Testbench/ip/uart_model/rtl/verilog/io_probe (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/rtl/verilog/io_probe (revision 88) @@ -0,0 +1,112 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* io_probe for handling timing delays in dut */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + + +module io_probe +#(parameter MESG = " ", + parameter WIDTH = 1, + parameter RESET = {WIDTH{1'bz}}, + parameter IN_DELAY = 5, + parameter OUT_DELAY = 15, + parameter OUT_WIDTH = 10 + ) +( +input wire clk, + +input wire [WIDTH-1:0] drive_value, +input wire [WIDTH-1:0] expected_value, +input wire [WIDTH-1:0] mask, + +inout wire [WIDTH-1:0] signal + + +); + + +reg [WIDTH-1:0] filtered_value; +reg [WIDTH:1] fail; + + + + + + +assign signal = drive_value; + + + + + + +always @(posedge clk) filtered_value <= signal; +always @(posedge clk) fail <= mask & (signal^ expected_value); + + + + + +initial + begin + cg.next(3); + while(1) + begin + if(fail !== {WIDTH{1'b0}}) + begin + $display("%t %m value %x failure on bit(s) %b",$realtime,filtered_value,fail ); + cg.fail(MESG); + end + cg.next(1); + end // while (1) + end // initial begin + + + + + + + + +endmodule + + + Index: trunk/projects/Testbench/ip/uart_model/soc/design.soc =================================================================== --- trunk/projects/Testbench/ip/uart_model/soc/design.soc (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/soc/design.soc (revision 88) @@ -0,0 +1,41 @@ + + + + + + +uart_model +uart_model + + + + + + Index: trunk/projects/Testbench/ip/uart_model/doc/copyright.v =================================================================== --- trunk/projects/Testbench/ip/uart_model/doc/copyright.v (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/doc/copyright.v (revision 88) @@ -0,0 +1,43 @@ +/**********************************************************************/ +/* */ +/* ------- */ +/* / SOC \ */ +/* / GEN \ */ +/* / SIM \ */ +/* ============== */ +/* | | */ +/* |____________| */ +/* */ +/* Clock and Reset generator for simulations */ +/* */ +/* */ +/* Author(s): */ +/* - John Eaton, jt_eaton@opencores.org */ +/* */ +/**********************************************************************/ +/* */ +/* Copyright (C) <2010> */ +/* */ +/* This source file may be used and distributed without */ +/* restriction provided that this copyright statement is not */ +/* removed from the file and that any derivative work contains */ +/* the original copyright notice and the associated disclaimer. */ +/* */ +/* This source file is free software; you can redistribute it */ +/* and/or modify it under the terms of the GNU Lesser General */ +/* Public License as published by the Free Software Foundation; */ +/* either version 2.1 of the License, or (at your option) any */ +/* later version. */ +/* */ +/* This source is distributed in the hope that it will be */ +/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +/* PURPOSE. See the GNU Lesser General Public License for more */ +/* details. */ +/* */ +/* You should have received a copy of the GNU Lesser General */ +/* Public License along with this source; if not, download it */ +/* from http://www.opencores.org/lgpl.shtml */ +/* */ +/**********************************************************************/ + Index: trunk/projects/Testbench/ip/uart_model/bin/Makefile =================================================================== --- trunk/projects/Testbench/ip/uart_model/bin/Makefile (nonexistent) +++ trunk/projects/Testbench/ip/uart_model/bin/Makefile (revision 88) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root + Index: trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/impact_bat =================================================================== --- trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/impact_bat (revision 87) +++ trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/impact_bat (nonexistent) @@ -1,6 +0,0 @@ -setMode -bs -setCable -port svf -file ../debug/bitstream.svf -addDevice -p 1 -file Board_Design_jtag.bit -program -p 1 -closeCable -quit Index: trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/fpga_load =================================================================== --- trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/fpga_load (revision 87) +++ trunk/projects/fpgas/ip/Basys_soc_mrisc/syn/Basys_soc_mrisc_io_mouse_mouse/debug/fpga_load (nonexistent) @@ -1,6 +0,0 @@ -bsdl path ../bsdl;../target/bsdl; -cable usbblaster -detect -part 1 -svf bitstream.svf - Index: trunk/projects/fpgas/ip/Nexys2_T6502/rtl/xml/Nexys2_T6502_kim_2.xml =================================================================== --- trunk/projects/fpgas/ip/Nexys2_T6502/rtl/xml/Nexys2_T6502_kim_2.xml (revision 87) +++ trunk/projects/fpgas/ip/Nexys2_T6502/rtl/xml/Nexys2_T6502_kim_2.xml (revision 88) @@ -763,9 +763,11 @@ + flashcs_n_out + @@ -2535,10 +2537,7 @@ - - flashcs_n_out - - + flashrp_n_out
/trunk/projects/fpgas/ip/Nexys2_T6502/soc/design.soc
107,14 → 107,6
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
</models>
</configuration>
 
<configuration>
129,14 → 121,6
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
</models>
</configuration>
 
<configuration>
151,14 → 135,6
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
</models>
</configuration>
 
<configuration>
173,14 → 149,6
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
</models>
</configuration>
 
<configuration>
195,29 → 163,11
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
</models>
</configuration>
 
 
 
 
 
 
 
 
</configurations>
 
 
 
 
 
<sims>
<sim>
<name>T6502_io_irq_2</name>
/trunk/projects/fpgas/ip/Nexys2_T6502/doc/geda/drawing/filelist File deleted \ No newline at end of file
/trunk/projects/pic_micro/bin/repeater
0,0 → 1,133
eval 'exec `which perl` -S $0 ${1+"$@"}'
if 0;
 
#/**********************************************************************/
#/* */
#/* ------- */
#/* / SOC \ */
#/* / GEN \ */
#/* / TOOL \ */
#/* ============== */
#/* | | */
#/* |____________| */
#/* */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
#/**********************************************************************/
#/* */
#/* Copyright (C) <2010> <Ouabache Design Works> */
#/* */
#/* This source file may be used and distributed without */
#/* restriction provided that this copyright statement is not */
#/* removed from the file and that any derivative work contains */
#/* the original copyright notice and the associated disclaimer. */
#/* */
#/* This source file is free software; you can redistribute it */
#/* and/or modify it under the terms of the GNU Lesser General */
#/* Public License as published by the Free Software Foundation; */
#/* either version 2.1 of the License, or (at your option) any */
#/* later version. */
#/* */
#/* This source is distributed in the hope that it will be */
#/* useful, but WITHOUT ANY WARRANTY; without even the implied */
#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
#/* PURPOSE. See the GNU Lesser General Public License for more */
#/* details. */
#/* */
#/* You should have received a copy of the GNU Lesser General */
#/* Public License along with this source; if not, download it */
#/* from http://www.opencores.org/lgpl.shtml */
#/* */
#/**********************************************************************/
 
# ToDO: add handling unaligned words
 
 
############################################################################
# General PERL config
############################################################################
use Getopt::Long;
use English;
use File::Basename;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
############################################################################
### Process the options
############################################################################
 
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h"
) || die "(use '$program_name -h' for help)";
 
 
##############################################################################
## Help option
##############################################################################
if ( ($opt_h eq "1") )
{ print "\n type test filename ( no extension)";
print "\n";
exit 1;
}
 
 
##############################################################################
##
##############################################################################
 
use Cwd;
use XML::LibXML;
 
$home = cwd();
 
 
 
 
 
#############################################################################
##
##
#############################################################################
 
my $prefix = $ARGV[0];
my $component = $ARGV[1];
my $variant = $ARGV[2];
print "Repeater\n" ;
 
my $index =0;
 
while($ARGV[$index])
{
my $arg = $ARGV[$index];
$index = $index +1;
print " $index -- $arg \n" ;
 
}
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/projects/pic_micro/bin/repeater Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_ind_mem.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_ind_mem.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_ind_mem.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +ind_mem + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_ind_mem + + + destination + ../verilog/top.ind_mem + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_ind_mem + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.ind_mem + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.ind_mem + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity1.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity1.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity1.xml (revision 88) @@ -0,0 +1,457 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +sanity1 + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_sanity1 + + + destination + ../verilog/top.sanity1 + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_sanity1 + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + 12'h000 + 12'h000 + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.sanity1 + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.sanity1 + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf1.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf1.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf1.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +rf1 + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf1 + + + destination + ../verilog/top.rf1 + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf1 + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.rf1 + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.rf1 + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity2.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity2.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_sanity2.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +sanity2 + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_sanity2 + + + destination + ../verilog/top.sanity2 + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_sanity2 + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.sanity2 + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.sanity2 + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf2.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf2.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf2.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +rf2 + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf2 + + + destination + ../verilog/top.rf2 + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf2 + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.rf2 + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.rf2 + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_loop.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_loop.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_loop.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +loop + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_loop + + + destination + ../verilog/top.loop + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_loop + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.loop + verilogSourceTop + + + + + ../verilog/top.out + verilogFragment + + + + + ../verilog/tb.test_define.loop + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf3.xml =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf3.xml (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/xml/mrisc_cpu_rf3.xml (revision 88) @@ -0,0 +1,456 @@ + + + + +opencores.org +pic_micro +mrisc_cpu +rf3 + + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf3 + + + destination + ../verilog/top.rf3 + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + mrisc_cpu + + + variant + mrisc_cpu_rf3 + + + + + + + + + + + + + 0 + 0 + 0 + "NONE" + + 40 + 200000 + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + + + + + + + + + + fs-sim + + + ../verilog/top.rf3 + verilogSourceTop + + + + + ../verilog/top.io + verilogFragment + + + + + ../verilog/tb.test_define.rf3 + verilogFragment + + + + + + + + + + +clk +wire + + + +reset +wire + + + + + +inst_addr +wire + +100 + + +inst_data +wire + +110 + + +portain +wire + +70 + + +portbin +wire + +70 + + +portcin +wire + +70 + + +portaout +wire + +70 + + +portbout +wire + +70 + + +portcout +wire + +70 + + +trisa +wire + +70 + + +trisb +wire + +70 + + +trisc +wire + +70 + + +porta_we +wire + + + +portb_we +wire + + + +portc_we +wire + + + + + + + + + + + + + + + + + + clk + + + + + + + reset + + + + + + + 1'b1 + + + + + 1'b0 + + + + + inst_addr + + + + + + + inst_data + + + + + + portain + + + + + portbin + + + + + portcin + + + + + portaout + + + + + portbout + + + + + + portcout + + + + + + trisa + + + + + trisb + + + + + trisc + + + + + porta_we + + + + + portb_we + + + + + portc_we + + + + + 1'b1 + + + + + + + 1'b0 + + + + + + 12'h000 + + + + + + + + + + + + + + + + + + + + + + + + +dut + +opencores.org +pic_micro +mrisc_cpu + + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + +u1 + +opencores.org +cde +cde_sram + + + + WORDSROM_WORDS + ADDRROM_ADDR + WIDTHROM_WIDTH + INIT_FILEROM_FILE + + + + + + + + + + + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf1 =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf1 (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf1 (revision 88) @@ -0,0 +1,34 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + + + while(porta == 8'hFF) @(posedge clk); + while(porta == 8'h00) @(posedge clk); + + if(porta == 8'h01) + begin + + end + else + if(porta == 8'hff) + begin + $display("Test FAILED in test %d !!!", portb); + end + else + $display("Test status UNKNOWN (%h test: %d) !!!", porta, portb); + + + repeat(4) @(posedge clk); + $display("\n=============================================\n\n\n"); + + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.ind_mem =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.ind_mem (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.ind_mem (revision 88) @@ -0,0 +1,34 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + + repeat(40) @(posedge clk); + + while(portaout == 8'h00) @(posedge clk); + + if(portaout == 8'h01) + begin + + end + else + if(portaout == 8'hff) + begin + $display("Test FAILED in test %d !!!", portb); + end + else + $display("Test status UNKNOWN (%h test: %d) !!!", portaout, portbout); + + + repeat(4) @(posedge clk); + $display("\n=============================================\n\n\n"); + + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity1 =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity1 (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity1 (revision 88) @@ -0,0 +1,31 @@ + + +initial + begin + $display ("\n\nMini-RISC. Version 1.0\n\n"); + $display ("========== Starting Sanity 1 Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + while(inst_addr != GOOD & inst_addr != BAD) @(posedge clk); + + if(inst_addr == GOOD) + begin + end + else + if(inst_addr == BAD) + begin + $display("Sanity1 test FAILED !!!"); + end + else + $display("Sanity1 test status UNKNOWN !!!"); + + + repeat(4) @(posedge clk); + $display("=============================================\n\n\n"); + + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf2 =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf2 (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf2 (revision 88) @@ -0,0 +1,34 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + + + while(porta == 8'hFF) @(posedge clk); + while(porta == 8'h00) @(posedge clk); + + if(porta == 8'h01) + begin + + end + else + if(porta == 8'hff) + begin + $display("Test FAILED in test %d !!!", portb); + end + else + $display("Test status UNKNOWN (%h test: %d) !!!", porta, portb); + + + repeat(4) @(posedge clk); + $display("\n=============================================\n\n\n"); + + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.loop =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.loop (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.loop (revision 88) @@ -0,0 +1,12 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + repeat(4000) @(posedge clk); +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity2 =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity2 (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.sanity2 (revision 88) @@ -0,0 +1,32 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + + + while(porta == 8'hFF) @(posedge clk); + while(porta == 8'h00) @(posedge clk); + + if(porta == 8'h01) + begin + end + else + if(porta == 8'hff) + begin + $display("Test FAILED in test %d !!!", portb); + end + else + $display("Test status UNKNOWN (%h test: %d) !!!", porta, portb); + + + repeat(4) @(posedge clk); + $display("\n=============================================\n\n\n"); + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf3 =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf3 (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/tb.test_define.rf3 (revision 88) @@ -0,0 +1,34 @@ + +initial + begin + $display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n"); + $display ("========== Starting Test ========== \n"); + repeat(10) @(posedge clk); + cg.reset_off; + + + while(porta == 8'hFF) @(posedge clk); + while(porta == 8'h00) @(posedge clk); + + if(porta == 8'h01) + begin + + end + else + if(porta == 8'hff) + begin + $display("Test FAILED in test %d !!!", portb); + end + else + $display("Test status UNKNOWN (%h test: %d) !!!", porta, portb); + + + repeat(4) @(posedge clk); + $display("\n=============================================\n\n\n"); + + + +cg.exit; + end + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.io =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.io (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.io (revision 88) @@ -0,0 +1,46 @@ +wire [7:0] porta; // I/O Port A +wire [7:0] portb; // I/O Port B +wire [7:0] portc; // I/O Port C + + + +// IO buffers for IO Ports +assign porta = trisa ? 8'bz : portaout; +assign portain = porta; + +assign portb = trisb ? 8'bz : portbout; +assign portbin = portb; + +assign portc = trisc ? 8'bz : portcout; +assign portcin = portc; + +// Pullups for IO Ports +pullup ua0(porta[0]); +pullup ua1(porta[1]); +pullup ua2(porta[2]); +pullup ua3(porta[3]); +pullup ua4(porta[4]); +pullup ua5(porta[5]); +pullup ua6(porta[6]); +pullup ua7(porta[7]); + +pullup ub0(portb[0]); +pullup ub1(portb[1]); +pullup ub2(portb[2]); +pullup ub3(portb[3]); +pullup ub4(portb[4]); +pullup ub5(portb[5]); +pullup ub6(portb[6]); +pullup ub7(portb[7]); + +pullup uc0(portc[0]); +pullup uc1(portc[1]); +pullup uc2(portc[2]); +pullup uc3(portc[3]); +pullup uc4(portc[4]); +pullup uc5(portc[5]); +pullup uc6(portc[6]); +pullup uc7(portc[7]); + + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.out =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.out (nonexistent) +++ trunk/projects/pic_micro/ip/mrisc_cpu/rtl/verilog/top.out (revision 88) @@ -0,0 +1,49 @@ + +assign portain = portaout; +assign portbin = portbout; +assign portcin = portcout; + +wire [7:0] porta; +wire [7:0] portb; +wire [7:0] portc; + + +// IO buffers for IO Ports +assign porta = trisa ? 8'bz : portaout; + + +assign portb = trisb ? 8'bz : portbout; + + +assign portc = trisc ? 8'bz : portcout; + + +// Pullups for IO Ports +pullup ua0(porta[0]); +pullup ua1(porta[1]); +pullup ua2(porta[2]); +pullup ua3(porta[3]); +pullup ua4(porta[4]); +pullup ua5(porta[5]); +pullup ua6(porta[6]); +pullup ua7(porta[7]); + +pullup ub0(portb[0]); +pullup ub1(portb[1]); +pullup ub2(portb[2]); +pullup ub3(portb[3]); +pullup ub4(portb[4]); +pullup ub5(portb[5]); +pullup ub6(portb[6]); +pullup ub7(portb[7]); + +pullup uc0(portc[0]); +pullup uc1(portc[1]); +pullup uc2(portc[2]); +pullup uc3(portc[3]); +pullup uc4(portc[4]); +pullup uc5(portc[5]); +pullup uc6(portc[6]); +pullup uc7(portc[7]); + + Index: trunk/projects/pic_micro/ip/mrisc_cpu/soc/design.soc =================================================================== --- trunk/projects/pic_micro/ip/mrisc_cpu/soc/design.soc (revision 87) +++ trunk/projects/pic_micro/ip/mrisc_cpu/soc/design.soc (revision 88) @@ -27,30 +27,134 @@ // from http://www.opencores.org/lgpl.shtml // // // --> + + - - + mrisc_cpu mrisc_cpu + + + mrisc_cpu + TB.dut + + + + +mrisc_cpu +mrisc_cpu_rf1 +rf1 + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_rf2 +rf2 + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_rf3 +rf3 + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_ind_mem +ind_mem + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_loop +loop + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_sanity1 +sanity1 + + + mrisc_cpu + TB.dut.dut + + + + +mrisc_cpu +mrisc_cpu_sanity2 +sanity2 + + + mrisc_cpu + TB.dut.dut + + + + + + + + + +rf1 +mrisc_cpu_rf1 + + ROM_FILE"../../../../../sw/rf1/rf1.abs12" + ROM_WORDS583 + ROM_ADDR11 + ROM_WIDTH12 + + + + + + sanity1 -mrisc_cpu +mrisc_cpu_sanity1 ROM_FILE"../../../../../sw/sanity1/sanity1.abs12" ROM_WORDS180 @@ -59,13 +163,12 @@ GOOD12'h0aa BAD12'h0af - -"../../bench/verilog/models/clock_gen.v" - + + rf3 -mrisc_cpu +mrisc_cpu_rf3 ROM_FILE"../../../../../sw/rf3/rf3.abs12" ROM_WORDS218 @@ -72,13 +175,11 @@ ROM_ADDR11 ROM_WIDTH12 - -"../../bench/verilog/models/clock_gen.v" - + sanity2 -mrisc_cpu +mrisc_cpu_sanity2 ROM_FILE"../../../../../sw/sanity2/sanity2.abs12" ROM_WORDS302 @@ -85,16 +186,12 @@ ROM_ADDR11 ROM_WIDTH12 - -"../../bench/verilog/models/clock_gen.v" - + - - rf2 -mrisc_cpu +mrisc_cpu_rf2 ROM_FILE"../../../../../sw/rf2/rf2.abs12" ROM_WORDS719 @@ -101,26 +198,11 @@ ROM_ADDR11 ROM_WIDTH12 - -"../../bench/verilog/models/clock_gen.v" - + -rf1 -mrisc_cpu - - ROM_FILE"../../../../../sw/rf1/rf1.abs12" - ROM_WORDS583 - ROM_ADDR11 - ROM_WIDTH12 - - -"../../bench/verilog/models/clock_gen.v" - - - ind_mem -mrisc_cpu +mrisc_cpu_ind_mem ROM_FILE"../../../../../sw/ind_mem/ind_mem.abs12" ROM_WORDS51 @@ -127,13 +209,11 @@ ROM_ADDR11 ROM_WIDTH12 - -"../../bench/verilog/models/clock_gen.v" - + loop -mrisc_cpu +mrisc_cpu_loop ROM_FILE"../../../../../sw/loop/loop.abs12" ROM_WORDS21 @@ -140,24 +220,11 @@ ROM_ADDR11 ROM_WIDTH12 - -"../../bench/verilog/models/clock_gen.v" - - - - mrisc_cpu - TB.dut - - - - - - - +
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/rf1/dut
1,72 → 1,3
assign rst_in = reset;
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE( ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/sanity1/dut
1,72 → 1,2
assign rst_in = reset;
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE( ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/loop/test_define
1,12 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
repeat(4000) @(posedge clk);
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/loop/dut
1,74 → 1,2
assign rst_in = reset;
 
assign tcki = 1'b0;
assign wdt_en = 1'b0;
assign portain = portaout;
assign portbin = portbout;
assign portcin = portcout;
 
wire [7:0] porta;
wire [7:0] portb;
wire [7:0] portc;
 
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
 
 
assign portb = trisb ? 8'bz : portbout;
 
 
assign portc = trisc ? 8'bz : portcout;
 
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE(ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/rf2/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/rf2/dut
1,72 → 1,2
assign rst_in = reset;
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE( ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/sanity2/test_define
1,32 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/sanity2/dut
1,72 → 1,2
assign rst_in = reset;
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE( ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/rf3/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc_cpu/sim/run/rf3/dut
1,72 → 1,2
assign rst_in = reset;
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
// Instantiate the Program RAM.
cde_sram
#(
 
.WORDS( ROM_WORDS),
.ADDR( ROM_ADDR ),
.WIDTH ( ROM_WIDTH ),
.INIT_FILE( ROM_FILE)
)
 
 
u1 (
.clk (clk),
.raddr (inst_addr),
.waddr (inst_addr),
.rd (1'b1),
.cs (1'b1),
.wr (1'b0), // This testbench doesn't allow writing to PRAM
.wdata (12'b000000000000), // This testbench doesn't allow writing to PRAM
.rdata (inst_data)
);
 
/trunk/projects/pic_micro/ip/soc/soc/design.soc
59,6 → 59,7
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
</models>
</sim>
/trunk/projects/pic_micro/ip/soc/sim/run/mouse_mrisc/test_define
7,6 → 7,9
$display(" ");
cg.next(20);
cg.reset_off;
fork
 
begin
ps2_model.rcv_byte(8'hff,1'b1);
cg.next(5000);
ps2_model.send_byte(8'hfa);
65,6 → 68,24
cg.next(20000);
ps2_model.send_byte(8'hbc);
cg.next(20000);
end
begin
uart_model.rcv_byte(8'h64);
 
 
cg.next(20);
uart_model.send_byte(8'h45);
uart_model.rcv_byte(8'h46);
 
uart_model.send_byte(8'h32);
uart_model.rcv_byte(8'h33);
 
uart_model.send_byte(8'h39);
uart_model.rcv_byte(8'h3a);
 
end
 
join
cg.exit;
end
 
/trunk/projects/pic_micro/ip/soc/sim/run/mouse_mrisc/dut
1,6 → 1,6
 
 
assign rxd_pad_in = txd_pad_out;
 
assign cts_pad_in = rts_pad_out;
 
wire device_rx_read;
48,3 → 48,12
.ps2_data ( ps2_data )
 
);
 
uart_model #(.CLKCNT(4'hc))
uart_model (
.clk ( clk ),
.reset ( reset ),
.txd_in ( txd_pad_out ),
.rxd_out ( rxd_pad_in )
);
 
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_ind_mem.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>ind_mem</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_ind_mem</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.ind_mem</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_ind_mem</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">100000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ind_mem</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.ind_mem</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_sanity1.xml
0,0 → 1,410
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>sanity1</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_sanity1</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.sanity1</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_sanity1</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">100000</spirit:value></spirit:modelParameter>
 
<spirit:modelParameter><spirit:value spirit:id="GOOD">12'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="BAD">12'h000</spirit:value></spirit:modelParameter>
 
 
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.sanity1</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.sanity1</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_rf1.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>rf1</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf1</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.rf1</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf1</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.rf1</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.rf1</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_sanity2.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>sanity2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_sanity2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.sanity2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_sanity2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">100000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.sanity2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.sanity2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_rf2.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>rf2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.rf2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.rf2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.rf2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_loop.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>loop</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_loop</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.loop</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_loop</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">100000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.loop</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.loop</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc_rf3.xml
0,0 → 1,405
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version>rf3</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf3</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.rf3</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>mrisc</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>mrisc_rf3</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="PC_RST_VECTOR">11'h000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STAT_RST_VALUE">8'h18</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="OPT_RST_VALUE">8'h3f</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FSR_RST_VALUE">7'h0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TRIS_RST_VALUE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADDR">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WIDTH">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
</spirit:model>
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.rf3</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.ext</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.rf3</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>rst_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>tcki</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>inst_addr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>10</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portain</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcin</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portaout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portbout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>portcout</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisa</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>trisc</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>porta_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portb_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>portc_we</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
 
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rst_in"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="wdt_en"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tcki</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tcki"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>inst_addr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="inst_addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portain</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portain"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcin"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portaout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portaout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portbout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portbout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portcout</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portcout"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisa</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisa"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trisc</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trisc"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>porta_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="porta_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portb_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portb_we"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>portc_we</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="portc_we"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
<spirit:componentInstances>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>pic_micro</spirit:library>
<spirit:name>mrisc</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PC_RST_VECTOR</name><value>PC_RST_VECTOR</value></parameter>
<parameter><name>STAT_RST_VALUE</name><value>STAT_RST_VALUE</value></parameter>
<parameter><name>OPT_RST_VALUE</name><value>OPT_RST_VALUE</value></parameter>
<parameter><name>FSR_RST_VALUE</name><value>FSR_RST_VALUE</value></parameter>
<parameter><name>TRIS_RST_VALUE</name><value>TRIS_RST_VALUE</value></parameter>
<parameter><name>ROM_WIDTH</name><value>ROM_WIDTH</value></parameter>
<parameter><name>ROM_ADDR</name><value>ROM_ADDR</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/xml/mrisc.xml
428,12 → 428,6
 
</spirit:componentInstances>
<code_coverage>
<cover>
<name>mrisc</name>
<spirit:componentInstance>TB.dut</spirit:componentInstance>
</cover>
</code_coverage>
 
 
</spirit:component>
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/top.ext
0,0 → 1,46
// IO buffers for IO Ports
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
 
 
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.ind_mem
0,0 → 1,34
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
repeat(40) @(posedge clk);
 
while(portaout == 8'h00) @(posedge clk);
if(portaout == 8'h01)
begin
 
end
else
if(portaout == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", portaout, portbout);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.sanity1
0,0 → 1,31
 
 
initial
begin
$display ("\n\nMini-RISC. Version 1.0\n\n");
$display ("========== Starting Sanity 1 Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
while(inst_addr != GOOD & inst_addr != BAD) @(posedge clk);
if(inst_addr == GOOD)
begin
end
else
if(inst_addr == BAD)
begin
$display("Sanity1 test FAILED !!!");
end
else
$display("Sanity1 test status UNKNOWN !!!");
 
 
repeat(4) @(posedge clk);
$display("=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.rf1
0,0 → 1,34
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.loop
0,0 → 1,12
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
repeat(4000) @(posedge clk);
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.sanity2
0,0 → 1,32
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.rf2
0,0 → 1,34
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/rtl/verilog/tb.test_define.rf3
0,0 → 1,34
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/soc/design.soc
27,14 → 27,15
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<designs>
 
<components>
<component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc</variant>
<version></version>
 
<code_coverage>
<cover>
<name>mrisc</name>
41,90 → 42,178
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_ind_mem</variant>
<version>ind_mem</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_loop</variant>
<version>loop</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_rf1</variant>
<version>rf1</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_rf2</variant>
<version>rf2</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_rf3</variant>
<version>rf3</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_sanity1</variant>
<version>sanity1</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>mrisc</name>
<variant>mrisc_sanity2</variant>
<version>sanity2</version>
<code_coverage>
<cover>
<name>mrisc</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
 
 
 
 
</components>
 
 
 
<sims>
 
<sim>
<name>sanity1</name>
<variant>mrisc</variant>
<configuration>sanity1</configuration>
<parameters>
<parameter><name>GOOD</name><value>12'h0aa</value></parameter>
<parameter><name>BAD</name><value>12'h0af</value></parameter>
<name>ind_mem</name>
<variant>mrisc_ind_mem</variant>
<configuration>ind_mem</configuration>
</sim>
 
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
</sim>
 
<sim>
<name>rf3</name>
<variant>mrisc</variant>
<configuration>rf3</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<name>loop</name>
<variant>mrisc_loop</variant>
<configuration>loop</configuration>
</sim>
 
 
 
<sim>
<name>sanity2</name>
<variant>mrisc</variant>
<configuration>sanity2</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<name>rf1</name>
<variant>mrisc_rf1</variant>
<configuration>rf1</configuration>
</sim>
 
<sim>
<name>rf2</name>
<variant>mrisc</variant>
<variant>mrisc_rf2</variant>
<configuration>rf2</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
</sim>
 
<sim>
<name>rf1</name>
<variant>mrisc</variant>
<configuration>rf1</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<name>rf3</name>
<variant>mrisc_rf3</variant>
<configuration>rf3</configuration>
</sim>
 
 
<sim>
<name>ind_mem</name>
<variant>mrisc</variant>
<configuration>ind_mem</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<name>sanity1</name>
<variant>mrisc_sanity1</variant>
<configuration>sanity1</configuration>
<parameters>
<parameter><name>GOOD</name><value>12'h0aa</value></parameter>
<parameter><name>BAD</name><value>12'h0af</value></parameter>
</parameters>
</sim>
 
 
 
<sim>
<name>loop</name>
<variant>mrisc</variant>
<configuration>loop</configuration>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<name>sanity2</name>
<variant>mrisc_sanity2</variant>
<configuration>sanity2</configuration>
</sim>
 
</sims>
 
 
 
 
 
 
 
 
 
</component>
 
 
</sims>
 
 
<configurations>
 
<configuration>
204,7 → 293,4
</configurations>
 
 
 
 
 
</components>
</designs>
/trunk/projects/pic_micro/ip/mrisc/sim/run/ind_mem/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
repeat(40) @(posedge clk);
 
while(portaout == 8'h00) @(posedge clk);
if(portaout == 8'h01)
begin
 
end
else
if(portaout == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", portaout, portbout);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/ind_mem/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf1/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf1/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/sanity1/test_define
1,31 → 1,2
 
 
initial
begin
$display ("\n\nMini-RISC. Version 1.0\n\n");
$display ("========== Starting Sanity 1 Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
while(inst_addr != GOOD & inst_addr != BAD) @(posedge clk);
if(inst_addr == GOOD)
begin
end
else
if(inst_addr == BAD)
begin
$display("Sanity1 test FAILED !!!");
end
else
$display("Sanity1 test status UNKNOWN !!!");
 
 
repeat(4) @(posedge clk);
$display("=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/sanity1/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/loop/test_define
1,12 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
repeat(4000) @(posedge clk);
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/loop/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf2/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf2/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/sanity2/test_define
1,32 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/sanity2/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf3/test_define
1,34 → 1,2
 
initial
begin
$display ("\n\nMini-RISC. Sanity 2 Version 1.0\n\n");
$display ("========== Starting Test ========== \n");
repeat(10) @(posedge clk);
cg.reset_off;
 
while(porta == 8'hFF) @(posedge clk);
while(porta == 8'h00) @(posedge clk);
if(porta == 8'h01)
begin
 
end
else
if(porta == 8'hff)
begin
$display("Test FAILED in test %d !!!", portb);
end
else
$display("Test status UNKNOWN (%h test: %d) !!!", porta, portb);
 
 
repeat(4) @(posedge clk);
$display("\n=============================================\n\n\n");
 
 
cg.exit;
end
 
 
/trunk/projects/pic_micro/ip/mrisc/sim/run/rf3/dut
1,49 → 1,2
 
 
wire [7:0] porta; // I/O Port A
wire [7:0] portb; // I/O Port B
wire [7:0] portc; // I/O Port C
 
assign rst_in =reset;
 
assign wdt_en =1'b1;
 
// IO buffers for IO Ports
assign porta = trisa ? 8'bz : portaout;
assign portain = porta;
 
assign portb = trisb ? 8'bz : portbout;
assign portbin = portb;
 
assign portc = trisc ? 8'bz : portcout;
assign portcin = portc;
 
// Pullups for IO Ports
pullup ua0(porta[0]);
pullup ua1(porta[1]);
pullup ua2(porta[2]);
pullup ua3(porta[3]);
pullup ua4(porta[4]);
pullup ua5(porta[5]);
pullup ua6(porta[6]);
pullup ua7(porta[7]);
 
pullup ub0(portb[0]);
pullup ub1(portb[1]);
pullup ub2(portb[2]);
pullup ub3(portb[3]);
pullup ub4(portb[4]);
pullup ub5(portb[5]);
pullup ub6(portb[6]);
pullup ub7(portb[7]);
 
pullup uc0(portc[0]);
pullup uc1(portc[1]);
pullup uc2(portc[2]);
pullup uc3(portc[3]);
pullup uc4(portc[4]);
pullup uc5(portc[5]);
pullup uc6(portc[6]);
pullup uc7(portc[7]);
 
 
/trunk/projects/io/bin/repeater
0,0 → 1,133
eval 'exec `which perl` -S $0 ${1+"$@"}'
if 0;
 
#/**********************************************************************/
#/* */
#/* ------- */
#/* / SOC \ */
#/* / GEN \ */
#/* / TOOL \ */
#/* ============== */
#/* | | */
#/* |____________| */
#/* */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
#/**********************************************************************/
#/* */
#/* Copyright (C) <2010> <Ouabache Design Works> */
#/* */
#/* This source file may be used and distributed without */
#/* restriction provided that this copyright statement is not */
#/* removed from the file and that any derivative work contains */
#/* the original copyright notice and the associated disclaimer. */
#/* */
#/* This source file is free software; you can redistribute it */
#/* and/or modify it under the terms of the GNU Lesser General */
#/* Public License as published by the Free Software Foundation; */
#/* either version 2.1 of the License, or (at your option) any */
#/* later version. */
#/* */
#/* This source is distributed in the hope that it will be */
#/* useful, but WITHOUT ANY WARRANTY; without even the implied */
#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
#/* PURPOSE. See the GNU Lesser General Public License for more */
#/* details. */
#/* */
#/* You should have received a copy of the GNU Lesser General */
#/* Public License along with this source; if not, download it */
#/* from http://www.opencores.org/lgpl.shtml */
#/* */
#/**********************************************************************/
 
# ToDO: add handling unaligned words
 
 
############################################################################
# General PERL config
############################################################################
use Getopt::Long;
use English;
use File::Basename;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
############################################################################
### Process the options
############################################################################
 
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h"
) || die "(use '$program_name -h' for help)";
 
 
##############################################################################
## Help option
##############################################################################
if ( ($opt_h eq "1") )
{ print "\n type test filename ( no extension)";
print "\n";
exit 1;
}
 
 
##############################################################################
##
##############################################################################
 
use Cwd;
use XML::LibXML;
 
$home = cwd();
 
 
 
 
 
#############################################################################
##
##
#############################################################################
 
my $prefix = $ARGV[0];
my $component = $ARGV[1];
my $variant = $ARGV[2];
print "Repeater\n" ;
 
my $index =0;
 
while($ARGV[$index])
{
my $arg = $ARGV[$index];
$index = $index +1;
print " $index -- $arg \n" ;
 
}
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/projects/io/bin/repeater Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/projects/Mos6502/bin/repeater =================================================================== --- trunk/projects/Mos6502/bin/repeater (nonexistent) +++ trunk/projects/Mos6502/bin/repeater (revision 88) @@ -0,0 +1,133 @@ +eval 'exec `which perl` -S $0 ${1+"$@"}' + if 0; + +#/**********************************************************************/ +#/* */ +#/* ------- */ +#/* / SOC \ */ +#/* / GEN \ */ +#/* / TOOL \ */ +#/* ============== */ +#/* | | */ +#/* |____________| */ +#/* */ +#/* */ +#/* */ +#/* */ +#/* Author(s): */ +#/* - John Eaton, jt_eaton@opencores.org */ +#/* */ +#/**********************************************************************/ +#/* */ +#/* Copyright (C) <2010> */ +#/* */ +#/* This source file may be used and distributed without */ +#/* restriction provided that this copyright statement is not */ +#/* removed from the file and that any derivative work contains */ +#/* the original copyright notice and the associated disclaimer. */ +#/* */ +#/* This source file is free software; you can redistribute it */ +#/* and/or modify it under the terms of the GNU Lesser General */ +#/* Public License as published by the Free Software Foundation; */ +#/* either version 2.1 of the License, or (at your option) any */ +#/* later version. */ +#/* */ +#/* This source is distributed in the hope that it will be */ +#/* useful, but WITHOUT ANY WARRANTY; without even the implied */ +#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */ +#/* PURPOSE. See the GNU Lesser General Public License for more */ +#/* details. */ +#/* */ +#/* You should have received a copy of the GNU Lesser General */ +#/* Public License along with this source; if not, download it */ +#/* from http://www.opencores.org/lgpl.shtml */ +#/* */ +#/**********************************************************************/ + +# ToDO: add handling unaligned words + + +############################################################################ +# General PERL config +############################################################################ +use Getopt::Long; +use English; +use File::Basename; + +$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE. + + +############################################################################ +### Process the options +############################################################################ + +Getopt::Long::config("require_order", "prefix=-"); +GetOptions("h" +) || die "(use '$program_name -h' for help)"; + + +############################################################################## +## Help option +############################################################################## +if ( ($opt_h eq "1") ) + { print "\n type test filename ( no extension)"; + print "\n"; + exit 1; + } + + +############################################################################## +## +############################################################################## + +use Cwd; +use XML::LibXML; + +$home = cwd(); + + + + + +############################################################################# +## +## +############################################################################# + + my $prefix = $ARGV[0]; + my $component = $ARGV[1]; + my $variant = $ARGV[2]; +print "Repeater\n" ; + +my $index =0; + +while($ARGV[$index]) +{ +my $arg = $ARGV[$index]; +$index = $index +1; +print " $index -- $arg \n" ; + +} + + + +1 + + + + + + + + + + + + + + + + + + +
trunk/projects/Mos6502/bin/repeater Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502.xml =================================================================== --- trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502.xml (revision 87) +++ trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502.xml (revision 88) @@ -414,6 +414,8 @@ + + clk
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_kim_2.xml
0,0 → 1,1437
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>kim_2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_kim_2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.kim_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_kim_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.kim_2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.kim_2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"kim_2"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_io_irq_2.xml
0,0 → 1,1416
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>io_irq_2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_io_irq_2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.io_irq_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_io_irq_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.io_irq_2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.io_irq_2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"io_irq_2"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_tim_2.xml
0,0 → 1,1416
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>tim_2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_tim_2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.tim_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_tim_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.tim_2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.tim_2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"tim_2"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_irq_2_test.xml
0,0 → 1,1416
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>irq_2_test</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_irq_2_test</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.irq_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_irq_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.irq_2_test</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.irq_2_test</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"irq_2_test"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_inst_2_test.xml
0,0 → 1,1411
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>inst_2_test</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_inst_2_test</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.inst_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_inst_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.inst_2_test</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.inst_2_test</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"inst_2_test"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/xml/T6502_io_poll_2.xml
0,0 → 1,1416
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version>io_poll_2</spirit:version>
 
 
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_io_poll_2</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/tb.io_poll_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>hier_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_io_poll_2</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.ext_m</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.io_poll_2</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.io_poll_2</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
 
</spirit:fileSet>
 
</spirit:fileSets>
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
 
<spirit:modelParameters>
 
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"io_poll_2"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
 
 
 
 
<spirit:ports>
 
 
 
 
 
<spirit:port><name>memadr_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramclk_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcre_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>memoe_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramlb_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashcs_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>flashrp_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>flashststs_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>ramub_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>memwr_n_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramwait_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>ramadv_out_n</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
<spirit:port><name>MEMDB</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>inout</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
</spirit:ports>
 
 
 
 
 
 
</spirit:model>
 
 
 
 
<nodes>
 
 
<node>
<name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node>
<name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node>
<name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node>
<name>ext_ub</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_ack</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_lb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_stb</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>txd_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>rxd_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>rts_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_clk_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>ps2_data_pad_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_0_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>gpio_1_lat</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
<node><name>vgared_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgagreen_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>2</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>vgablue_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>hsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>vsync_n_pad_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
 
<node><name>ps2_clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>ps2_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>memdb_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>memdb_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>memdb_oe</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>output</spirit:direction></spirit:wire>
</node>
 
 
</nodes>
 
<spirit:adHocConnections>
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="addr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ub"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ack"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="lb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memadr_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memadr_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memadr_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memdb_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>MEMDB[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>MEMDB[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_out[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_out[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>memdb_in[0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[2]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[3]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[4]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[5]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[6]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[7]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[9]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[10]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[11]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[12]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[13]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[14]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
<spirit:adHocConnection>
<spirit:name>memdb_in[15]</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memdb_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="memdb_00_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_01_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_02_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_03_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_04_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_05_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_06_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_07_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_08_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_09_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_10_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_11_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_12_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_13_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_14_pad" spirit:portRef="pad_oe"/>
<spirit:internalPortReference spirit:componentRef="memdb_15_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>memoe_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memoe_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memoe_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>memwr_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="memwr_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="memwr_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramadv_out_n</spirit:name>
<spirit:externalPortReference spirit:portRef="ramadv_out_n"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramadv_out_n"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramclk_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramclk_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramclk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramub_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramub_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramub_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramlb_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramlb_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramlb_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcs_n_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ramcre_out</spirit:name>
<spirit:externalPortReference spirit:portRef="ramcre_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramcre_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ramwait_in</spirit:name>
<spirit:externalPortReference spirit:portRef="ramwait_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="ramwait_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>flashststs_in</spirit:name>
<spirit:externalPortReference spirit:portRef="flashststs_in"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashststs_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashrp_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashrp_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashrp_n_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>flashcs_n_out</spirit:name>
<spirit:externalPortReference spirit:portRef="flashcs_n_out"/>
<spirit:internalPortReference spirit:componentRef="fmc" spirit:portRef="flashcs_n_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="rts_pad_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_clk_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_oe"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ps2_data_pad_in"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_0_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_0_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>gpio_1_lat</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="gpio_1_lat"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>4'h0</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="ext_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgared_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgared_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgagreen_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgagreen_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vgablue_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vgablue_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>hsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="hsync_n_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vsync_n_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vsync_n_pad_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="txd_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rxd_pad_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="uart_model" spirit:portRef="rxd_out"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_clk"/>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ps2_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_model" spirit:portRef="ps2_data"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="PAD"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="ps2_clk_pad" spirit:portRef="pad_out"/>
<spirit:internalPortReference spirit:componentRef="ps2_data_pad" spirit:portRef="pad_out"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>RAM_WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>RAM_ADD</name><value>RAM_ADD</value></parameter>
<parameter><name>ROM_WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>ROM_ADD</name><value>ROM_ADD</value></parameter>
<parameter><name>ROM_FILE</name><value>ROM_FILE</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>PROG_ROM_FILE</value></parameter>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>RX_FIFO_WORDS</name><value></value>RX_FIFO_WORDS</parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>uart_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>uart_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>4'hc</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_model</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>ps2_model</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>CLKCNT</name><value>10'h177</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>ps2_clk_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>ps2_data_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>fmc</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>flash_memcontrl</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_00_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_01_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_02_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_03_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_04_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_05_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_06_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_07_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_08_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_09_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>memdb_10_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_11_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_12_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_13_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_14_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>memdb_15_pad</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_pad</spirit:name>
<spirit:version>se_dig</spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.io_irq_2
0,0 → 1,28
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
uart_model.rcv_byte(8'h42);
uart_model.send_byte(8'h65);
uart_model.rcv_byte(8'h65);
uart_model.send_byte(8'h37);
uart_model.rcv_byte(8'h37);
uart_model.send_byte(8'h20);
uart_model.rcv_byte(8'h20);
uart_model.send_byte(8'h41);
uart_model.rcv_byte(8'h41);
uart_model.send_byte(8'h45);
uart_model.rcv_byte(8'h45);
uart_model.send_byte(8'h25);
uart_model.rcv_byte(8'h25);
cg.next(4000);
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.ext_m
0,0 → 1,22
 
pullup ua0(ps2_clk);
pullup ua1(ps2_data);
 
 
pullup mdb_00(MEMDB(00));
pullup mdb_01(MEMDB(01));
pullup mdb_02(MEMDB(02));
pullup mdb_03(MEMDB(03));
pullup mdb_04(MEMDB(04));
pullup mdb_05(MEMDB(05));
pullup mdb_06(MEMDB(06));
pullup mdb_07(MEMDB(07));
pullup mdb_08(MEMDB(08));
pullup mdb_09(MEMDB(09));
pullup mdb_10(MEMDB(10));
pullup mdb_11(MEMDB(11));
pullup mdb_12(MEMDB(12));
pullup mdb_13(MEMDB(13));
pullup mdb_14(MEMDB(14));
pullup mdb_15(MEMDB(15));
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.tim_2
0,0 → 1,162
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
fork
begin
ps2_model.rcv_byte(8'hff,1'b1);
cg.next(5000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'haa);
cg.next(20000);
ps2_model.send_byte(8'h00);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hc8,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h64,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h50,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf2,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'h03);
ps2_model.rcv_byte(8'he8,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h03,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h28,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf4,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'h12);
cg.next(20000);
ps2_model.send_byte(8'h34);
cg.next(20000);
ps2_model.send_byte(8'h56);
cg.next(20000);
ps2_model.send_byte(8'h78);
cg.next(20000);
ps2_model.send_byte(8'h9a);
cg.next(20000);
ps2_model.send_byte(8'hbc);
cg.next(20000);
end
begin
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h41);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h34);
cg.next(20);
uart_model.rcv_byte(8'h37);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h4d);
cg.next(20);
uart_model.rcv_byte(8'h65);
cg.next(20);
uart_model.rcv_byte(8'h6d);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h0d);
cg.next(20);
uart_model.rcv_byte(8'h0a);
cg.next(2000);
 
uart_model.send_byte(8'h35);
 
 
 
 
 
 
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h42);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h31);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h4d);
cg.next(20);
uart_model.rcv_byte(8'h65);
cg.next(20);
uart_model.rcv_byte(8'h6d);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h0d);
cg.next(20);
uart_model.rcv_byte(8'h0a);
cg.next(2000);
 
 
 
 
 
uart_model.send_byte(8'h36);
cg.next(40000);
 
uart_model.send_byte(8'h37);
cg.next(40000);
 
uart_model.send_byte(8'h38);
cg.next(40000);
 
end
join
 
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.irq_2_test
0,0 → 1,15
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
while (gpio_0_out != 8'h00) cg.next(1);
cg.reset_off;
while (gpio_1_out == 8'hff) cg.next(10);
cg.next(50000);
cg.exit;
end
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.inst_2_test
0,0 → 1,16
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
while (gpio_0_out != 8'h00) cg.next(1);
while (gpio_1_out != 8'h00) cg.next(1);
cg.reset_off;
while (gpio_1_out == 8'h00) cg.next(10);
cg.next(300);
cg.exit;
end
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.io_poll_2
0,0 → 1,20
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
uart_model.rcv_byte(8'h42);
uart_model.send_byte(8'h65);
uart_model.rcv_byte(8'h67);
uart_model.send_byte(8'h37);
uart_model.rcv_byte(8'h39);
cg.next(4000);
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502/rtl/verilog/tb.test_define.kim_2
0,0 → 1,47
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
fork
begin
end
 
begin
cg.next(400000);
 
uart_model.send_byte(8'h34);
cg.next(10000);
 
uart_model.send_byte(8'h30);
cg.next(10000);
uart_model.send_byte(8'h30);
cg.next(10000);
uart_model.send_byte(8'h31);
cg.next(10000);
uart_model.send_byte(8'h20);
cg.next(10000);
uart_model.send_byte(8'h38);
cg.next(10000);
uart_model.send_byte(8'h36);
cg.next(10000);
uart_model.send_byte(8'h2e);
 
 
 
 
 
cg.next(80000);
 
end
join
 
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502/soc/design.soc
28,105 → 28,187
// //
-->
<components>
<component>
 
 
<component>
<name>T6502</name>
<variant>T6502</variant>
<version></version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.io_module</componentInstance>
</cover>
</code_coverage>
<children>
<module>
<name>flash_memcontrl</name>
<component>flash_memcontrl</component>
<project>logic</project>
</module>
</children>
</component>
 
 
 
 
<code_coverage>
<component>
<name>T6502</name>
<variant>T6502_inst_2_test</variant>
<version>inst_2_test</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.cpu</componentInstance>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.io_module</componentInstance>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
<component>
<name>T6502</name>
<variant>T6502_io_irq_2</variant>
<version>io_irq_2</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<children>
<module>
<name>flash_memcontrl</name>
<component>flash_memcontrl</component>
<project>logic</project>
</module>
</children>
<component>
<name>T6502</name>
<variant>T6502_io_poll_2</variant>
<version>io_poll_2</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
<component>
<name>T6502</name>
<variant>T6502_irq_2_test</variant>
<version>irq_2_test</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
<component>
<name>T6502</name>
<variant>T6502_tim_2</variant>
<version>tim_2</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>T6502</name>
<variant>T6502_kim_2</variant>
<version>kim_2</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut.cpu</componentInstance>
</cover>
<cover>
<name>io_module</name>
<componentInstance>TB.dut.dut.io_module</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
 
 
 
 
 
 
 
 
 
 
<sims>
 
<sim>
<name>inst_2_test</name>
<configuration>inst_2_test</configuration>
<variant>T6502</variant>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
<variant>T6502_inst_2_test</variant>
</sim>
 
 
<sim>
<name>io_irq_2</name>
<configuration>io_irq_2</configuration>
<variant>T6502</variant>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
</models>
<variant>T6502_io_irq_2</variant>
</sim>
 
<sim>
<name>io_poll_2</name>
<configuration>io_poll_2</configuration>
<variant>T6502</variant>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
</models>
<variant>T6502_io_poll_2</variant>
</sim>
 
<sim>
<name>irq_2_test</name>
<configuration>irq_2_test</configuration>
<variant>T6502</variant>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
</models>
<variant>T6502_irq_2_test</variant>
</sim>
 
<sim>
<name>kim_2</name>
<configuration>kim_2</configuration>
<variant>T6502</variant>
<variant>T6502_kim_2</variant>
<parameters>
<parameter><name>TIMEOUT</name><value>800000</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
<model>"../../bench/verilog/models/mt45w8mw12.v"</model>
<model>"../../../../../children/logic/ip/flash_memcontrl/rtl/gen/sim/flash_memcontrl.v"</model>
</models>
</sim>
 
133,27 → 215,20
<sim>
<name>tim_2</name>
<configuration>tim_2</configuration>
<variant>T6502</variant>
<variant>T6502_tim_2</variant>
<parameters>
<parameter><name>TIMEOUT</name><value>800000</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
<model>"../../bench/verilog/models/uart_model.v"</model>
<model>"../../bench/verilog/models/io_probe.v"</model>
<model>"../../bench/verilog/models/ps2_model.v"</model>
<model>"../../bench/verilog/models/iobuftri.v"</model>
</models>
</sim>
 
</sims>
 
 
</component>
 
 
 
<configurations>
 
<configuration>
<name>inst_2_test</name>
<parameters>
167,7 → 242,35
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
</configuration>
 
 
 
 
<configuration>
<name>inst_3_test</name>
<parameters>
<parameter><name>ROM_WORDS</name><value>128</value></parameter>
<parameter><name>ROM_ADD</name><value>7</value></parameter>
<parameter><name>ROM_FILE</name><value>"../../../../../../Mos6502/sw/table_tim1/table_tim1.abs16"</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>"../../../../../../Mos6502/sw/inst_2_test/inst_2_test.abs16"</value></parameter>
<parameter><name>PROG_ROM_WORDS</name><value>2048</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>11</value></parameter>
<parameter><name>STARTUP</name><value>"../../../../../sw/vga_startup_screen/vga_startup_screen.abs"</value></parameter>
<parameter><name>FONT</name><value>"../../../../../sw/vga_font/vga_font.abs"</value></parameter>
</parameters>
</configuration>
 
 
 
 
 
 
 
 
 
 
 
<configuration>
<name>io_irq_2</name>
<parameters>
<parameter><name>ROM_WORDS</name><value>128</value></parameter>
/trunk/projects/Mos6502/ip/T6502/sim/run/kim_2/dut
1,262 → 1,6
 
 
assign ext_irq_in = 4'b0000 ;
assign gpio_0_in = gpio_0_out ;
assign gpio_1_in = gpio_1_out ;
assign cts_pad_in = rts_pad_out;
 
 
 
wire ps2_clk;
wire ps2_data;
 
 
 
 
 
iobuftri
data_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_data_pad_oe ),
.o ( ps2_data_pad_in ),
.pad ( ps2_data )
);
 
 
iobuftri
clk_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_clk_pad_oe ),
.o ( ps2_clk_pad_in ),
.pad ( ps2_clk )
);
 
 
 
pullup ua0(ps2_clk);
pullup ua1(ps2_data);
 
 
ps2_model
#(.CLKCNT(10'h177))
ps2_model
(
.clk ( clk ),
.reset ( reset ),
.ps2_clk ( ps2_clk ),
.ps2_data ( ps2_data )
 
 
 
);
 
 
 
 
 
uart_model #(.CLKCNT(4'hc))
uart_model (
.clk ( clk ),
.reset ( reset ),
.txd_in ( txd_pad_out ),
.rxd_out ( rxd_pad_in )
);
 
 
wire [23:1] memadr_out;
wire memoe_n_out;
wire memdb_oe;
wire [15:0] memdb_out;
wire [15:0] memdb_in;
wire [15:0] memdb_io;
wire memwr_n_out;
wire ramcs_n_out;
wire ramlb_n_out;
wire ramadv_out_n;
wire ramclk_out;
wire ramcre_out;
wire ramub_n_out;
 
 
 
 
 
 
flash_memcontrl
flash_memcontrl
(
.clk ( clk ),
.reset ( reset ),
.addr ( ext_add ),
.wdata ( ext_wdata ),
.cs ( ext_cs ),
.stb (|ext_cs ),
.rd ( ext_rd ),
.wr ( ext_wr ),
.ub ( ext_ub ),
.lb ( ext_lb ),
.ack ( ext_ack ),
.rdata ( ext_rdata ),
.memadr_out ( memadr_out ),
.memoe_n_out ( memoe_n_out ),
.memdb_oe ( memdb_oe ),
.memdb_out ( memdb_out ),
.memdb_in ( memdb_in ),
.memwr_n_out ( memwr_n_out ),
.ramcs_n_out ( ramcs_n_out ),
.ramlb_n_out ( ramlb_n_out ),
.ramadv_out_n ( ramadv_out_n ),
.ramclk_out ( ramclk_out ),
.ramcre_out ( ramcre_out ),
.ramub_n_out ( ramub_n_out ),
.ramwait_in ( 1'b1 ),
.flashcs_n_out ( ),
.flashrp_n_out ( ),
.flashststs_in ( 1'b1 )
);
 
 
 
 
 
 
 
 
iobuftri memdb_buff_0
(
.i (memdb_out[0] ),
.oe (memdb_oe ),
.o (memdb_in[0] ),
.pad (memdb_io[0] )
);
 
iobuftri memdb_buff_1
(
.i (memdb_out[1] ),
.oe (memdb_oe ),
.o (memdb_in[1] ),
.pad (memdb_io[1] )
);
 
iobuftri memdb_buff_2
(
.i (memdb_out[2] ),
.oe (memdb_oe ),
.o (memdb_in[2] ),
.pad (memdb_io[2] )
);
 
iobuftri memdb_buff_3
(
.i (memdb_out[3] ),
.oe (memdb_oe ),
.o (memdb_in[3] ),
.pad (memdb_io[3] )
);
 
iobuftri memdb_buff_4
(
.i (memdb_out[4] ),
.oe (memdb_oe ),
.o (memdb_in[4] ),
.pad (memdb_io[4] )
);
 
iobuftri memdb_buff_5
(
.i (memdb_out[5] ),
.oe (memdb_oe ),
.o (memdb_in[5] ),
.pad (memdb_io[5] )
);
 
 
iobuftri memdb_buff_6
(
.i (memdb_out[6] ),
.oe (memdb_oe ),
.o (memdb_in[6] ),
.pad (memdb_io[6] )
);
 
iobuftri memdb_buff_7
(
.i (memdb_out[7] ),
.oe (memdb_oe ),
.o (memdb_in[7] ),
.pad (memdb_io[7] )
);
iobuftri memdb_buff_8
(
.i (memdb_out[8] ),
.oe (memdb_oe ),
.o (memdb_in[8] ),
.pad (memdb_io[8] )
);
iobuftri memdb_buff_9
(
.i (memdb_out[9] ),
.oe (memdb_oe ),
.o (memdb_in[9] ),
.pad (memdb_io[9] )
);
 
iobuftri memdb_buff_10
(
.i (memdb_out[10] ),
.oe (memdb_oe ),
.o (memdb_in[10] ),
.pad (memdb_io[10] )
);
 
 
iobuftri memdb_buff_11
(
.i (memdb_out[11] ),
.oe (memdb_oe ),
.o (memdb_in[11] ),
.pad (memdb_io[11] )
);
 
iobuftri memdb_buff_12
(
.i (memdb_out[12] ),
.oe (memdb_oe ),
.o (memdb_in[12] ),
.pad (memdb_io[12] )
);
 
iobuftri memdb_buff_13
(
.i (memdb_out[13] ),
.oe (memdb_oe ),
.o (memdb_in[13] ),
.pad (memdb_io[13] )
);
 
iobuftri memdb_buff_14
(
.i (memdb_out[14] ),
.oe (memdb_oe ),
.o (memdb_in[14] ),
.pad (memdb_io[14] )
);
 
iobuftri memdb_buff_15
(
.i (memdb_out[15] ),
.oe (memdb_oe ),
.o (memdb_in[15] ),
.pad (memdb_io[15] )
);
 
 
pullup pu_ramwait ( ramwait_n );
 
mt45w8mw12
271,7 → 15,7
.lb_n ( ramlb_n_out ),
.ub_n ( ramub_n_out ),
.addr ( memadr_out ),
.dq ( memdb_io )
.dq ( MEMDB )
);
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/io_irq_2/test_define
1,28 → 1,5
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
uart_model.rcv_byte(8'h42);
uart_model.send_byte(8'h65);
uart_model.rcv_byte(8'h65);
uart_model.send_byte(8'h37);
uart_model.rcv_byte(8'h37);
uart_model.send_byte(8'h20);
uart_model.rcv_byte(8'h20);
uart_model.send_byte(8'h41);
uart_model.rcv_byte(8'h41);
uart_model.send_byte(8'h45);
uart_model.rcv_byte(8'h45);
uart_model.send_byte(8'h25);
uart_model.rcv_byte(8'h25);
cg.next(4000);
cg.exit;
end
 
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/io_irq_2/dmp_define
1,5 → 1,5
$dumpfile ("TestBench.vcd");
$dumpvars (0, TB);
$dumpvars (0, TB.dut);
 
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/tim_2/test_define
1,162 → 1,2
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
fork
begin
ps2_model.rcv_byte(8'hff,1'b1);
cg.next(5000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'haa);
cg.next(20000);
ps2_model.send_byte(8'h00);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hc8,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h64,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h50,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf2,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'h03);
ps2_model.rcv_byte(8'he8,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h03,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf3,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'h28,1'b1);
cg.next(2000);
ps2_model.send_byte(8'hfa);
ps2_model.rcv_byte(8'hf4,1'b0);
cg.next(2000);
ps2_model.send_byte(8'hfa);
cg.next(20000);
ps2_model.send_byte(8'h12);
cg.next(20000);
ps2_model.send_byte(8'h34);
cg.next(20000);
ps2_model.send_byte(8'h56);
cg.next(20000);
ps2_model.send_byte(8'h78);
cg.next(20000);
ps2_model.send_byte(8'h9a);
cg.next(20000);
ps2_model.send_byte(8'hbc);
cg.next(20000);
end
begin
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h41);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h34);
cg.next(20);
uart_model.rcv_byte(8'h37);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h4d);
cg.next(20);
uart_model.rcv_byte(8'h65);
cg.next(20);
uart_model.rcv_byte(8'h6d);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h0d);
cg.next(20);
uart_model.rcv_byte(8'h0a);
cg.next(2000);
 
uart_model.send_byte(8'h35);
 
 
 
 
 
 
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h42);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h46);
cg.next(20);
uart_model.rcv_byte(8'h31);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h4d);
cg.next(20);
uart_model.rcv_byte(8'h65);
cg.next(20);
uart_model.rcv_byte(8'h6d);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h20);
cg.next(20);
uart_model.rcv_byte(8'h0d);
cg.next(20);
uart_model.rcv_byte(8'h0a);
cg.next(2000);
 
 
 
 
 
uart_model.send_byte(8'h36);
cg.next(40000);
 
uart_model.send_byte(8'h37);
cg.next(40000);
 
uart_model.send_byte(8'h38);
cg.next(40000);
 
end
join
 
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/tim_2/dut
1,64 → 1,2
 
assign ext_irq_in = 4'b0000 ;
assign ext_rdata = 16'h0000 ;
 
assign gpio_0_in = gpio_0_out ;
assign gpio_1_in = gpio_1_out ;
assign cts_pad_in = rts_pad_out;
 
wire ps2_clk;
wire ps2_data;
 
 
 
 
 
iobuftri
data_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_data_pad_oe ),
.o ( ps2_data_pad_in ),
.pad ( ps2_data )
);
 
 
iobuftri
clk_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_clk_pad_oe ),
.o ( ps2_clk_pad_in ),
.pad ( ps2_clk )
);
 
 
 
pullup ua0(ps2_clk);
pullup ua1(ps2_data);
 
 
ps2_model
#(.CLKCNT(10'h177))
ps2_model
(
.clk ( clk ),
.reset ( reset ),
.ps2_clk ( ps2_clk ),
.ps2_data ( ps2_data )
 
 
 
);
 
 
 
 
 
uart_model #(.CLKCNT(4'hc))
uart_model (
.clk ( clk ),
.reset ( reset ),
.txd_in ( txd_pad_out ),
.rxd_out ( rxd_pad_in )
);
/trunk/projects/Mos6502/ip/T6502/sim/run/irq_2_test/test_define
1,15 → 1,2
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
while (gpio_0_out != 8'h00) cg.next(1);
cg.reset_off;
while (gpio_1_out == 8'hff) cg.next(10);
cg.next(50000);
cg.exit;
end
 
/trunk/projects/Mos6502/ip/T6502/sim/run/irq_2_test/dut
1,71 → 1,2
 
 
 
 
 
 
assign ext_irq_in = 4'b0000 ;
assign ext_rdata = 16'h0000 ;
 
assign gpio_0_in = gpio_0_out ;
assign gpio_1_in = gpio_1_out ;
assign cts_pad_in = rts_pad_out;
 
 
 
wire ps2_clk;
wire ps2_data;
 
 
 
 
 
iobuftri
data_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_data_pad_oe ),
.o ( ps2_data_pad_in ),
.pad ( ps2_data )
);
 
 
iobuftri
clk_tri_buf
(
.i ( 1'b0 ),
.oe ( ps2_clk_pad_oe ),
.o ( ps2_clk_pad_in ),
.pad ( ps2_clk )
);
 
 
 
pullup ua0(ps2_clk);
pullup ua1(ps2_data);
 
 
ps2_model
#(.CLKCNT(10'h177))
ps2_model
(
.clk ( clk ),
.reset ( reset ),
.ps2_clk ( ps2_clk ),
.ps2_data ( ps2_data )
 
 
 
);
 
 
 
 
 
uart_model #(.CLKCNT(4'hc))
uart_model (
.clk ( clk ),
.reset ( reset ),
.txd_in ( txd_pad_out ),
.rxd_out ( rxd_pad_in )
);
/trunk/projects/Mos6502/ip/T6502/sim/run/inst_2_test/test_define
1,16 → 1,4
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
while (gpio_0_out != 8'h00) cg.next(1);
while (gpio_1_out != 8'h00) cg.next(1);
cg.reset_off;
while (gpio_1_out == 8'h00) cg.next(10);
cg.next(300);
cg.exit;
end
 
 
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/inst_2_test/dmp_define
1,5 → 1,5
$dumpfile ("TestBench.vcd");
$dumpvars (0, TB);
$dumpvars (0, TB.dut);
 
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/inst_2_test/dut
1,18 → 1,5
 
 
assign ext_irq_in = 4'b0000 ;
assign ext_rdata = 16'h0000 ;
 
assign gpio_0_in = gpio_0_out ;
assign gpio_1_in = gpio_1_out ;
assign cts_pad_in = rts_pad_out;
 
 
 
 
assign ps2_data_pad_in = 1'b1;
assign ps2_clk_pad_in = 1'b1;
assign rxd_pad_in = 1'b1;
 
 
/trunk/projects/Mos6502/ip/T6502/sim/run/io_poll_2/test_define
1,20 → 1,5
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
uart_model.rcv_byte(8'h42);
uart_model.send_byte(8'h65);
uart_model.rcv_byte(8'h67);
uart_model.send_byte(8'h37);
uart_model.rcv_byte(8'h39);
cg.next(4000);
cg.exit;
end
 
 
 
/trunk/projects/Mos6502/ip/T6502_cpu/rtl/xml/T6502_cpu_inst_2_test.xml
0,0 → 1,1210
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Author : John Eaton Ouabache Designworks //
// //
// Copyright (C) 2010 Authors and OPENCORES.ORG //
// //
// This source file may be used and distributed without //
// restriction provided that this copyright statement is not //
// removed from the file and that any derivative work contains //
// the original copyright notice and the associated disclaimer. //
// //
// This source file is free software; you can redistribute it //
// and/or modify it under the terms of the GNU Lesser General //
// Public License as published by the Free Software Foundation; //
// either version 2.1 of the License, or (at your option) any //
// later version. //
// //
// This source is distributed in the hope that it will be //
// useful, but WITHOUT ANY WARRANTY; without even the implied //
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
// PURPOSE. See the GNU Lesser General Public License for more //
// details. //
// //
// You should have received a copy of the GNU Lesser General //
// Public License along with this source; if not, download it //
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<spirit:component
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502_cpu</spirit:name>
<spirit:version>inst_2_test</spirit:version>
 
<spirit:componentGenerators>
 
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502_cpu</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_cpu_inst_2_test</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.inst_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
<spirit:componentGenerator>
<spirit:name>leaf_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_leaf</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>T6502_cpu</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>T6502_cpu_inst_2_test</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
 
<spirit:fileSets>
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.inst_2_test</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.test_define.inst_2_test</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.rtl</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
 
 
 
</spirit:fileSet>
</spirit:fileSets>
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>sim</spirit:name>
<spirit:envIdentifier>::</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-sim</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:views>
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:value spirit:id="RAM_WORDS">2048</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RAM_ADD">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_WORDS">4096</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_ADD">12</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="ROM_FILE">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_WORDS">ROM_WORDS</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_ADD">ROM_ADD</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PROG_ROM_FILE">ROM_FILE</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="VEC_TABLE">8'hff</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="BOOT_VEC">8'hfc</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STATE_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO">0</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_SIZE">3</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="RX_FIFO_WORDS">8</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="PERIOD">40</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TIMEOUT">200000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="TEST_NAME">"inst_2_test"</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
<spirit:ports>
 
 
 
 
</spirit:ports>
 
</spirit:model>
 
 
 
<nodes>
 
<node><name>clk</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>reset</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>enable</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>mem_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>nmi</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
 
<node><name>vec_int</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>prog_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>prog_rom_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>pg0_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>alu_status</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>prog_counter</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>pg0_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>pg0_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>pg0_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>mem_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>mem_rd</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>mem_wr</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>mem_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>stk_push</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>stk_push_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
<node><name>stk_pull</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire></spirit:wire>
</node>
 
<node><name>stk_pull_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
 
 
 
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>write_data</name></node>
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>addr_pin</name></node>
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>io_rdata</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>boot_data</name></node>
 
 
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>sram_data</name></node>
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>shadow_data</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>din</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>dout_oe</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>nmi_in</name>
</node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>rx_irq</name>
</node>
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>tx_irq</name>
</node>
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>ps2_data_avail</name></node>
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>rd_pin</name>
</node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>timer_irq</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>we_pin</name>
</node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>halt</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>vector</name></node>
 
 
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CS0</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CSD</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CSE</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CSI</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CSB</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>CSP</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>cpu_pg0_data</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>prog_rom_wr</name></node>
 
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>core_ram_l_cs</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>core_ram_h_cs</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>pg00_ram_rd</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>pg00_ram_l_wr</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><name>pg00_ram_h_wr</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>io_module_pic_irq_in</name></node>
<node><spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs><spirit:wire><spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire><name>io_module_vic_irq_in</name></node>
 
 
 
<node><name>ext_add</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>23</spirit:left><spirit:right>1</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>ext_irq_in</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>3</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>ext_wdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>ext_rdata</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>ext_cs</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
<node><name>gpio_0_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
<node><name>gpio_1_out</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</node>
 
 
 
 
</nodes>
 
 
 
<spirit:adHocConnections>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>clk</spirit:name>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="clk"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>reset</spirit:name>
<spirit:internalPortReference spirit:componentRef="cg" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="reset"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>addr_pin</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="addr_pin"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="mem_add" />
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="mem_add" />
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>addr_pin[7:0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="addr" />
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="waddr" />
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>addr_pin[ROM_ADD:1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="raddr" />
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="waddr" />
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>addr_pin[PROG_ROM_ADD:1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="waddr" />
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="raddr" />
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="waddr" />
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>addr_pin[RAM_ADD:1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="waddr" />
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="raddr" />
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="waddr" />
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="raddr" />
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>io_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="io_rdata"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>boot_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="boot_data"/>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>ext_rdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="ext_rdata"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_rdata"/>
<spirit:externalPortReference spirit:portRef="ext_rdata"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>sram_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="sram_data"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>sram_data[7:0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="rdata" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>sram_data[15:8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="rdata" />
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>pg0_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="pg0_data"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>pg0_data[7:0]</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="rdata" />
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>pg0_data[15:8]</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="rdata" />
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>shadow_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="shadow_data"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>din</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="din"/>
</spirit:adHocConnection>
 
 
 
 
<spirit:adHocConnection>
<spirit:name>gpio_0_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="gpio_0_out"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="gpio_0_in"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>gpio_1_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="gpio_1_out"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="gpio_1_in"/>
</spirit:adHocConnection>
 
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>txd_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="txd_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="rxd_pad_in"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>1'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="cts_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rts_pad_out</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="rts_pad_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_clk_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ps2_clk_pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ps2_clk_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_pad_oe</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ps2_data_pad_oe"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ps2_data_pad_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CS0</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CS0"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CSD</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CSD"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CSE</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CSE"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="cs_m"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="cs_mem"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CSI</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CSI"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="cs_i"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CSB</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CSB"/>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>CSP</spirit:name>
<spirit:internalPortReference spirit:componentRef="micro_bus" spirit:portRef="CSP"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>alu_status</spirit:name>
<spirit:externalPortReference spirit:portRef="alu_status"/>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="alu_status"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>enable</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="enable" />
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="enable" />
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="wait_n" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>prog_counter</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="prog_counter" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>prog_counter[PROG_ROM_ADD:1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="raddr" />
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>prog_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="prog_data"/>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="rdata"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>pg0_add</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="pg0_add"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>pg0_add[7:1]</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="raddr" />
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="waddr" />
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="raddr" />
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="waddr" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>pg0_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="pg0_rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>pg0_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="pg0_wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>cpu_pg0_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="pg0_data"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>din</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="mem_rdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>write_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="mem_wdata"/>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="wdata"/>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="wdata"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="wdata"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="wdata"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>we_pin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="mem_wr"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="wr"/>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="wr"/>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="wr"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rd_pin</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="mem_rd"/>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>vector</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="vec_int"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="vector"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>nmi_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="nmi"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="int_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>stk_push</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="stk_push"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="push"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>stk_push_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="stk_push_data"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="din"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>stk_pull</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="stk_pull"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="pop"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>stk_pull_data</spirit:name>
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="stk_pull_data"/>
<spirit:internalPortReference spirit:componentRef="stack_ram" spirit:portRef="dout"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>prog_rom_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>prog_rom_wdata</spirit:name>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="wdata"/>
<spirit:internalPortReference spirit:componentRef="sh_prog_rom" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>core_ram_l_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="core_ram_l" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>core_ram_h_cs</spirit:name>
<spirit:internalPortReference spirit:componentRef="core_ram_h" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>pg00_ram_rd</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>pg00_ram_l_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>pg00_ram_h_wr</spirit:name>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>rx_irq</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="rx_irq"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tx_irq</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="tx_irq"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ps2_data_avail</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ps2_data_avail"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>io_module_pic_irq_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="pic_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>io_module_vic_irq_in</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="vic_irq_in"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>timer_irq</spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="timer_irq"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_add</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_add"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_add"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ext_wdata</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_wdata"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_wdata"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ext_ub</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_ub"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_ub"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ext_lb</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_lb"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_lb"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>ext_rd</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_rd"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_rd"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_stb</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_stb"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_stb"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_wr</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_wr"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_wr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_cs</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_cs"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_cs"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>ext_ack</spirit:name>
<spirit:externalPortReference spirit:portRef="ext_ack"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="ext_ack"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name></spirit:name>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="pic_irq"/>
<spirit:internalPortReference spirit:componentRef="io_module" spirit:portRef="pic_nmi"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>1'b1</spirit:name>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="cs"/>
<spirit:internalPortReference spirit:componentRef="prog_rom" spirit:portRef="rd"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_l" spirit:portRef="cs"/>
<spirit:internalPortReference spirit:componentRef="pg00_ram_h" spirit:portRef="cs"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>'b0</spirit:name>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="wr"/>
<spirit:internalPortReference spirit:componentRef="boot_rom" spirit:portRef="wdata"/>
</spirit:adHocConnection>
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Mos6502</spirit:library>
<spirit:name>T6502_cpu</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>VEC_TABLE</name><value>VEC_TABLE</value></parameter>
<parameter><name>BOOT_VEC</name><value>BOOT_VEC</value></parameter>
<parameter><name>STATE_SIZE</name><value>STATE_SIZE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>io_module</spirit:instanceName>
 
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>io</spirit:library>
<spirit:name>io_module</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>BASE_WIDTH</name><value>0</value></parameter>
<parameter><name>ADDR_WIDTH</name><value>8</value></parameter>
<parameter><name>TX_FIFO</name><value>TX_FIFO</value></parameter>
<parameter><name>TX_FIFO_SIZE</name><value>TX_FIFO_SIZE</value></parameter>
<parameter><name>TX_FIFO_WORDS</name><value>TX_FIFO_WORDS</value></parameter>
<parameter><name>RX_FIFO</name><value>RX_FIFO</value></parameter>
<parameter><name>RX_FIFO_SIZE</name><value>RX_FIFO_SIZE</value></parameter>
<parameter><name>STARTUP</name><value>STARTUP</value></parameter>
<parameter><name>FONT</name><value>FONT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>micro_bus</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>logic</spirit:library>
<spirit:name>micro_bus</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>stack_ram</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_lifo</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>16</value></parameter>
<parameter><name>SIZE</name><value>8</value></parameter>
<parameter><name>WORDS</name><value>256</value></parameter>
</parameters>
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>boot_rom</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>16</value></parameter>
<parameter><name>ADDR</name><value>ROM_ADD</value></parameter>
<parameter><name>WORDS</name><value>ROM_WORDS</value></parameter>
<parameter><name>DEFAULT</name><value>16'hffff</value></parameter>
<parameter><name>INIT_FILE</name><value>ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>prog_rom</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>16</value></parameter>
<parameter><name>ADDR</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>DEFAULT</name><value>16'hffff</value></parameter>
<parameter><name>INIT_FILE</name><value>PROG_ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>sh_prog_rom</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>16</value></parameter>
<parameter><name>ADDR</name><value>PROG_ROM_ADD</value></parameter>
<parameter><name>WORDS</name><value>PROG_ROM_WORDS</value></parameter>
<parameter><name>DEFAULT</name><value>16'hffff</value></parameter>
<parameter><name>INIT_FILE</name><value>PROG_ROM_FILE</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>core_ram_l</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>8</value></parameter>
<parameter><name>ADDR</name><value>RAM_ADD</value></parameter>
<parameter><name>WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>DEFAULT</name><value>8'hff</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
<spirit:componentInstance>
<spirit:instanceName>core_ram_h</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>8</value></parameter>
<parameter><name>ADDR</name><value>RAM_ADD</value></parameter>
<parameter><name>WORDS</name><value>RAM_WORDS</value></parameter>
<parameter><name>DEFAULT</name><value>8'hff</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>pg00_ram_l</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>8</value></parameter>
<parameter><name>ADDR</name><value>7</value></parameter>
<parameter><name>WORDS</name><value>128</value></parameter>
<parameter><name>DEFAULT</name><value>8'hff</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>pg00_ram_h</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>WIDTH</name><value>8</value></parameter>
<parameter><name>ADDR</name><value>7</value></parameter>
<parameter><name>WORDS</name><value>128</value></parameter>
<parameter><name>DEFAULT</name><value>8'hff</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
<spirit:componentInstance>
<spirit:instanceName>cg</spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>Testbench</spirit:library>
<spirit:name>clock_gen</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
<parameters>
<parameter><name>PERIOD</name><value>PERIOD</value></parameter>
<parameter><name>TIMEOUT</name><value>TIMEOUT</value></parameter>
</parameters>
</spirit:componentInstance>
 
 
 
 
 
 
</spirit:componentInstances>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</spirit:component>
/trunk/projects/Mos6502/ip/T6502_cpu/rtl/xml/T6502_cpu.xml
120,6 → 120,13
<spirit:wire><spirit:direction>input</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><name>vec_int</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
<spirit:vector><spirit:left>7</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>prog_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
126,6 → 133,7
<spirit:vector><spirit:left>15</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
 
 
<spirit:port><name>pg0_data</name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>input</spirit:direction>
/trunk/projects/Mos6502/ip/T6502_cpu/rtl/verilog/top.rtl
0,0 → 1,24
 
 
 
 
//=============================================================================
// Rtl Glue Logic
//=============================================================================
assign cpu_pg0_data = pg0_add[0]?pg0_data[15:8]:pg0_data[7:0];
assign prog_rom_wr = we_pin && CSP;
assign prog_rom_wdata = {write_data,write_data};
assign core_ram_l_cs = CSD && (!addr_pin[0]);
assign core_ram_h_cs = CSD && ( addr_pin[0]);
assign pg00_ram_rd = pg0_rd||(CS0 && rd_pin);
assign pg00_ram_l_wr = (pg0_wr||(CS0 && we_pin)) && (!pg0_add[0]);
assign pg00_ram_h_wr = (pg0_wr||(CS0 && we_pin)) && ( pg0_add[0]);
assign io_module_pic_irq_in = {ext_irq_in[2:0],ps2_data_avail,tx_irq,rx_irq,timer_irq};
assign io_module_vic_irq_in = {ext_irq_in[2:0],ps2_data_avail,tx_irq,rx_irq,timer_irq};
 
//=============================================================================
//
//=============================================================================
 
 
/trunk/projects/Mos6502/ip/T6502_cpu/rtl/verilog/tb.test_define.inst_2_test
0,0 → 1,16
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
while (gpio_0_out != 8'h00) cg.next(1);
while (gpio_1_out != 8'h00) cg.next(1);
cg.reset_off;
while (gpio_1_out == 8'h00) cg.next(10);
cg.next(300);
cg.exit;
end
 
/trunk/projects/Mos6502/ip/T6502_cpu/soc/design.soc
27,21 → 27,47
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<design>
 
<components>
 
 
<component>
 
<name>T6502_cpu</name>
<variant>T6502_cpu</variant>
<version></version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
<component>
<name>T6502_cpu</name>
<variant>T6502_cpu_inst_2_test</variant>
<version>inst_2_test</version>
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
 
 
 
</components>
 
 
 
<sims>
<sim>
<name>inst_2_test</name>
<variant>T6502_cpu</variant>
<variant>T6502_cpu_inst_2_test</variant>
<parameters>
<parameter><name>RAM_WORDS</name><value>2048</value></parameter>
<parameter><name>RAM_ADD</name><value>11</value></parameter>
51,21 → 77,12
<parameter><name>PROG_ROM_WORDS</name><value>2048</value></parameter>
<parameter><name>PROG_ROM_ADD</name><value>11</value></parameter>
<parameter><name>PROG_ROM_FILE</name><value>"../../../../../../Mos6502/sw/inst_2_test/inst_2_test.abs16"</value></parameter>
<parameter><name>TIMEOUT</name><value>60000</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
</sim>
</sims>
 
<code_coverage>
<cover>
<name>T6502_cpu</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
 
 
 
</component>
</components>
</design>
/trunk/projects/Mos6502/ip/T6502_cpu/sim/run/inst_2_test/test_define
1,13 → 1,2
initial
begin
$display(" ");
$display(" ===================================================");
$display(" Test Start");
$display(" ===================================================");
$display(" ");
cg.next(20);
cg.reset_off;
cg.next(3000);
cg.exit;
end
 
 
/trunk/projects/logic/bin/repeater
0,0 → 1,133
eval 'exec `which perl` -S $0 ${1+"$@"}'
if 0;
 
#/**********************************************************************/
#/* */
#/* ------- */
#/* / SOC \ */
#/* / GEN \ */
#/* / TOOL \ */
#/* ============== */
#/* | | */
#/* |____________| */
#/* */
#/* */
#/* */
#/* */
#/* Author(s): */
#/* - John Eaton, jt_eaton@opencores.org */
#/* */
#/**********************************************************************/
#/* */
#/* Copyright (C) <2010> <Ouabache Design Works> */
#/* */
#/* This source file may be used and distributed without */
#/* restriction provided that this copyright statement is not */
#/* removed from the file and that any derivative work contains */
#/* the original copyright notice and the associated disclaimer. */
#/* */
#/* This source file is free software; you can redistribute it */
#/* and/or modify it under the terms of the GNU Lesser General */
#/* Public License as published by the Free Software Foundation; */
#/* either version 2.1 of the License, or (at your option) any */
#/* later version. */
#/* */
#/* This source is distributed in the hope that it will be */
#/* useful, but WITHOUT ANY WARRANTY; without even the implied */
#/* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR */
#/* PURPOSE. See the GNU Lesser General Public License for more */
#/* details. */
#/* */
#/* You should have received a copy of the GNU Lesser General */
#/* Public License along with this source; if not, download it */
#/* from http://www.opencores.org/lgpl.shtml */
#/* */
#/**********************************************************************/
 
# ToDO: add handling unaligned words
 
 
############################################################################
# General PERL config
############################################################################
use Getopt::Long;
use English;
use File::Basename;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
############################################################################
### Process the options
############################################################################
 
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h"
) || die "(use '$program_name -h' for help)";
 
 
##############################################################################
## Help option
##############################################################################
if ( ($opt_h eq "1") )
{ print "\n type test filename ( no extension)";
print "\n";
exit 1;
}
 
 
##############################################################################
##
##############################################################################
 
use Cwd;
use XML::LibXML;
 
$home = cwd();
 
 
 
 
 
#############################################################################
##
##
#############################################################################
 
my $prefix = $ARGV[0];
my $component = $ARGV[1];
my $variant = $ARGV[2];
print "Repeater\n" ;
 
my $index =0;
 
while($ARGV[$index])
{
my $arg = $ARGV[$index];
$index = $index +1;
print " $index -- $arg \n" ;
 
}
 
 
 
1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/projects/logic/bin/repeater Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr_default.xml =================================================================== --- trunk/projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr_default.xml (nonexistent) +++ trunk/projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr_default.xml (revision 88) @@ -0,0 +1,357 @@ + + + + +opencores.org +logic +serial_rcvr +default + + + + + + + + + + verilog_maker + 104.0 + none + ./tools/bin/build_verilog + design + + + component + serial_rcvr + + + variant + serial_rcvr_default + + + destination + ../verilog/top.default + + + + + + + + leaf_maker + 105.0 + none + ./tools/bin/build_leaf + design + + + component + serial_rcvr + + + variant + serial_rcvr_default + + + + + + + + + + + fs-sim + + + + ../verilog/top.default + verilogSourceTop + + + + + ../verilog/top.ext + verilogFragment + + + + + ../verilog/tb.test_define.default + verilogFragment + + + + + + + + + + + + + + sim + :: + Verilog + + + fs-sim + + + + + + + + + +8 +4 +4'b0111 +0 +4 +16 +40 +400000 + + + + + + + + + + + +clk +wire + + + +reset +wire + + + +edge_enable +wire + + + +parity_enable +wire + + + +parity_type +wire + + + +parity_force +wire + + + +start_value +wire + + + +stop_value +wire + + + +pad_in +wire + + + +rcv_stb +wire + + + +data_out +wire + +WIDTH-10 + + +parity_error +wire + + + +stop_error +wire + + + +data_avail +wire + + + + + + + + + + clk + + + + + + reset + + + + + + edge_enable + + + + + parity_enable + + + + + parity_type + + + + + parity_force + + + + + start_value + + + + + pad_in + + + + + rcv_stb + + + + + data_out + + + + + parity_error + + + + + stop_error + + + + + data_avail + + + + + + + + + + + + +dut + +opencores.org +logic +serial_rcvr + + + + WIDTHWIDTH + SIZESIZE + SAMPLESAMPLE + RX_FIFORX_FIFO + RX_FIFO_SIZERX_FIFO_SIZE + RX_FIFO_WORDSRX_FIFO_WORDS + + + + + +cg + +opencores.org +Testbench +clock_gen + + + + PERIODPERIOD + TIMEOUTTIMEOUT + + + + + + + + + + + + + + + + Index: trunk/projects/logic/ip/serial_rcvr/rtl/verilog/tb.test_define.default =================================================================== --- trunk/projects/logic/ip/serial_rcvr/rtl/verilog/tb.test_define.default (nonexistent) +++ trunk/projects/logic/ip/serial_rcvr/rtl/verilog/tb.test_define.default (revision 88) @@ -0,0 +1,57 @@ + + + +initial + begin + while(1) + begin + cg.next(20); + R_edge_enable = 1'b1; + cg.next(1); + R_edge_enable = 1'b0; + end + end + + + +initial + begin + $display(" "); + $display(" ==================================================="); + $display("%t Start Test ",$realtime ); + $display(" ==================================================="); + $display(" "); + + R_edge_enable = 1'b0; + R_parity_enable = 1'b1; + R_parity_type = 1'b0; + R_parity_force = 1'b0; + R_start_value = 1'b0; + R_stop_value = 1'b1; + R_pad_in = 1'b1; + R_rcv_stb = 1'b0; + + cg.next(12); + cg.reset_off; + cg.next(88); + + $display("%t Test enabled ",$realtime ); + R_parity_enable = 1'b1; + R_pad_in = 1'b0; + cg.next(1800); + R_pad_in = 1'b1; + cg.next(400); + R_pad_in = 1'b0; + + cg.next(2000); + + R_pad_in = 1'b1; + + cg.next(9000); + + cg.exit; +end + + + + Index: trunk/projects/logic/ip/serial_rcvr/rtl/verilog/top.ext =================================================================== --- trunk/projects/logic/ip/serial_rcvr/rtl/verilog/top.ext (nonexistent) +++ trunk/projects/logic/ip/serial_rcvr/rtl/verilog/top.ext (revision 88) @@ -0,0 +1,22 @@ + + + + +reg R_edge_enable ; +reg R_parity_enable ; +reg R_parity_type ; +reg R_parity_force ; +reg R_start_value ; +reg R_stop_value ; +reg R_pad_in ; +reg R_rcv_stb ; + + +assign edge_enable = R_edge_enable ; +assign parity_enable = R_parity_enable ; +assign parity_type = R_parity_type ; +assign parity_force = R_parity_force ; +assign start_value = R_start_value ; +assign stop_value = R_stop_value ; +assign pad_in = R_pad_in ; +assign rcv_stb = R_rcv_stb ; Index: trunk/projects/logic/ip/serial_rcvr/soc/design.soc =================================================================== --- trunk/projects/logic/ip/serial_rcvr/soc/design.soc (revision 87) +++ trunk/projects/logic/ip/serial_rcvr/soc/design.soc (revision 88) @@ -27,40 +27,50 @@ // from http://www.opencores.org/lgpl.shtml // // // --> + + + + - - serial_rcvr serial_rcvr + + + serial_rcvr + TB.dut + + + - - - - -default -serial_rcvr - -"../../bench/verilog/models/clock_gen.v" - - - - + +serial_rcvr +serial_rcvr_default +default serial_rcvr - TB.dut + TB.dut.dut + + + + +default +serial_rcvr_default + - - + + + +
/trunk/projects/logic/ip/serial_rcvr/sim/run/default/test_define
1,57 → 1,3
 
 
 
initial
begin
while(1)
begin
cg.next(20);
R_edge_enable = 1'b1;
cg.next(1);
R_edge_enable = 1'b0;
end
end
 
 
 
initial
begin
$display(" ");
$display(" ===================================================");
$display("%t Start Test ",$realtime );
$display(" ===================================================");
$display(" ");
 
R_edge_enable = 1'b0;
R_parity_enable = 1'b1;
R_parity_type = 1'b0;
R_parity_force = 1'b0;
R_start_value = 1'b0;
R_stop_value = 1'b1;
R_pad_in = 1'b1;
R_rcv_stb = 1'b0;
 
cg.next(12);
cg.reset_off;
cg.next(88);
 
$display("%t Test enabled ",$realtime );
R_parity_enable = 1'b1;
R_pad_in = 1'b0;
cg.next(1800);
R_pad_in = 1'b1;
cg.next(400);
R_pad_in = 1'b0;
 
cg.next(2000);
 
R_pad_in = 1'b1;
 
cg.next(9000);
 
cg.exit;
end
 
 
 
 
/trunk/projects/logic/ip/serial_rcvr/sim/run/default/dut
1,22 → 1,2
 
 
 
 
reg R_edge_enable ;
reg R_parity_enable ;
reg R_parity_type ;
reg R_parity_force ;
reg R_start_value ;
reg R_stop_value ;
reg R_pad_in ;
reg R_rcv_stb ;
 
 
assign edge_enable = R_edge_enable ;
assign parity_enable = R_parity_enable ;
assign parity_type = R_parity_type ;
assign parity_force = R_parity_force ;
assign start_value = R_start_value ;
assign stop_value = R_stop_value ;
assign pad_in = R_pad_in ;
assign rcv_stb = R_rcv_stb ;
/trunk/projects/logic/ip/uart/soc/design.soc
27,6 → 27,9
// from http://www.opencores.org/lgpl.shtml //
// //
-->
 
<designs>
 
<components>
<component>
33,12 → 36,20
<name>uart</name>
<variant>uart</variant>
<version></version>
<code_coverage>
<cover>
<name>uart</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
 
</component>
 
</components>
 
 
<sims>
 
<sims>
<sim>
<name>default</name>
<variant>uart</variant>
58,6 → 69,7
<model>"../../bench/verilog/models/io_probe.v"</model>
</models>
</sim>
 
<sim>
<name>divide</name>
<variant>uart</variant>
64,7 → 76,6
<parameters>
<parameter><name>DIV</name><value>1</value></parameter>
<parameter><name>TIMEOUT</name><value>3000000</value></parameter>
 
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
73,15 → 84,11
<model>"../../bench/verilog/models/io_probe.v"</model>
</models>
</sim>
 
</sims>
 
 
<code_coverage>
<cover>
<name>uart</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
</designs>
 
 
 
88,6 → 95,4
 
 
 
</component>
 
</components>
/trunk/projects/logic/ip/vga_char_ctrl/rtl/xml/vga_char_ctrl.xml
46,6 → 46,31
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>verilog_maker</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:generatorExe>./tools/bin/build_verilog</spirit:generatorExe>
<spirit:vendorExtensions><generatorType>design</generatorType></spirit:vendorExtensions>
<spirit:parameters>
<spirit:parameter>
<spirit:name>component</spirit:name>
<spirit:value>vga_char_ctrl</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>variant</spirit:name>
<spirit:value>vga_char_ctrl</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>../verilog/top.xxx</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
 
<spirit:componentGenerator>
<spirit:name>leaf_maker</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
88,6 → 113,17
<spirit:modelParameter><spirit:value spirit:id="STARTUP">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="FONT">"NONE"</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="CHARACTER_DECODE_DELAY">4</spirit:value></spirit:modelParameter>
 
<spirit:modelParameter><spirit:value spirit:id="H_ACTIVE">640</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="H_FRONT_PORCH">16</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="H_SYNCH">96</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="H_BACK_PORCH">48</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="H_TOTAL">800</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="V_ACTIVE">480</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="V_FRONT_PORCH">11</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="V_SYNCH">2</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="V_BACK_PORCH">31</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:value spirit:id="V_TOTAL">524</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
<spirit:ports>
183,25 → 219,10
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName></spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
 
 
 
<spirit:fileSets>
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
208,14 → 229,6
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../variants/vga_char_ctrl/defines.v</spirit:name>
<spirit:fileType>verilogInclude</spirit:fileType>
</spirit:file>
 
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top</spirit:name>
<spirit:fileType>verilogSourceTop</spirit:fileType>
</spirit:file>
243,6 → 256,14
<spirit:name>../verilog/video_out</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/top.body</spirit:name>
<spirit:fileType>verilogFragment</spirit:fileType>
</spirit:file>
 
 
</spirit:fileSet>
 
 
250,4 → 271,20
</spirit:fileSets>
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName></spirit:instanceName>
<spirit:componentRef>
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>cde_sram</spirit:name>
<spirit:version></spirit:version>
</spirit:componentRef>
</spirit:componentInstance>
 
 
</spirit:componentInstances>
 
 
</spirit:component>
/trunk/projects/logic/ip/vga_char_ctrl/rtl/verilog/char_display
1,7 → 1,9
 
module `VARIANT`CHAR_DISPLAY
#(parameter STARTUP="NONE",
parameter FONT="NONE")
parameter FONT="NONE",
parameter H_ACTIVE=0
)
 
(
input wire clk,
28,7 → 30,7
 
always @ (*)
begin
char_read_addr = (char_line[6:0] * `H_ACTIVE / 8 ) + char_column[6:0];
char_read_addr = (char_line[6:0] * H_ACTIVE / 8 ) + char_column[6:0];
end
 
 
/trunk/projects/logic/ip/vga_char_ctrl/rtl/verilog/svga_timing_generation
2,21 → 2,31
//---------------------------------------------------
 
module `VARIANT`SVGA_TIMING_GENERATION
#(parameter CHARACTER_DECODE_DELAY=4)
#(parameter CHARACTER_DECODE_DELAY=4,
parameter H_ACTIVE=640,
parameter H_FRONT_PORCH=16,
parameter H_SYNCH=96,
parameter H_BACK_PORCH=48,
parameter H_TOTAL=800,
parameter V_ACTIVE=480,
parameter V_FRONT_PORCH=11,
parameter V_SYNCH=2,
parameter V_BACK_PORCH=31,
parameter V_TOTAL=524
)
(
 
input clk, // pixel clock
input reset, // reset
output reg h_synch, // horizontal synch for VGA connector
output reg v_synch, // vertical synch for VGA connector
output reg blank, // composite blanking
output reg [10:0] pixel_count, // counts the pixels in a line
output reg [9:0] line_count, // counts the display lines
output reg [2:0] subchar_pixel, // pixel position within the character
output reg [2:0] subchar_line, // identifies the line number within a character block
output reg [6:0] char_column, // character number on the current line
output reg [6:0] char_line // line number on the screen
 
input clk, // pixel clock
input reset, // reset
output reg h_synch, // horizontal synch for VGA connector
output reg v_synch, // vertical synch for VGA connector
output reg blank, // composite blanking
output reg [10:0] pixel_count, // counts the pixels in a line
output reg [9:0] line_count, // counts the display lines
output reg [2:0] subchar_pixel,// pixel position within the character
output reg [2:0] subchar_line, // identifies the line number within a character block
output reg [6:0] char_column, // character number on the current line
output reg [6:0] char_line // line number on the screen
);
 
40,7 → 50,7
// on reset set pixel counter to 0
pixel_count <= 11'd0;
else if (pixel_count == (`H_TOTAL - 1))
else if (pixel_count == (H_TOTAL - 1))
// last pixel in the line, so reset pixel counter
pixel_count <= 11'd0;
54,11 → 64,11
// on reset remove h_synch
h_synch <= 1'b0;
else if (pixel_count == (`H_ACTIVE + `H_FRONT_PORCH - 1))
else if (pixel_count == (H_ACTIVE + H_FRONT_PORCH - 1))
// start of h_synch
h_synch <= 1'b1;
else if (pixel_count == (`H_TOTAL - `H_BACK_PORCH - 1))
else if (pixel_count == (H_TOTAL - H_BACK_PORCH - 1))
// end of h_synch
h_synch <= 1'b0;
end
69,11 → 79,11
// on reset set line counter to 0
line_count <= 10'd0;
else if ((line_count == (`V_TOTAL - 1)) & (pixel_count == (`H_TOTAL - 1)))
else if ((line_count == (V_TOTAL - 1)) & (pixel_count == (H_TOTAL - 1)))
// last pixel in last line of frame, so reset line counter
line_count <= 10'd0;
else if ((pixel_count == (`H_TOTAL - 1)))
else if ((pixel_count == (H_TOTAL - 1)))
// last pixel but not last line, so increment line counter
line_count <= line_count + 1;
end
84,13 → 94,13
// on reset remove v_synch
v_synch <= 1'b0;
 
else if ((line_count == (`V_ACTIVE + `V_FRONT_PORCH - 1) &
(pixel_count == `H_TOTAL - 1)))
else if ((line_count == (V_ACTIVE + V_FRONT_PORCH - 1) &
(pixel_count == H_TOTAL - 1)))
// start of v_synch
v_synch <= 1'b1;
else if ((line_count == (`V_TOTAL - `V_BACK_PORCH - 1)) &
(pixel_count == (`H_TOTAL - 1)))
else if ((line_count == (V_TOTAL - V_BACK_PORCH - 1)) &
(pixel_count == (H_TOTAL - 1)))
// end of v_synch
v_synch <= 1'b0;
end
104,11 → 114,11
// on reset remove the h_blank
h_blank <= 1'b0;
 
else if (pixel_count == (`H_ACTIVE -2))
else if (pixel_count == (H_ACTIVE -2))
// start of HBI
h_blank <= 1'b1;
else if (pixel_count == (`H_TOTAL -2))
else if (pixel_count == (H_TOTAL -2))
// end of HBI
h_blank <= 1'b0;
end
122,13 → 132,13
// on reset remove v_blank
v_blank <= 1'b0;
 
else if ((line_count == (`V_ACTIVE - 1) &
(pixel_count == `H_TOTAL - 2)))
else if ((line_count == (V_ACTIVE - 1) &
(pixel_count == H_TOTAL - 2)))
// start of VBI
v_blank <= 1'b1;
else if ((line_count == (`V_TOTAL - 1)) &
(pixel_count == (`H_TOTAL - 2)))
else if ((line_count == (V_TOTAL - 1)) &
(pixel_count == (H_TOTAL - 2)))
// end of VBI
v_blank <= 1'b0;
end
168,11 → 178,11
// on reset set line counter to 0
subchar_line <= 3'b000;
 
else if ((line_count == (`V_TOTAL - 1)) & (pixel_count == (`H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
else if ((line_count == (V_TOTAL - 1)) & (pixel_count == (H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
// reset line counter
subchar_line <= 3'b000;
 
else if (pixel_count == (`H_TOTAL - 1) - CHARACTER_DECODE_DELAY)
else if (pixel_count == (H_TOTAL - 1) - CHARACTER_DECODE_DELAY)
// increment line counter
subchar_line <= line_count + 1;
end
183,7 → 193,7
// reset to 5 so that the first character data can be latched
subchar_pixel <= 3'b101;
else if (pixel_count == ((`H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
else if (pixel_count == ((H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
// reset to 5 so that the first character data can be latched
subchar_pixel <= 3'b101;
226,7 → 236,7
char_line <= 7'd0;
end
else if (pixel_count == ((`H_TOTAL - 1) - CHARACTER_DECODE_DELAY)) begin
else if (pixel_count == ((H_TOTAL - 1) - CHARACTER_DECODE_DELAY)) begin
// last pixel but not last line, so increment line counter
char_line_count <= char_line_count_iter;
char_line <= char_line_count_iter[9:3];
243,11 → 253,11
if (reset)
reset_char_column <= 1'b0;
 
else if (pixel_count == ((`H_ACTIVE - 2) - CHARACTER_DECODE_DELAY))
else if (pixel_count == ((H_ACTIVE - 2) - CHARACTER_DECODE_DELAY))
// start of HBI
reset_char_column <= 1'b1;
else if (pixel_count == ((`H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
else if (pixel_count == ((H_TOTAL - 1) - CHARACTER_DECODE_DELAY))
// end of HBI
reset_char_column <= 1'b0;
end
256,13 → 266,13
if (reset)
reset_char_line <= 1'b0;
 
else if ((line_count == (`V_ACTIVE - 1)) &
(pixel_count == ((`H_ACTIVE - 1) - CHARACTER_DECODE_DELAY)))
else if ((line_count == (V_ACTIVE - 1)) &
(pixel_count == ((H_ACTIVE - 1) - CHARACTER_DECODE_DELAY)))
// start of VBI
reset_char_line <= 1'b1;
else if ((line_count == (`V_TOTAL - 1)) &
(pixel_count == ((`H_TOTAL - 1) - CHARACTER_DECODE_DELAY)))
else if ((line_count == (V_TOTAL - 1)) &
(pixel_count == ((H_TOTAL - 1) - CHARACTER_DECODE_DELAY)))
// end of VBI
reset_char_line <= 1'b0;
end
/trunk/projects/logic/ip/vga_char_ctrl/rtl/verilog/top
20,7 → 20,17
module `VARIANT
#(parameter STARTUP="NONE",
parameter FONT="NONE",
parameter CHARACTER_DECODE_DELAY=4
parameter CHARACTER_DECODE_DELAY=4,
parameter H_ACTIVE=640,
parameter H_FRONT_PORCH=16,
parameter H_SYNCH=96,
parameter H_BACK_PORCH=48,
parameter H_TOTAL=800,
parameter V_ACTIVE=480,
parameter V_FRONT_PORCH=11,
parameter V_SYNCH=2,
parameter V_BACK_PORCH=31,
parameter V_TOTAL=524
)
(
 
59,7 → 69,6
wire [2:0] subchar_line; // identifies the line number within a character block
wire [6:0] char_column; // character number on the current line
wire [6:0] char_line; // line number on the screen
 
wire pixel_on;
wire cursor_on;
66,23 → 75,13
 
 
 
always@(posedge clk)
if(reset) address <= 14'b00000000000000;
else
if(add_l_load) address[7:0] <= wdata;
else
if(add_h_load) address[13:8] <= wdata[5:0];
else
if(ascii_load) address <= address+ 14'b0000000000001;
else address <= address;
 
 
// instantiate the character generator
`VARIANT`CHAR_DISPLAY
#(.STARTUP(STARTUP),
.FONT(FONT))
.FONT(FONT),
.H_ACTIVE(H_ACTIVE))
CHAR_DISPLAY
(
.clk ( clk ),
100,7 → 99,18
 
// instantiate the video timing generator
`VARIANT`SVGA_TIMING_GENERATION
#(.CHARACTER_DECODE_DELAY(CHARACTER_DECODE_DELAY))
#(.CHARACTER_DECODE_DELAY(CHARACTER_DECODE_DELAY),
.H_ACTIVE(H_ACTIVE),
.H_FRONT_PORCH(H_FRONT_PORCH),
.H_SYNCH(H_SYNCH),
.H_BACK_PORCH(H_BACK_PORCH),
.H_TOTAL(H_TOTAL),
.V_ACTIVE(V_ACTIVE),
.V_FRONT_PORCH(V_FRONT_PORCH),
.V_SYNCH(V_SYNCH),
.V_BACK_PORCH(V_BACK_PORCH),
.V_TOTAL(V_TOTAL)
)
SVGA_TIMING_GENERATION
(
.clk ( clk ),
138,7 → 148,18
);
 
 
 
always@(posedge clk)
if(reset) address <= 14'b00000000000000;
else
if(add_l_load) address[7:0] <= wdata;
else
if(add_h_load) address[13:8] <= wdata[5:0];
else
if(ascii_load) address <= address+ 14'b0000000000001;
else address <= address;
 
endmodule // MAIN
/trunk/projects/logic/ip/vga_char_ctrl/rtl/verilog/top.body
0,0 → 1,124
//----------------------------------------------------------------------------
// user_logic.v - module
//----------------------------------------------------------------------------
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
//----------------------------------------------------------------------------
 
 
// internal video timing signals
wire h_synch; // horizontal synch for VGA connector
wire v_synch; // vertical synch for VGA connector
wire blank; // composite blanking
wire [10:0] pixel_count; // bit mapped pixel position within the lin
wire [9:0] line_count; // bit mapped line number in a frame lines within the frame
wire [2:0] subchar_pixel;// pixel position within the character
wire [2:0] subchar_line; // identifies the line number within a character block
wire [6:0] char_column; // character number on the current line
wire [6:0] char_line; // line number on the screen
wire pixel_on;
wire cursor_on;
 
 
 
 
// instantiate the character generator
`VARIANT`CHAR_DISPLAY
#(.STARTUP(STARTUP),
.FONT(FONT),
.H_ACTIVE(H_ACTIVE))
CHAR_DISPLAY
(
.clk ( clk ),
.reset ( reset ),
.char_column ( char_column ),
.char_line ( char_line ),
.subchar_line ( subchar_line ),
.subchar_pixel ( subchar_pixel ),
.pixel_on ( pixel_on ),
.cursor_on ( cursor_on ),
.char_write_addr ( address ),
.char_write_data ( wdata ),
.char_write_enable ( ascii_load )
);
 
// instantiate the video timing generator
`VARIANT`SVGA_TIMING_GENERATION
#(.CHARACTER_DECODE_DELAY(CHARACTER_DECODE_DELAY),
.H_ACTIVE(H_ACTIVE),
.H_FRONT_PORCH(H_FRONT_PORCH),
.H_SYNCH(H_SYNCH),
.H_BACK_PORCH(H_BACK_PORCH),
.H_TOTAL(H_TOTAL),
.V_ACTIVE(V_ACTIVE),
.V_FRONT_PORCH(V_FRONT_PORCH),
.V_SYNCH(V_SYNCH),
.V_BACK_PORCH(V_BACK_PORCH),
.V_TOTAL(V_TOTAL)
)
SVGA_TIMING_GENERATION
(
.clk ( clk ),
.reset ( reset ),
.h_synch ( h_synch ),
.v_synch ( v_synch ),
.blank ( blank ),
.pixel_count ( pixel_count ),
.line_count ( line_count ),
.subchar_pixel ( subchar_pixel),
.subchar_line ( subchar_line ),
.char_column ( char_column ),
.char_line ( char_line )
);
 
// instantiate the video output mux
`VARIANT`VIDEO_OUT
VIDEO_OUT
(
.clk ( clk ),
.reset ( reset ),
.h_synch ( h_synch ),
.v_synch ( v_synch ),
.blank ( blank ),
.char_color ( char_color ),
.back_color ( back_color ),
.cursor_color ( cursor_color ),
.pixel_on ( pixel_on ),
.cursor_on ( cursor_on ),
.hsync_n_pad_out ( hsync_n_pad_out ),
.vsync_n_pad_out ( vsync_n_pad_out ),
.vga_red_pad_out ( vga_red_pad_out ),
.vga_green_pad_out ( vga_green_pad_out ),
.vga_blue_pad_out ( vga_blue_pad_out )
);
 
 
 
always@(posedge clk)
if(reset) address <= 14'b00000000000000;
else
if(add_l_load) address[7:0] <= wdata;
else
if(add_h_load) address[13:8] <= wdata[5:0];
else
if(ascii_load) address <= address+ 14'b0000000000001;
else address <= address;
 
 
 
/trunk/projects/logic/ip/vga_char_ctrl/soc/design.soc
27,55 → 27,51
// from http://www.opencores.org/lgpl.shtml //
// //
-->
<designs>
 
<components>
<component>
 
 
<component>
<name>vga_char_ctrl</name>
<variant>vga_char_ctrl_600x432</variant>
<version>600x432</version>
<variant>vga_char_ctrl</variant>
<version></version>
<code_coverage>
<cover>
<name>vga_char_ctrl</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
</component>
 
</components>
 
 
 
<sims>
 
 
<sims>
<sim>
<name>default_600x432</name>
<variant>vga_char_ctrl_600x432</variant>
<variant>vga_char_ctrl</variant>
<parameters>
<parameter><name>TIMEOUT</name><value>2000000</value></parameter>
<parameter><name>H_ACTIVE</name><value>600</value></parameter>
<parameter><name>H_FRONT_PORCH</name><value>16</value></parameter>
<parameter><name>H_SYNCH</name><value>96</value></parameter>
<parameter><name>H_BACK_PORCH</name><value>48</value></parameter>
<parameter><name>H_TOTAL</name><value>800</value></parameter>
<parameter><name>V_ACTIVE</name><value>432</value></parameter>
<parameter><name>V_FRONT_PORCH</name><value>11</value></parameter>
<parameter><name>V_SYNCH</name><value>2</value></parameter>
<parameter><name>V_BACK_PORCH</name><value>31</value></parameter>
<parameter><name>V_TOTAL</name><value>524</value></parameter>
</parameters>
<models>
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
</sim>
</sims>
 
<code_coverage>
<cover>
<name>vga_char_ctrl_600x432</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
 
 
 
 
</component>
 
<component>
 
 
<name>vga_char_ctrl</name>
<variant>vga_char_ctrl</variant>
<version></version>
 
 
 
 
<sims>
<sim>
<name>default</name>
<variant>vga_char_ctrl</variant>
86,19 → 82,10
<model>"../../bench/verilog/models/clock_gen.v"</model>
</models>
</sim>
</sims>
 
<code_coverage>
<cover>
<name>vga_char_ctrl</name>
<componentInstance>TB.dut</componentInstance>
</cover>
</code_coverage>
 
</sims>
 
 
 
 
 
</component>
</components>
</designs>
/trunk/projects/logic/ip/vga_char_ctrl/sim/run/default/wave.sav
1,11 → 1,17
[timestart] 0
[size] 1613 999
[pos] -852 -467
*-11.000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[pos] 28 -108
*-25.000000 11000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[treeopen] TB.
[treeopen] TB.dut.
@28
TB.clk
TB.reset
TB.vga_red_pad_out[2:0]
TB.vga_green_pad_out[2:0]
TB.vga_blue_pad_out[1:0]
TB.vsync_n_pad_out
@29
TB.reset
TB.hsync_n_pad_out
[pattern_trace] 1
[pattern_trace] 0
/trunk/projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/wave.sav
1,11 → 1,17
[timestart] 0
[size] 1613 999
[pos] -852 -467
*-11.000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[pos] 28 -108
*-25.000000 11000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[treeopen] TB.
[treeopen] TB.dut.
@28
TB.clk
TB.reset
TB.vga_red_pad_out[2:0]
TB.vga_green_pad_out[2:0]
TB.vga_blue_pad_out[1:0]
TB.vsync_n_pad_out
@29
TB.reset
TB.hsync_n_pad_out
[pattern_trace] 1
[pattern_trace] 0

powered by: WebSVN 2.1.0

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