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

Subversion Repositories socgen

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /socgen/trunk
    from Rev 56 to Rev 57
    Reverse comparison

Rev 56 → Rev 57

/bench/verilog/TestBench
59,17 → 59,11
`define TIMEOUT 200000
`endif
 
 
`timescale `TIMESCALE
`include "./filelist"
 
`timescale `TIMESCALE
`include "./filelist.sim"
`include "./modellist"
 
`timescale `TIMESCALE
`include "./liblist"
 
 
module TB();
 
 
/bench/verilog/TestBench.cov
45,8 → 45,7
`include "./TB.defs"
 
`timescale 1ns/1ns
`include "./filelist"
`include "./liblist"
`include "./filelist.cov"
 
module TB();
 
/tools/bin/Makefile.root
101,8 → 101,8
 
 
 
.PHONY report_cov:
report_cov:
.PHONY print_cov:
print_cov:
@for VARIANT in `ls $(CUR_DIR)/../cov`; do \
echo "################################################################################"; \
echo; \
210,7 → 210,9
rm -r xilinx;\
mkdir xilinx;\
cd xilinx;\
echo "run -ifn ../filelist -ifmt mixed -top " $(board)_$(Design) " -ofn " $(board)_$(Design)".ngc -ofmt NGC -p " $(Part) "-opt_mode Speed -opt_level 1" > Xst;\
cp ../target/filelist ../filelist;\
cat ../filelist.syn >> ../filelist ;\
echo "run -ifn ../filelist -ifmt mixed -top " $(board)_$(Design) " -ofn " $(board)_$(Design)".ngc -ofmt NGC -p " $(Part) "-opt_mode Speed -opt_level 1" > Xst;\
xst -ifn ./Xst -ofn $(board)_$(Design).log;\
ngdbuild -dd _ngo -nt timestamp -p $(Part) -uc ../target/Pad_Ring.ucf $(board)_$(Design);\
map -p $(Part) -cm area -ir off -pr off -c 100 -o $(board)_$(Design)_map.ncd $(board)_$(Design).ngd $(board)_$(Design).pcf;\
269,7 → 271,7
echo "Linking: $$COMP ####"; echo; \
cd $(CUR_DIR)/../ip/$$COMP/sim/bin;\
make run_sims COMP=$$COMP ;\
make report_cov ;\
make print_cov ;\
done; \
 
 
/tools/bin/soc_link
46,9 → 46,9
 
 
$root = "projects";
$dest = "work";
 
 
 
use Cwd;
use XML::LibXML;
 
55,12 → 55,12
 
$home = cwd();
 
@target_list = ( );
 
 
print "Building socgen work area for $home \n" ;
 
 
&link_sub( $root );
&link_sub( $root,$root, "work" );
 
@projects = qx(ls $home/work );
 
77,11 → 77,11
chomp($component);
$root = "bench";
$dest = "work/${project}/ip/${component}/sim/bench";
&link_sub( $root );
&link_sub( $root,$root, $dest );
 
$root = "lib";
$dest = "work/${project}/ip/${component}/sim/lib";
&link_sub( $root );
&link_sub( $root,$root, $dest );
}
}
 
93,6 → 93,9
foreach my $project (@projects)
{
chomp($project);
symlink( "${home}/tools/bin/Makefile.root", "${home}/work/${project}/bin/Makefile.root");
symlink( "${home}/tools/bin/Makefile", "${home}/work/${project}/bin/Makefile");
 
my @components = qx(ls ${home}/work/${project}/ip );
foreach my $component (@components)
{
107,10 → 110,11
my $doc = $parser->parse_file($filename);
foreach my $comp ($doc->findnodes('/components/component'))
{
 
my($name) = $comp->findnodes('./name/text()')->to_literal ;
my($variant) = $comp->findnodes('./variant/text()')->to_literal ;
 
 
 
print "making rt/gen directories for $project $component $name\n";
 
print " work/${project}/ip/${component}/rtl/\n";
129,6 → 133,120
 
 
 
 
 
 
 
 
 
print "CREATING sim and cov filelists for $project $component $name $variant \n";
 
my $outfile ="work/${project}/ip/${component}/sim/cov/${variant}/filelist.cov";
open COVFILE,">$outfile" or die "unable to open $outfile";
print COVFILE "\`include \"../../../rtl/gen/syn/${variant}.v\" \n";
 
$outfile ="work/${project}/ip/${component}/sim/cov/${variant}/filelist.sim";
open SIMFILE,">$outfile" or die "unable to open $outfile";
print SIMFILE "\`include \"../../../rtl/gen/sim/${variant}.v\" \n";
 
 
$outfile ="work/${project}/ip/${component}/sim/cov/${variant}/filelist.syn";
open SYNFILE,">$outfile" or die "unable to open $outfile";
print SYNFILE "verilog work ../../../../../ip/${component}/rtl/gen/syn/${variant}.v \n";
 
 
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/brothers/brother/variant"))
{
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../component/text()')->to_literal ;
print COVFILE "\`include \"../../../../${child_parent}/rtl/gen/syn/${child}.v\"\n";
print SIMFILE "\`include \"../../../../${child_parent}/rtl/gen/sim/${child}.v\"\n";
print SYNFILE "verilog work ../../../../../ip/${child_parent}/rtl/gen/syn/${child}.v\n";
}
 
 
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/children/child/name"))
{
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
my($child_family) = $i_name ->findnodes('../family/text()')->to_literal ;
print COVFILE "\`include \"../../../../../children/${child_family}/ip/${child_parent}/rtl/gen/syn/${child}.v\"\n";
print SIMFILE "\`include \"../../../../../children/${child_family}/ip/${child_parent}/rtl/gen/sim/${child}.v\"\n";
print SYNFILE "verilog work ../../../../../children/${child_family}/ip/${child_parent}/rtl/gen/syn/${child}.v\n";
}
 
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/syn_children/child/name"))
{
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
my($child_family) = $i_name ->findnodes('../family/text()')->to_literal ;
print SYNFILE "verilog work ../../../../../children/${child_family}/ip/${child_parent}/rtl/gen/syn/${child}.v\n";
}
 
 
 
 
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/library/child/name"))
{
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
print COVFILE "\`include \"../../lib/${child_parent}/${child}.v\"\n";
print SIMFILE "\`include \"../../lib/${child_parent}/${child}.v\"\n";
print SYNFILE "verilog work ./target/lib/syn/${child_parent}/${child}.v\n";
}
 
 
 
 
print "CREATING sim filelists for $project $component $chip $name $variant \n";
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/sims/sim/name"))
{
my($chip) = $i_name ->findnodes('./text()')->to_literal ;
 
my $infile ="work/${project}/ip/${component}/sim/cov/${variant}/filelist.sim";
my $outfile ="work/${project}/ip/${component}/sim/run/${chip}/filelist.sim";
 
$cmd =
"cp $infile $outfile" ;
if (system($cmd)) {}
}
 
 
 
 
 
print "Linking targets for $project $component $name\n";
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/chips/chip/name"))
{
my($chip) = $i_name ->findnodes('./text()')->to_literal ;
my($chip_target) = $i_name ->findnodes('../target/text()')->to_literal ;
print " work/${project}/ip/${component}/syn/${chip}/target/${chip_target}\n";
 
 
$cmd = "cp work/${project}/ip/${component}/sim/cov/${variant}/filelist.syn ${home}/work/${project}/ip/${component}/syn/${chip}/filelist.syn" ;
if (system($cmd)) {}
 
my $path = "work/${project}/ip/${component}/syn/${chip}/target";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$cmd =
"lndir -silent ${home}/targets/${chip_target} ${home}/work/${project}/ip/${component}/syn/${chip}/target" ;
if (system($cmd)) {}
 
$cmd =
"lndir -silent ${home}/lib ${home}/work/${project}/ip/${component}/syn/${chip}/target/lib/syn" ;
if (system($cmd)) {}
push @target_list ,$chip_target ;
 
}
 
 
 
print "Linking children for $project $component $name\n";
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/children/child/name"))
{
135,7 → 253,6
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
my($child_family) = $i_name ->findnodes('../family/text()')->to_literal ;
print " work/${project}/children/${child_family}/ip/${child_parent}\n";
 
my $path = "work/${project}/children";
print "Creating $path\n" unless( -e $path );
153,6 → 270,8
$dest = "${home}/work/${project}/children/${child_family}/bin";
$cmd = "lndir ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
symlink( "${home}/tools/bin/Makefile.root", "${home}/work/${project}/children/${child_family}/bin/Makefile.root");
symlink( "${home}/tools/bin/Makefile", "${home}/work/${project}/children/${child_family}/bin/Makefile");
 
my $path = "work/${project}/children/${child_family}/sw";
print "Creating $path\n" unless( -e $path );
160,7 → 279,7
 
$root = "${home}/projects/${child_family}/sw";
$dest = "${home}/work/${project}/children/${child_family}/sw";
$cmd = "lndir ${root} ${dest} ";
$cmd = "lndir -silent ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
 
my $path = "work/${project}/children/${child_family}/ip";
173,7 → 292,7
 
$root = "${home}/projects/${child_family}/ip/${child_parent}";
$dest = "${home}/work/${project}/children/${child_family}/ip/${child_parent}";
$cmd = "lndir ${root} ${dest} ";
$cmd = "lndir -silent ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
 
my $path = "${home}/work/${project}/children/${child_family}/ip/${child_parent}/rtl/gen";
187,29 → 306,68
my $path = "${home}/work/${project}/children/${child_family}/ip/${child_parent}/rtl/gen/syn";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
}
 
 
 
print "Linking targets for $project $component $name\n";
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/chips/chip/name"))
print "Linking syn_children for $project $component $name\n";
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/syn_children/child/name"))
{
my($chip) = $i_name ->findnodes('./text()')->to_literal ;
my($chip_target) = $i_name ->findnodes('../target/text()')->to_literal ;
print " work/${project}/ip/${component}/syn/${chip}/target/${chip_target}\n";
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
my($child_family) = $i_name ->findnodes('../family/text()')->to_literal ;
 
my $path = "work/${project}/ip/${component}/syn/${chip}/target";
my $path = "work/${project}/children";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$cmd =
"lndir ${home}/targets/${chip_target} ${home}/work/${project}/ip/${component}/syn/${chip}/target " ;
if (system($cmd)) {}
my $path = "work/${project}/children/${child_family}";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$cmd =
"lndir ${home}/lib ${home}/work/${project}/ip/${component}/syn/${chip}/target/lib/syn" ;
if (system($cmd)) {}
my $path = "work/${project}/children/${child_family}/bin";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$root = "${home}/projects/${child_family}/bin";
$dest = "${home}/work/${project}/children/${child_family}/bin";
$cmd = "lndir ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
symlink( "${home}/tools/bin/Makefile.root", "${home}/work/${project}/children/${child_family}/bin/Makefile.root");
symlink( "${home}/tools/bin/Makefile", "${home}/work/${project}/children/${child_family}/bin/Makefile");
 
my $path = "work/${project}/children/${child_family}/sw";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$root = "${home}/projects/${child_family}/sw";
$dest = "${home}/work/${project}/children/${child_family}/sw";
$cmd = "lndir -silent ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
 
my $path = "work/${project}/children/${child_family}/ip";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
my $path = "work/${project}/children/${child_family}/ip/${child_parent}";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
$root = "${home}/projects/${child_family}/ip/${child_parent}";
$dest = "${home}/work/${project}/children/${child_family}/ip/${child_parent}";
$cmd = "lndir -silent ${root} ${dest} ";
if (system($cmd)) {die "Failed ";}
 
my $path = "${home}/work/${project}/children/${child_family}/ip/${child_parent}/rtl/gen";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
my $path = "${home}/work/${project}/children/${child_family}/ip/${child_parent}/rtl/gen/sim";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
 
my $path = "${home}/work/${project}/children/${child_family}/ip/${child_parent}/rtl/gen/syn";
print "Creating $path\n" unless( -e $path );
mkdir $path,0755 unless( -e $path );
}
 
 
216,7 → 374,6
 
 
 
 
}
}
}
224,36 → 381,27
 
 
 
print "Done \n" ;
@target_list = trim_sort(@target_list);
 
#foreach my $project (@projects)
# {
# chomp($project);
# my @components = qx(ls ${home}/work/${project}/ip );
# foreach my $component (@components)
# {
# chomp($component);
# my @variants = qx(ls ${home}/work/${project}/ip/${component}/rtl/variants );
# foreach my $variant (@variants)
# {
# chomp($variant);
# print "$project $component $variant \n";
# }
# }
# }
#
foreach my $target (@target_list)
{
print "Target $target \n" ;
}
 
 
print "Done \n" ;
 
 
 
 
 
# recursively map directory information
 
sub link_sub {
my $root = shift;
my $path = shift;
 
my $dest = shift;
return unless( -e $path );
 
278,7 → 426,7
closedir( DIR );
# recurse on items in the directory
foreach my $item ( @contents ) { &link_sub( "$path/$item" );}
foreach my $item ( @contents ) { &link_sub($root, "$path/$item", $dest );}
 
} else {
287,3 → 435,15
}
}
 
 
 
 
 
sub trim_sort {
my @output_files = @_;
my %trim = ();
foreach $descriptor (@output_files) { $trim{$descriptor} = 1; }
my @k = keys %trim;
@output_files = sort(sort @k);
return(@output_files);
}
/tools/bin/soc_builder
47,8 → 47,8
 
$root = "projects";
$dest = "work";
$cde="cde";
 
 
use Cwd;
use XML::LibXML;
 
71,6 → 71,7
 
 
 
 
@projects = qx(ls $home/work );
 
 
111,6 → 112,20
 
}
 
 
foreach my $i_name ($doc->findnodes("//component[name/text() = '$name']/syn_children/child/name"))
{
my($child) = $i_name ->findnodes('./text()')->to_literal ;
my($child_family) = $i_name ->findnodes('../family/text()')->to_literal ;
my($child_parent) = $i_name ->findnodes('../parent/text()')->to_literal ;
push @kids , "work/${project}/children/${child_family}/ip/${child_parent}/rtl/xml/${child}.xml";
 
}
 
 
 
 
 
}
}
 
168,13 → 183,13
$cmd ="cp ${home}/${prefix}/doc/copyright.v ${home}/${prefix}/rtl/gen/sim/${variant}.v";
if (system($cmd)) {}
 
$cmd ="vppreproc --noline --noblank ./defines.v ${home}/${prefix}/rtl/verilog/*.v >> ${home}/${prefix}/rtl/gen/sim/${variant}.v";
$cmd ="vppreproc --noline --noblank -DVARIANT=${variant} -DCDE=${cde} ./defines.v ${home}/${prefix}/rtl/verilog/*.v >> ${home}/${prefix}/rtl/gen/sim/${variant}.v";
if (system($cmd)) {}
 
$cmd ="cp ${home}/${prefix}/doc/copyright.v ${home}/${prefix}/rtl/gen/syn/${variant}.v";
if (system($cmd)) {}
 
$cmd ="vppreproc --noline --noblank -DSYNTHESIS ./defines.v ${home}/${prefix}/rtl/verilog/*.v >> ${home}/${prefix}/rtl/gen/syn/${variant}.v";
$cmd ="vppreproc --noline --noblank -DSYNTHESIS -DVARIANT=${variant} -DCDE=${cde} ./defines.v ${home}/${prefix}/rtl/verilog/*.v >> ${home}/${prefix}/rtl/gen/syn/${variant}.v";
if (system($cmd)) {}
 
$cmd ="rm ./defines.v ";
/projects/pic_micro/ip/soc_mouse/rtl/xml/soc_mouse_mrisc.xml
1,7 → 1,17
<components>
<component>
<name>soc_mouse_mrisc</name>
<parent>pic_micro</parent>
<name>soc_mouse</name>
<variant>soc_mouse_mrisc</variant>
 
 
<brothers>
<brother>
<variant>mrisc</variant>
<component>mrisc</component>
</brother>
</brothers>
 
 
<children>
<child>
<name>ps2_interface</name>
57,23 → 67,112
<parent>cde_sram</parent>
<family>cde</family>
</child>
 
 
<child>
<name>cde_sync_with_hystersis</name>
<name>cde_fifo</name>
<parent>cde_fifo</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_divider</name>
<parent>cde_divider</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_serial_xmit</name>
<parent>cde_serial_xmit</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_serial_rcvr</name>
<parent>cde_serial_rcvr</parent>
<family>cde</family>
</child>
 
 
 
<child>
<name>cde_sync_with_hysteresis</name>
<parent>cde_synchronizers</parent>
<family>cde</family>
</child>
 
</library>
 
 
 
 
<chips>
<chip>
<name>Nexys2_mouse_mrisc</name>
<target>Nexys2</target>
<children>
<child>
<name>disp_io</name>
<parent>disp_io</parent>
<family>logic</family>
</child>
<child>
<name>flash_memcontrl</name>
<parent>flash_memcontrl</parent>
<family>logic</family>
</child>
<child>
<name>usb_epp</name>
<parent>usb_epp</parent>
<family>logic</family>
</child>
</children>
 
 
 
</chip>
<chip>
<name>Basys_mouse_mrisc</name>
<target>Basys</target>
 
<children>
<child>
<name>disp_io</name>
<parent>disp_io</parent>
<family>logic</family>
</child>
</children>
 
 
 
</chip>
</chips>
 
<sims>
<sim>
<name>mouse_mrisc</name>
</sim>
</sims>
 
 
 
<syn_children>
<child>
<name>disp_io</name>
<parent>disp_io</parent>
<family>logic</family>
</child>
<child>
<name>flash_memcontrl</name>
<parent>flash_memcontrl</parent>
<family>logic</family>
</child>
<child>
<name>usb_epp</name>
<parent>usb_epp</parent>
<family>logic</family>
</child>
</syn_children>
 
</component>
</components>
/projects/pic_micro/ip/soc_mouse/rtl/variants/soc_mouse_mrisc/defines.v
1,3 → 1,2
`define VARIANT soc_mouse_mrisc
`define CDE cde
 
 
/projects/pic_micro/ip/soc_mouse/rtl/variants/soc_mouse/defines.v
1,3 → 1,2
`define VARIANT soc_mouse
`define CDE cde
 
`define CPU pic16c5x
projects/pic_micro/ip/soc_mouse/sim/cov/soc_mouse_mrisc/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/soc_mouse/sim/cov/soc_mouse/filelist =================================================================== --- projects/pic_micro/ip/soc_mouse/sim/cov/soc_mouse/filelist (revision 56) +++ projects/pic_micro/ip/soc_mouse/sim/cov/soc_mouse/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/syn/soc_mouse.v" -`include "../../../../pic16c5x/rtl/gen/syn/pic16c5x.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module_mouse.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" - -
projects/pic_micro/ip/soc_mouse/sim/cov/soc_mouse/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/soc_mouse/syn/Basys_mouse_mrisc/filelist =================================================================== --- projects/pic_micro/ip/soc_mouse/syn/Basys_mouse_mrisc/filelist (revision 56) +++ projects/pic_micro/ip/soc_mouse/syn/Basys_mouse_mrisc/filelist (nonexistent) @@ -1,19 +0,0 @@ -verilog work ./target/Pad_Ring.v -verilog work ../../../rtl/gen/syn/soc_mouse_mrisc.v -verilog work ../../../../mrisc/rtl/gen/syn/mrisc.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module_mouse.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v - Index: projects/pic_micro/ip/soc_mouse/syn/Nexys2_mouse_mrisc/filelist =================================================================== --- projects/pic_micro/ip/soc_mouse/syn/Nexys2_mouse_mrisc/filelist (revision 56) +++ projects/pic_micro/ip/soc_mouse/syn/Nexys2_mouse_mrisc/filelist (nonexistent) @@ -1,20 +0,0 @@ -verilog work ./target/Pad_Ring.v -verilog work ../../../rtl/gen/syn/soc_mouse_mrisc.v -verilog work ../../../../mrisc/rtl/gen/syn/mrisc.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module_mouse.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v - Index: projects/pic_micro/ip/mrisc/rtl/xml/mrisc.xml =================================================================== --- projects/pic_micro/ip/mrisc/rtl/xml/mrisc.xml (revision 56) +++ projects/pic_micro/ip/mrisc/rtl/xml/mrisc.xml (revision 57) @@ -1,15 +1,9 @@ mrisc - pic_micro - - - ps2_interface - ps2_interface - logic - - + mrisc + cde_sram @@ -17,7 +11,7 @@ cde - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde @@ -29,7 +23,37 @@ Basys_loop Basys + + + disp_io + disp_io + logic + + + + + + +sanity1 +rf3 +sanity2 +rf2 +rf1 +ind_mem +loop + + + + + + disp_io + disp_io + logic + + + +
/projects/pic_micro/ip/mrisc/rtl/variants/mrisc/defines.v
1,4 → 1,4
`define VARIANT mrisc
 
`define ALU _alu
`define PRESCLR_WDT _presclr_wdt
`define REGISTER_FILE _register_file
projects/pic_micro/ip/mrisc/sim/run/rf1/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/rf1/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/rf1/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/rf1/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/rf1/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/sim/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/sanity1/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/loop/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/loop/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/loop/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/sim/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/loop/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/loop/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/loop/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/loop/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/loop/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/rf2/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/rf2/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/rf2/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/sim/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/rf2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/rf2/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/rf2/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/rf2/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/rf2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/sim/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/sanity2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/rf3/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/rf3/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/rf3/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/sim/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/rf3/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/run/rf3/filelist.cov =================================================================== --- projects/pic_micro/ip/mrisc/sim/run/rf3/filelist.cov (revision 56) +++ projects/pic_micro/ip/mrisc/sim/run/rf3/filelist.cov (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/run/rf3/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/sim/cov/mrisc/filelist =================================================================== --- projects/pic_micro/ip/mrisc/sim/cov/mrisc/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/sim/cov/mrisc/filelist (nonexistent) @@ -1,4 +0,0 @@ -`include "../../../rtl/gen/syn/mrisc.v" - - -
projects/pic_micro/ip/mrisc/sim/cov/mrisc/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/pic_micro/ip/mrisc/syn/Basys_loop/filelist =================================================================== --- projects/pic_micro/ip/mrisc/syn/Basys_loop/filelist (revision 56) +++ projects/pic_micro/ip/mrisc/syn/Basys_loop/filelist (nonexistent) @@ -1,12 +0,0 @@ -verilog work ./target/Pad_Ring.v -verilog work ../../../../../ip/mrisc/rtl/gen/syn/mrisc.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v - -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v - -
projects/pic_micro/ip/mrisc/syn/Basys_loop/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/rtl/xml/T6502.xml =================================================================== --- projects/Mos6502/ip/T6502/rtl/xml/T6502.xml (revision 56) +++ projects/Mos6502/ip/T6502/rtl/xml/T6502.xml (revision 57) @@ -1,16 +1,15 @@ T6502 - Mos6502 + T6502 + + + + T6502_alu_logic + T6502_alu_logic + + - - - T6502 - - - - - io_module @@ -42,18 +41,7 @@ logic - - flash_memcontrl - flash_memcontrl - logic - - - disp_io - disp_io - logic - - @@ -95,60 +83,167 @@ - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde + - - cde_pad_se_dig - cde_pads - cde - + + + inst_2_test + + + io_irq_2 + + + io_poll_2 + + + irq_2_test + + + kim_2 + + + tim_2 + + + + + + + Nexys2_io_irq_2 + Nexys2 + - cde_clock_sys - cde_clock_sys - cde + disp_io + disp_io + logic - - cde_jtag - cde_jtag - cde + flash_memcontrl + flash_memcontrl + logic - - cde_jtag_rpc_reg - cde_jtag - cde + usb_epp + usb_epp + logic - + - - - - Nexys2_io_irq_2 - Nexys2 Nexys2_io_poll_2 Nexys2 + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + + Nexys2_irq_2_test Nexys2 + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + + Nexys2_kim_2 Nexys2 + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + + Nexys2_tim_2 Nexys2 + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + + + + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + +
/projects/Mos6502/ip/T6502/rtl/variants/T6502/defines.v
1,4 → 1,3
`define VARIANT T6502
 
`define CPU _cpu
`define CONTROL _control
8,7 → 7,7
`define STATE_FSM _state_fsm
`define SEQUENCER _sequencer
 
`define CDE cde
 
`define SRAM _sram
`define LIFO _lifo
 
/projects/Mos6502/ip/T6502/sim/run/kim_2/filelist.cov File deleted \ No newline at end of file
projects/Mos6502/ip/T6502/sim/run/kim_2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/kim_2/modellist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/kim_2/modellist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/kim_2/modellist (revision 57) @@ -6,3 +6,4 @@ `include "../../bench/verilog/models/mt45w8mw12.v" +`include "../../../../../children/logic/ip/flash_memcontrl/rtl/gen/sim/flash_memcontrl.v" \ No newline at end of file
projects/Mos6502/ip/T6502/sim/run/io_irq_2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/tim_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/tim_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/tim_2/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/sim/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/sim/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" - - -
projects/Mos6502/ip/T6502/sim/run/tim_2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/tim_2/filelist.cov =================================================================== --- projects/Mos6502/ip/T6502/sim/run/tim_2/filelist.cov (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/tim_2/filelist.cov (nonexistent) @@ -1,7 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" -
projects/Mos6502/ip/T6502/sim/run/tim_2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/sim/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/sim/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" - - - Index: projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist.cov =================================================================== --- projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist.cov (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist.cov (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" - - -
projects/Mos6502/ip/T6502/sim/run/irq_2_test/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/alu_logic_test/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/alu_logic_test/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/alu_logic_test/filelist (nonexistent) @@ -1,6 +0,0 @@ -`include "../../../rtl/gen/sim/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/sim/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" \ No newline at end of file Index: projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/sim/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/sim/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" - - - Index: projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist.cov =================================================================== --- projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist.cov (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist.cov (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" - - -
projects/Mos6502/ip/T6502/sim/run/inst_2_test/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/sim/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/sim/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/sim/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/sim/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" - - - Index: projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist.cov =================================================================== --- projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist.cov (revision 56) +++ projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist.cov (nonexistent) @@ -1,7 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" -
projects/Mos6502/ip/T6502/sim/run/io_poll_2/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/cov/T6502/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/cov/T6502/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/cov/T6502/filelist (nonexistent) @@ -1,9 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" - - -
projects/Mos6502/ip/T6502/sim/cov/T6502/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/sim/cov/T6502_alu_logic/filelist =================================================================== --- projects/Mos6502/ip/T6502/sim/cov/T6502_alu_logic/filelist (revision 56) +++ projects/Mos6502/ip/T6502/sim/cov/T6502_alu_logic/filelist (nonexistent) @@ -1,6 +0,0 @@ -`include "../../../rtl/gen/syn/T6502.v" -`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" -`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" -`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" \ No newline at end of file Index: projects/Mos6502/ip/T6502/syn/Nexys2_tim_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/syn/Nexys2_tim_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/syn/Nexys2_tim_2/filelist (nonexistent) @@ -1,26 +0,0 @@ -verilog work ./target/Pad_Ring.v -verilog work ../../../../../ip/T6502/rtl/gen/syn/T6502.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v - -verilog work ../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v - - -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_lifo/cde_lifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v - - -
projects/Mos6502/ip/T6502/syn/Nexys2_tim_2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/syn/Nexys2_irq_2_test/filelist =================================================================== --- projects/Mos6502/ip/T6502/syn/Nexys2_irq_2_test/filelist (revision 56) +++ projects/Mos6502/ip/T6502/syn/Nexys2_irq_2_test/filelist (nonexistent) @@ -1,28 +0,0 @@ -verilog work ./target/Pad_Ring.v - -verilog work ../../../../../ip/T6502/rtl/gen/syn/T6502.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v - - -verilog work ../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v - - -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_lifo/cde_lifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v - - -
projects/Mos6502/ip/T6502/syn/Nexys2_irq_2_test/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/syn/Nexys2_io_poll_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/syn/Nexys2_io_poll_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/syn/Nexys2_io_poll_2/filelist (nonexistent) @@ -1,28 +0,0 @@ -verilog work ./target/Pad_Ring.v - -verilog work ../../../../../ip/T6502/rtl/gen/syn/T6502.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v - - -verilog work ../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v - - -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_lifo/cde_lifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v - - -
projects/Mos6502/ip/T6502/syn/Nexys2_io_poll_2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/syn/Nexys2_kim_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/syn/Nexys2_kim_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/syn/Nexys2_kim_2/filelist (nonexistent) @@ -1,28 +0,0 @@ -verilog work ./target/Pad_Ring.v - -verilog work ../../../../../ip/T6502/rtl/gen/syn/T6502.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v - - -verilog work ../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v - - -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_lifo/cde_lifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v - - -
projects/Mos6502/ip/T6502/syn/Nexys2_kim_2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502/syn/Nexys2_io_irq_2/filelist =================================================================== --- projects/Mos6502/ip/T6502/syn/Nexys2_io_irq_2/filelist (revision 56) +++ projects/Mos6502/ip/T6502/syn/Nexys2_io_irq_2/filelist (nonexistent) @@ -1,27 +0,0 @@ -verilog work ./target/Pad_Ring.v -verilog work ../../../../../ip/T6502/rtl/gen/syn/T6502.v -verilog work ../../../../../children/logic/ip/disp_io/rtl/gen/syn/disp_io.v -verilog work ../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v - - -verilog work ../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v -verilog work ../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v -verilog work ../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v -verilog work ../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v -verilog work ../../../../../children/logic/ip/flash_memcontrl/rtl/gen/syn/flash_memcontrl.v - - -verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v -verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag.v -verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v -verilog work ./target/lib/syn/cde_sram/cde_sram.v -verilog work ./target/lib/syn/cde_fifo/cde_fifo.v -verilog work ./target/lib/syn/cde_lifo/cde_lifo.v -verilog work ./target/lib/syn/cde_synchronizers/cde_sync_with_hysteresis.v -verilog work ./target/lib/syn/cde_divider/cde_divider.v -verilog work ./target/lib/syn/cde_serial_rcvr/cde_serial_rcvr.v -verilog work ./target/lib/syn/cde_serial_xmit/cde_serial_xmit.v - - -
projects/Mos6502/ip/T6502/syn/Nexys2_io_irq_2/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/rtl/xml/T6502_alu_logic.xml =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/rtl/xml/T6502_alu_logic.xml (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/rtl/xml/T6502_alu_logic.xml (revision 57) @@ -0,0 +1,16 @@ + + + T6502_alu_logic + T6502_alu_logic + + + + + alu_logic_test + + + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/rtl/variants/T6502_alu_logic/defines.v =================================================================== Index: projects/Mos6502/ip/T6502_alu_logic/rtl/verilog/top.v =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/rtl/verilog/top.v (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/rtl/verilog/top.v (revision 57) @@ -0,0 +1,73 @@ + +`include "defines.v" + +module +`VARIANT + +( + + + +input wire [7:0] alu_op_a, +input wire [7:0] alu_op_b, +input wire alu_op_c, + +input wire alu_op_b_inv, + + +output reg [7:0] result, +output reg r_result, +output reg c_result, +output reg v_result, + +output reg [7:0] and_out, +output reg [7:0] orr_out, +output reg [7:0] eor_out, + + +output reg [8:0] a_sh_left, +output reg [8:0] a_sh_right, +output reg [8:0] b_sh_left, +output reg [8:0] b_sh_right + + + +); + + +reg [8:0] alu_op_b_mod; + +always@(*) + begin + alu_op_b_mod = alu_op_b_inv ? ~alu_op_b : alu_op_b; + end + + +always@(*) + begin + + c_result = alu_op_b_inv ? !r_result : r_result; + v_result = ((alu_op_a[7] == alu_op_b[7]) && (alu_op_a[7] != result[7])); + end + + + +always @ (*) + begin + {r_result,result[7:0]} = alu_op_a + alu_op_b_mod + alu_op_c; + end + + +always @ (*) + begin + a_sh_left = {alu_op_a, alu_op_c}; + a_sh_right = {alu_op_a[0],alu_op_c, alu_op_a[7:1]}; + b_sh_left = {alu_op_b, alu_op_c}; + b_sh_right = {alu_op_b[0],alu_op_c, alu_op_b[7:1]}; + and_out = alu_op_a & alu_op_b; + orr_out = alu_op_a | alu_op_b; + eor_out = alu_op_a ^ alu_op_b; + end + + +endmodule Index: projects/Mos6502/ip/T6502_alu_logic/doc/spec.odt =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: projects/Mos6502/ip/T6502_alu_logic/doc/spec.odt =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/spec.odt (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/spec.odt (revision 57)
projects/Mos6502/ip/T6502_alu_logic/doc/spec.odt Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/doc/geda/drawing/filelist =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/geda/drawing/filelist (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/geda/drawing/filelist (revision 57) @@ -0,0 +1,14 @@ +`include "../../../rtl/gen/syn/T6502.v" +`include "../../../../../children/logic/ip/io_module/rtl/gen/syn/io_module.v" +`include "../../../../../children/logic/ip/uart/rtl/gen/syn/uart.v" +`include "../../../../../children/logic/ip/ps2_interface/rtl/gen/syn/ps2_interface.v" + +`include "../../../../../children/logic/ip/vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" +`include "../../../../../children/logic/ip/serial_rcvr/rtl/gen/syn/serial_rcvr.v" + +`include "../../../../../../../../socgen/lib/cde_sram/cde_sram.v" +`include "../../../../../../../../socgen/lib/cde_serial_xmit/cde_serial_xmit.v" +`include "../../../../../../../../socgen/lib/cde_serial_rcvr/cde_serial_rcvr.v" +`include "../../../../../../../../socgen/lib/cde_synchronizers/cde_sync_with_hysteresis.v" +`include "../../../../../../../../socgen/lib/cde_fifo/cde_fifo.v" +`include "../../../../../../../../socgen/lib/cde_divider/cde_divider.v" \ No newline at end of file
projects/Mos6502/ip/T6502_alu_logic/doc/geda/drawing/filelist Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/doc/T6502_doc.txt =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/T6502_doc.txt (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/T6502_doc.txt (revision 57) @@ -0,0 +1,1689 @@ +T6502 Embedded Microprocessor +================================================================================== + +The T6502 IP is a processor that uses most of MosTechnology M6502 processor instructions +and processor registers.It has been updated for a synthesized embedded design in a FGPA or ASIC. + + +It differs from the original Mos6502 in the following ways + + + +1) Changed memory interface from asynchronous to synchronous. + +2) Number of clock cycles to execute instructions has changed + +3) Page Zero is fully filled with SRAM. Page zero is not usable as I/O space + + + + + + + + +An extended version is also avaiable. Before we can extend we must first remove some features that either +did not make sense at the time or made only made sense for a 40 pin part sitting in a sea or ttl parts. + + + +1) Remove Binary Coded Decimal mode. The D bit in the PSR does nothing. + +2) Moved stack from Page 01 into a seperate RAM. Stack size is now parameterized and only accessable via + pushes and pulls.Removed the TSX and TXS commands. If you need to manipulate the stack pointer and stack + data then you really should get a more powerfull processor + +3) Replaced old interrupt/brk system with vectored interrupt. Masking is done externally and vectors provide + as many interrupts as you like. PSR is not pushed on interrupt and rts/rti become one instruction + +4) Indirect addresses stored in page 00 MUST be aligned on even addresses. This is done by shifting a + page zero indirect address bu one bit and using both page 00 and 01. + +5) Bit (5) of the PSR is now a run bit. Forcing it to 0 will halt the processor until the next reset/interrupt + +6) Added Debugging logic and error checking + +7) self modifying code is no longer supported. You must provide a single rom image with all executable code + + + + + + + + + + + + + + + +History +========================================================================================= + + + + +This component is derived from the opencores t6507lp project. + +The original project checked in by Gabriel Oshiro Zardo and Samuel Nascimento Pagliarini +was a atari 2600 on a chip. This takes the t6507 portion and turns it into a fully functional updated 6502. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Processor Model +=============================================================================================== + + +----------+ + | Acc | Accumulator (A) + +----------+ + | X | X Index Register (X) + +----------+ + | Y | Y Index Register (Y) + +----------+----------+ + | PCH | PCL | Program Counter (PC) + +----------+----------+ + | 00000001 | SP | Stack Pointer (SP) + +----------+----------+ + | P | Processor Status Word (P) + +----------+ + NV1BDIZC + |||||||+---- Carry Flag 1 = True + ||||||+----- Zero Flag 1 = Result == 8'h00 + |||||+------ IRQ Disable 1 = Disable + ||||+------- Decimal Mode Not used + |||+-------- Break Command 1 = In break routine + ||+--------- Run Mode 1 = Processor is running + |+---------- Overflow Flag 1 = True + +----------- Negative 1 = Negative Number + + + + + + + + + + + + + + + + + +Memory Model +=============================================================================================== + +0000-00FF | Page Zero RAM +0010-01FF | Stack RAM +0200-FFF9 | Program and Data RAM + FFFA | NMI Vector Low + FFFB | NMI Vector High + FFFC | Boot Vector Low + FFFD | Boot Vector High + FFFE | IRQ/BRK Vector Low + FFFF | IRQ/BRK Vector High + + + + + + + + + +Definitions +=============================================================================================== +Opcode Current Instruction byte +New_opcode Next Instruction byte +Opc_Add Address of current instruction +Next_Op_Add Address of next instruction byte +Operand Data operand +Address Address of data operand if in memory +Offset Value added to Opc_Add if branch is taken +Pointer Address to store the address of data opeand if in memory +Vector Address to store the Next_Op_Add + + + + + + + + + +Instruction Set +=============================================================================================== + +Inst Description Effect on flags +----------------------------------------------------------------------------------------------- +ADC Operand Add Acc to Operand with Carry NZCV +SBC Operand Subract Operand from Acc with Borrow NZXV +AND Operand Logical AND Acc and Operand NZ +CMP Operand Compare Acc with Operand NZC +CPX Operand Compare X_index with Operand NZC +CPY Operand Compare Y_index with Operand NZC +EOR Operand Exclusive Or Acc with Operand NZ +LDA Operand Load Operand into Acc NZ +LDX Operand Load Operand into X_index NZ +LDY Operand Load Operand into Y_index NZ +ORA Operand Logical Or Acc with Operand NZ +BIT Operand Bit Test Acc with operand Z67 +STA Address Store Acc @ address NONE +STX Address Store X_Index @ address NONE +STY Address Store Y_Index @ address NONE +ASL Operand Arithmetic Shift Left Operand into Carry NZC +DEC Operand Decrement Operand NZ +INC Operand Incremement Operand NZ +DEX Decrement X Index NZ +INX Incremement X Index NZ +DEY Decrement Y Index NZ +INY Incremement Y Index NZ +LSR Operand Logical Shift Right Operand into Carry NZC +ROL Operand Rotate Left Operand thru Carry NZC +ROR Operand Rotate Right Operand thru Carry NZC +NOP No Operation NONE +SEC Set Carry Flag 1 -> C +SED Set Decimal Flag 1 -> D +SEI Set Interrupt Flag 1 -> I +CLC Clear Carry Flag 0 -> C +CLD Clear Decimal Flag 0 -> D +CLI Clear Interrupt Flag 0 -> I +CLV Clear Overflow Flag 0 -> V +TAX Transfer Acc into X_Index NZ +TAY Transfer Acc into Y_Index NZ +TXA Transfer X_Index into Acc NZ +TYA Transfer Y_Index into Acc NZ +BCC Offset Branch if C == 0 NONE +BCS Offset Branch if C == 1 NONE +BNE Offset Branch if Z == 0 NONE +BEQ Offset Branch if Z == 1 NONE +BVC Offset Branch if V == 0 NONE +BVS Offset Branch if V == 1 NONE +BPL Offset Branch if N == 0 NONE +BMI Offset Branch if N == 1 NONE +PLA Pull Acc from Stack NZ +PLP Pull PSR from Stack RESTORE +PHA Push Acc onto Stack NONE +PHP Push PSR onto Stack NONE +JMP Next_Op_Add Jump to New Address NONE +JMP Vector Jump to New Address found by vector NONE +JSR Next_Op_Add Save PC+2 on stack and jump to New Address NONE +BRK Save status and PC+1 on stack and jump to New Address set 1 -> B +RTI Pull Status and PC from stack RESTORED +RTS Pull PC from stack NONE + + + + + + + + + + + + + + + + + + + + + + +Definitions +=============================================================================================== +Opcode Current Instruction byte +New_opcode Next Instruction byte +Opc_Add Address of current instruction +Next_Op_Add Address of next instruction byte +Operand Data operand +Address Address of data operand if in memory +Offset Value added to Opc_Add if branch is taken +Pointer Address to store the address of data opeand if in memory +Vector Address to store the Next_Op_Add + + + + + + + + + + +Addressing Modes +=============================================================================================== + + +Immediate Read +----------------------------------------------------------------------------------------------------- +Operand is located in memory following the opcode + + +Opcode Operand + + + + +Absolute Read/Write/ReadModifyWrite +----------------------------------------------------------------------------------------------------- +16 bit address of operand is located in memory following opcode (low byte,high byte) + +Opcode Address_l,Address_h + + + +Absolute Indexed Read/Write/ReadModifyWrite +----------------------------------------------------------------------------------------------------- +Operand is found by adding index value to 16 bit address following opcode.(no wraparound) + +Opcode Address_l,Address_h + + + +Page Zero Read/Write/ReadModifyWrite +----------------------------------------------------------------------------------------------------- +8 bit page zero address of operand is located in memory following opcode. + + +Opcode Address_l + + + +Page Zero Indexed Read/Write/ReadModifyWrite +----------------------------------------------------------------------------------------------------- +Operand is found in page zero by adding index value to 8 bit address following opcode.(wraps around) + + +Opcode Address_l + + + +Page Zero Indirect X Read/Write +----------------------------------------------------------------------------------------------------- +Operand address lower byte is read from the address found by adding X index value to 8 bit address following opcode and +the upper byte is read from the address found by adding X index value to 8 bit address plus 1 (no wraparound) + +Opcode Pointer_l + + + + +Page Zero Indirect Y Read/Write +----------------------------------------------------------------------------------------------------- +8 bit page zero address containing a 16 bit address is located in memory following opcode. Y index is added to this address +(no wraparound). + + +Opcode Pointer_l + + +Implied Read/Write/Read_Modify_Write +----------------------------------------------------------------------------------------------------- +Operand is specified in the Opcode + +Opcode + + +Branch Read +----------------------------------------------------------------------------------------------------- +Opcode is followed by the relative offset for the branch + +Opcode Offset + + +Stack StackRead/StackWrite +----------------------------------------------------------------------------------------------------- +Operation uses the Stack + +Opcode + + +Stack_Pointer +----------------------------------------------------------------------------------------------------- +Transfer between Stack_pointer and X index + +Opcode + + +Jump Absolute Read +----------------------------------------------------------------------------------------------------- +16 bit destination address follows opcode + + +Opcode Next_Op_add_l,Next_Op_add_h + + + +Jump Indirect Read +----------------------------------------------------------------------------------------------------- +16 bit Address following opcode points to destination address + +Opcode Vector_l, Vector_h + + +JumpSub Absolute Read_Stackwrite +----------------------------------------------------------------------------------------------------- +16 bit destination address follows opcode. Return address is pushed on stack + +Opcode Next_Op_add_l,Next_Op_add_h + + +Break Read_Stackwrite +----------------------------------------------------------------------------------------------------- +Return address is pushed on stack and the IRQ vector is taken + +Opcode + + +Return from Interrupt Read_Stackread +----------------------------------------------------------------------------------------------------- +PSR and Prog_counter are pulled from stack + + +Opcode + + + + + +Return from Subroutine Read_Stackread +----------------------------------------------------------------------------------------------------- +Prog_counter is pulled from stack + + +Opcode + + + + + + + + + + + + + + + + + + + + + + + +Instruction Opcodes (hex) +==================================================================================================== + + + + ADC abs 6D + ADC abs,X 7D + ADC abs,Y 79 + ADC #n 69 + ADC zp 65 + ADC (zp,X) 61 + ADC zp,X 75 + ADC (zp),Y 71 + + AND abs 2D + AND abs,X 3D + AND abs,Y 39 + AND #n 29 + AND zp 25 + AND (zp,X) 21 + AND zp,X 35 + AND (zp),Y 31 + + ASL A 0A + ASL abs 0E + ASL abs,X 1E + ASL zp 06 + ASL zp,X 16 + + BCC rel 90 + BCS rel B0 + BEQ rel F0 + + BIT abs 2C + BIT zp 24 + + BMI rel 30 + BNE rel D0 + BPL rel 10 + + BRK 00 + + BVC rel 50 + BVS rel 70 + + + CLC 18 + CLD D8 + CLI 58 + CLV B8 + + CMP abs CD + CMP abs,X DD + CMP abs,Y D9 + CMP #n C9 + CMP zp C5 + CMP (zp,X) C1 + CMP zp,X D5 + CMP (zp),Y D1 + + CPX abs EC + CPX #n E0 + CPX zp E4 + CPY abs CC + CPY #n C0 + CPY zp C4 + + DEC abs CE + DEC abs,X DE + DEC zp C6 + DEC zp,X D6 + + DEX CA + DEY 88 + + EOR abs 4D + EOR abs,X 5D + EOR abs,Y 59 + EOR #n 49 + EOR zp 45 + EOR (zp,X) 41 + EOR zp,X 55 + EOR (zp),Y 51 + + INC abs EE + INC abs,X FE + INC zp E6 + INC zp,X F6 + INX E8 + INY C8 + + JMP abs 4C + JMP (abs) 6C + JSR abs 20 + + LDA abs AD + LDA abs,X BD + LDA abs,Y B9 + LDA #n A9 + LDA zp A5 + LDA (zp,X) A1 + LDA zp,X B5 + LDA (zp),Y B1 + + LDX abs AE + LDX abs,Y BE + LDX #n A2 + LDX zp A6 + LDX zp,Y B6 + + LDY abs AC + LDY abs,X BC + LDY #n A0 + LDY zp A4 + LDY zp,X B4 + + LSR A 4A + LSR abs 4E + LSR abs,X 5E + LSR zp 46 + LSR zp,X 56 + + NOP EA + + ORA abs 0D + ORA abs,X 1D + ORA abs,Y 19 + ORA #n 09 + ORA zp 05 + ORA (zp,X) 01 + ORA zp,X 15 + ORA (zp),Y 11 + + PHA 48 + PHP 08 + + PLA 68 + PLP 28 + + ROL A 2A + ROL abs 2E + ROL abs,X 3E + ROL zp 26 + ROL zp,X 36 + + ROR A 6A + ROR abs 6E + ROR abs,X 7E + ROR zp 66 + ROR zp,X 76 + + RTI 40 + + RTS 60 + + SBC abs ED + SBC abs,X FD + SBC abs,Y F9 + SBC #n E9 + SBC zp E5 + SBC (zp,X) E1 + SBC zp,X F5 + SBC (zp),Y F1 + + SEC 38 + SED F8 + SEI 78 + + STA abs 8D + STA abs,X 9D + STA abs,Y 99 + STA zp 85 + STA (zp,X) 81 + STA zp,X 95 + STA (zp),Y 91 + + STX abs 8E + STX zp 86 + STX zpy 96 + + STY abs 8C + STY zp 84 + STY zp,X 94 + + TAX AA + TAY A8 + TXA 8A + TYA 98 + + + + + + + + + +Instruction Decode +====================================================================================================================================================== + + + + + + + + + + +// alu_mode +`define alu_mode_add 3'b000 +`define alu_mode_and 3'b001 +`define alu_mode_orr 3'b010 +`define alu_mode_eor 3'b011 +`define alu_mode_sfl 3'b100 +`define alu_mode_sfr 3'b101 +`define alu_mode_afl 3'b110 +`define alu_mode_afr 3'b111 + +// alu_op_a_sel + +`define alu_op_a_00 3'b000 +`define alu_op_a_acc 3'b001 +`define alu_op_a_x 3'b010 +`define alu_op_a_y 3'b011 +`define alu_op_a_ff 3'b100 +`define alu_op_a_psr 3'b101 + +// alu_op_b_sel + +`define alu_op_b_00 2'b00 +`define alu_op_b_prog 2'b01 +`define alu_op_b_sp 2'b10 +`define alu_op_b_temp 2'b11 + +// alu_op_b_inv 1=invert + + + +// alu_op_c_sel + +`define alu_op_c_00 2'b00 +`define alu_op_c_01 2'b01 +`define alu_op_c_cin 2'b10 +`define alu_op_c_xx 2'b11 + + +// alu_status_update +`define alu_status_update_none 3'b000 +`define alu_status_update_nz 3'b001 +`define alu_status_update_nzc 3'b010 +`define alu_status_update_nzcv 3'b011 +`define alu_status_update_wr 3'b100 +`define alu_status_update_z67 3'b101 +`define alu_status_update_res 3'b110 + + + +// dest +`define dest_none 3'b000 +`define dest_alu_a 3'b001 +`define dest_alu_x 3'b010 +`define dest_alu_y 3'b011 +`define dest_mem 3'b100 + + +// ctrl +`define ctrl_none 3'b000 +`define ctrl_jsr 3'b001 +`define ctrl_jmp 3'b010 +`define ctrl_jmp_ind 3'b011 +`define ctrl_brk 3'b100 +`define ctrl_rti 3'b101 +`define ctrl_rts 3'b110 +`define ctrl_branch 3'b111 + +// cmd +`define cmd_none 2'b00 +`define cmd_push_psr 2'b01 +`define cmd_push_pc 2'b10 +`define cmd_load_vec 2'b11 + + +// ins_type +`define ins_type_none 2'b00 +`define ins_type_read 2'b01 +`define ins_type_write 2'b10 +`define ins_type_rmw 2'b11 + + +// idx_sel +`define idx_sel_00 2'b00 +`define idx_sel_x 2'b01 +`define idx_sel_y 2'b10 + + + +// branch_value + + +// branch_enable + + + + + + + + + + +Immediate + + alu alu alu alu alu + op_a op_b op_b op_c status alu ins idx branch branch + src src inv src update mode type sel value enable dest ctrl cmd +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC #n | | alu_a prog 0 cin NZCV ADD R 0 00 00 A none none + AND #n | | alu_a prog 0 0 NZ AND R 0 00 00 A none none + CMP #n | | alu_a prog 1 1 NZC ADD R 0 00 00 0 none none + CPX #n | | alu_x prog 1 1 NZC ADD R 0 00 00 0 none none + CPY #n | | alu_y prog 1 1 NZC ADD R 0 00 00 0 none none + EOR #n | | alu_a prog 0 0 NZ EOR R 0 00 00 A none none + LDA #n | | 00 prog 0 0 NZ ADD R 0 00 00 A none none + LDX #n | | 00 prog 0 0 NZ ADD R 0 00 00 X none none + LDY #n | | 00 prog 0 0 NZ ADD R 0 00 00 Y none none + ORA #n | | alu_a prog 0 0 NZ ORR R 0 00 00 A none none + SBC #n | | alu_a prog 1 cin NZXV ADD R 0 00 00 A none none + + + + +Absolute + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC abs | | alu_a temp 0 cin NZCV ADD R 0 00 00 A none none + AND abs | | alu_a temp 0 0 NZ AND R 0 00 00 A none none + BIT abs | | alu_a temp 0 0 Z67 AND R 0 00 00 0 none none + CMP abs | | alu_a temp 1 1 NZC ADD R 0 00 00 0 none none + CPX abs | | alu_x temp 1 1 NZC ADD R 0 00 00 0 none none + CPY abs | | alu_y temp 1 1 NZC ADD R 0 00 00 0 none none + EOR abs | | alu_a temp 0 0 NZ EOR R 0 00 00 A none none + LDA abs | | 00 temp 0 0 NZ ADD R 0 00 00 A none none + LDX abs | | 00 temp 0 0 NZ ADD R 0 00 00 X none none + LDY abs | | 00 temp 0 0 NZ ADD R 0 00 00 Y none none + ORA abs | | alu_a temp 0 0 NZ ORR R 0 00 00 A none none + SBC abs | | alu_a temp 1 cin NZXV ADD R 0 00 00 A none none + STA abs | | alu_a temp 0 0 NONE ADD W 0 00 00 M none none + STX abs | | alu_x temp 0 0 NONE ADD W 0 00 00 M none none + STY abs | | alu_y temp 0 0 NONE ADD W 0 00 00 M none none + ASL abs | | 00 temp 0 0 NZC SFL RMW 0 00 00 M none none + DEC abs | | FF temp 0 0 NZ ADD RMW 0 00 00 M none none + INC abs | | 00 temp 0 1 NZ ADD RMW 0 00 00 M none none + LSR abs | | 00 temp 0 0 NZC SFR RMW 0 00 00 M none none + ROL abs | | 00 temp 0 cin NZC SFL RMW 0 00 00 M none none + ROR abs | | 00 temp 0 cin NZC SFR RMW 0 00 00 M none none + + +Absolute indexed + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC abs,X | | alu_a temp 0 cin NZCV ADD R X 00 00 A none none + AND abs,X | | alu_a temp 0 0 NZ AND R X 00 00 A none none + CMP abs,X | | alu_a temp 1 1 NZC ADD R X 00 00 0 none none + EOR abs,X | | alu_a temp 0 0 NZ EOR R X 00 00 A none none + LDA abs,X | | 00 temp 0 0 NZ ADD R X 00 00 A none none + LDY abs,X | | 00 temp 0 0 NZ ADD R X 00 00 Y none none + ORA abs,X | | alu_a temp 0 0 NZ ORR R X 00 00 A none none + SBC abs,X | | alu_a temp 1 cin NZXV ADD R X 00 00 A none none + ADC abs,Y | | alu_a temp 0 cin NZCV ADD R Y 00 00 A none none + AND abs,Y | | alu_a temp 0 0 NZ AND R Y 00 00 A none none + CMP abs,Y | | alu_a temp 1 1 NZC ADD R Y 00 00 0 none none + EOR abs,Y | | alu_a temp 0 0 NZ EOR R Y 00 00 A none none + LDA abs,Y | | 00 temp 0 0 NZ ADD R Y 00 00 A none none + LDX abs,Y | | 00 temp 0 0 NZ ADD R Y 00 00 X none none + ORA abs,Y | | alu_a temp 0 0 NZ ORR R Y 00 00 A none none + SBC abs,Y | | alu_a temp 1 cin NZXV ADD R Y 00 00 A none none + STA abs,X | | alu_a temp 0 0 NONE ADD W X 00 00 M none none + STA abs,Y | | alu_a temp 0 0 NONE ADD W Y 00 00 M none none + ASL abs,X | | 00 temp 0 0 NZC SFL RMW X 00 00 M none none + DEC abs,X | | FF temp 0 0 NZ ADD RMW X 00 00 M none none + INC abs,X | | 00 temp 0 1 NZ ADD RMW X 00 00 M none none + LSR abs,X | | 00 temp 0 0 NZC SFR RMW X 00 00 M none none + ROL abs,X | | 00 temp 0 cin NZC SFL RMW X 00 00 M none none + ROR abs,X | | 00 temp 0 cin NZC SFR RMW X 00 00 M none none + + + + + + +Page Zero + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC zp | | alu_a temp 0 cin NZCV ADD R 0 00 00 A none none + AND zp | | alu_a temp 0 0 NZ AND R 0 00 00 A none none + BIT zp | | alu_a temp 0 0 Z67 AND R 0 00 00 0 none none + CMP zp | | alu_a temp 1 1 NZC ADD R 0 00 00 0 none none + CPX zp | | alu_x temp 1 1 NZC ADD R 0 00 00 0 none none + CPY zp | | alu_y temp 1 1 NZC ADD R 0 00 00 0 none none + EOR zp | | alu_a temp 0 0 NZ EOR R 0 00 00 A none none + LDA zp | | 00 temp 0 0 NZ ADD R 0 00 00 A none none + LDX zp | | 00 temp 0 0 NZ ADD R 0 00 00 X none none + LDY zp | | 00 temp 0 0 NZ ADD R 0 00 00 Y none none + ORA zp | | alu_a temp 0 0 NZ ORR R 0 00 00 A none none + SBC zp | | alu_a temp 1 cin NZXV ADD R 0 00 00 A none none + STA zp | | alu_a temp 0 0 NONE ADD W 0 00 00 M none none + STX zp | | alu_x temp 0 0 NONE ADD W 0 00 00 M none none + STY zp | | alu_y temp 0 0 NONE ADD W 0 00 00 M none none + ASL zp | | 00 temp 0 0 NZC SFL RMW 0 00 00 M none none + DEC zp | | FF temp 0 0 NZ ADD RMW 0 00 00 M none none + INC zp | | 00 temp 0 1 NZ ADD RMW 0 00 00 M none none + LSR zp | | 00 temp 0 0 NZC SFR RMW 0 00 00 M none none + ROL zp | | 00 temp 0 cin NZC SFL RMW 0 00 00 M none none + ROR zp | | 00 temp 0 cin NZC SFR RMW 0 00 00 M none none + + + +Page Zero indexed + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC zp,X | | alu_a temp 0 cin NZCV ADD R X 00 00 A none none + AND zp,X | | alu_a temp 0 0 NZ AND R X 00 00 A none none + CMP zp,X | | alu_a temp 1 1 NZC ADD R X 00 00 0 none none + EOR zp,X | | alu_a temp 0 0 NZ EOR R X 00 00 A none none + LDA zp,X | | 00 temp 0 0 NZ ADD R X 00 00 A none none + LDY zp,X | | 00 temp 0 0 NZ ADD R X 00 00 Y none none + ORA zp,X | | alu_a temp 0 0 NZ ORR R X 00 00 A none none + SBC zp,X | | alu_a temp 1 cin NZXV ADD R X 00 00 A none none + LDX zp,Y | | 00 temp 0 0 NZ ADD R Y 00 00 X none none + STA zp,X | | alu_a temp 0 0 NONE ADD W X 00 00 M none none + STY zp,X | | alu_y temp 0 0 NONE ADD W X 00 00 M none none + STX zp,Y | | alu_x temp 0 0 NONE ADD W Y 00 00 M none none + ASL zp,X | | 00 temp 0 0 NZC SFL RMW X 00 00 M none none + DEC zp,X | | FF temp 0 0 NZ ADD RMW X 00 00 M none none + INC zp,X | | 00 temp 0 1 NZ ADD RMW X 00 00 M none none + LSR zp,X | | 00 temp 0 0 NZC SFR RMW X 00 00 M none none + ROR zp,X | | 00 temp 0 cin NZC SFR RMW X 00 00 M none none + ROL zp,X | | 00 temp 0 cin NZC SFL RMW X 00 00 M none none + + + +Page Zero indirectX + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC (zp,X) | | alu_a temp 0 cin NZCV ADD R X 00 00 A none none + AND (zp,X) | | alu_a temp 0 0 NZ AND R X 00 00 A none none + CMP (zp,X) | | alu_a temp 1 1 NZC ADD R X 00 00 0 none none + EOR (zp,X) | | alu_a temp 0 0 NZ EOR R X 00 00 A none none + LDA (zp,X) | | 00 temp 0 0 NZ ADD R X 00 00 A none none + ORA (zp,X) | | alu_a temp 0 0 NZ ORR R X 00 00 A none none + SBC (zp,X) | | alu_a temp 1 cin NZXV ADD R X 00 00 A none none + STA (zp,X) | | alu_a temp 0 0 NONE ADD W X 00 00 M none none + + + +====================================================================================================================================================== + + +Page Zero IndirectY + +------------------------------------------------------------------------------------------------------------------------------------------------------ + ADC (zp),Y | | alu_a temp 0 cin NZCV ADD R Y 00 00 A none none + AND (zp),Y | | alu_a temp 0 0 NZ AND R Y 00 00 A none none + CMP (zp),Y | | alu_a temp 1 1 NZC ADD R Y 00 00 0 none none + EOR (zp),Y | | alu_a temp 0 0 NZ EOR R Y 00 00 A none none + LDA (zp),Y | | 00 temp 0 0 NZ ADD R Y 00 00 A none none + ORA (zp),Y | | alu_a temp 0 0 NZ ORR R Y 00 00 A none none + SBC (zp),Y | | alu_a temp 1 cin NZXV ADD R Y 00 00 A none none + STA (zp),Y | | alu_a temp 0 0 NONE ADD W Y 00 00 M none none + + + + + +Implied + +------------------------------------------------------------------------------------------------------------------------------------------------------ + NOP | | 00 00 0 0 NONE ADD 0 0 00 00 0 none none + SEC | | 00 00 0 0 WR ADD 0 0 01 01 0 none none + SED | | 00 00 0 0 WR ADD 0 0 08 08 0 none none + SEI | | 00 00 0 0 WR ADD 0 0 04 04 0 none none + CLC | | 00 00 0 0 WR ADD 0 0 00 01 0 none none + CLD | | 00 00 0 0 WR ADD 0 0 00 08 0 none none + CLI | | 00 00 0 0 WR ADD 0 0 00 04 0 none none + CLV | | 00 00 0 0 WR ADD 0 0 00 40 0 none none + ASL A | | alu_a 00 0 0 NZC SFL RMW 0 00 00 A none none + DEX | | alu_x 00 0 0 NZ ADD RMW 0 00 00 X none none + DEY | | alu_y 00 0 0 NZ ADD RMW 0 00 00 Y none none + INX | | alu_x 00 0 1 NZ ADD RMW 0 00 00 X none none + INY | | alu_y 00 0 1 NZ ADD RMW 0 00 00 Y none none + LSR A | | alu_a 00 0 0 NZC SFR RMW 0 00 00 A none none + ROL A | | alu_a 00 0 cin NZC SFL RMW 0 00 00 A none none + ROR A | | alu_a 00 0 cin NZC SFR RMW 0 00 00 A none none + TAX | | alu_a 00 0 0 NZ ADD RMW 0 00 00 A none none + TAY | | alu_a 00 0 0 NZ ADD RMW 0 00 00 X none none + TXA | | alu_x 00 0 0 NZ ADD RMW 0 00 00 A none none + TYA | | alu_y 00 0 0 NZ ADD RMW 0 00 00 A none none + + + +Branch + alu alu alu alu alu + op_a op_b op_b op_c status alu branch branch + src src inv src update mode type index value enable dest +------------------------------------------------------------------------------------------------------------------------------------------------------ + BCC rel | | 00 00 0 0 NONE ADD 0 0 00 01 0 branch none + BCS rel | | 00 00 0 0 NONE ADD 0 0 01 01 0 branch none + BNE rel | | 00 00 0 0 NONE ADD 0 0 00 02 0 branch none + BEQ rel | | 00 00 0 0 NONE ADD 0 0 02 02 0 branch none + BVC rel | | 00 00 0 0 NONE ADD 0 0 00 40 0 branch none + BVS rel | | 00 00 0 0 NONE ADD 0 0 40 40 0 branch none + BPL rel | | 00 00 0 0 NONE ADD 0 0 00 80 0 branch none + BMI rel | | 00 00 0 0 NONE ADD 0 0 80 80 0 branch none + + + +Stack +------------------------------------------------------------------------------------------------------------------------------------------------------ + PLA | | 00 00 0 0 NZ ADD R 0 00 00 A + PLP | | 00 00 0 0 RESTORE ADD R 0 00 00 PSR + PHA | | alu_a 00 0 0 NONE ADD W 0 00 00 M + PHP | | psr 00 0 0 NONE ADD W 0 00 00 M + + + +Jump absolute +------------------------------------------------------------------------------------------------------------------------------------------------------ + JMP abs | | 00 00 0 0 NONE ADD 0 0 00 00 0 + + + +Jump indirect +------------------------------------------------------------------------------------------------------------------------------------------------------ + JMP (abs) | | 00 00 0 0 NONE ADD 0 0 00 00 0 + + + +Jump Sub absolute +------------------------------------------------------------------------------------------------------------------------------------------------------ + JSR abs | | 00 00 0 0 NONE ADD 0 0 00 00 0 + + + +Break +------------------------------------------------------------------------------------------------------------------------------------------------------ + BRK | | alu_a 00 0 0 WR ADD 0 0 10 10 0 + + + +Return from +Interrupt +------------------------------------------------------------------------------------------------------------------------------------------------------ + RTI | | 00 00 0 0 RESTORE ADD 0 0 00 00 P + + + +Return from +Subroutine +------------------------------------------------------------------------------------------------------------------------------------------------------ + RTS | | 00 00 0 0 NONE ADD 0 0 00 00 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Opcode Current Instruction byte +New_opcode Next Instruction byte +Opc_Add Address of current instruction +Next_Op_Add Address of next instruction byte +Operand Data operand +Address Address of data operand if in memory +Offset Value added to Opc_Add if branch is taken +Pointer Address to store the address of data opeand if in memory +Vector Address to store the Next_Op_Add + + + + + + + + + +Address Sequence Decodes +========================================================================= + + + + + + +Implied Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +______________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add Opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 Opcode 1 Set +3 1 Opc_Add+1 New_Opcode opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 New_Opcode updated + + + + +Immediate Addressing Mode + + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +____________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +---------------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 operand operand Set +---------------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 operand 1 Set +5 1 Opc_Add+2 new_op opcode 1 Set +---------------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op updated + + + + + + + +Absolute Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi Set +5 1 Opc_Add+3 new_op addr r 00 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op addr r 00 operand Set +7 1 Opc_Add+3 new_op addr r 00 operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op 1 Set +9 1 Opc_Add+3 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + + + + +Absolute Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi Set +5 1 Opc_Add+3 new_op opcode addr w operand 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+4 new_op updated +7 1 Opc_Add+4 + + + + + +Absolute Read/Modify/Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi Set +5 1 Opc_Add+3 new_op addr r Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op operand Set +7 1 Opc_Add+3 new_op Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op addr w result 1 Set +9 1 Opc_Add+3 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + + + + + +Absolute Indexed Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi Set +5 1 Opc_Add+3 new_op addr+i r 00 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op addr+i r 00 operand Set +7 1 Opc_Add+3 new_op addr+i r 00 operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op 1 Set +9 1 Opc_Add+3 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + +Absolute Indexed Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi 1 Set +5 1 Opc_Add+3 new_op opcode addr+i w operand 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+4 new_op updated +7 1 Opc_Add+4 + + + + + +Absolute Indexed Read/Modify/Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+2 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+3 add_hi add_hi Set +5 1 Opc_Add+3 new_op addr+i r Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op operand Set +7 1 Opc_Add+3 new_op Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op addr+i w result 1 Set +9 1 Opc_Add+3 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + + + + + + + + + + +Page Zero Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr r Set +5 1 Opc_Add+2 new_op operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op 1 Set +7 1 Opc_Add+2 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op updated + + + + + + + + +Page Zero Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo 1 Set +5 1 Opc_Add+2 new_op opcode addr w operand 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op updated +7 1 Opc_Add+3 + + + + + + + +Page Zero Read/Modify/Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr r Set +5 1 Opc_Add+2 new_op operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op 1 Set +7 1 Opc_Add+2 new_op opcode addr w result 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op updated + + + + + + + + + + +Page Zero Indexed Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr+i r Set +5 1 Opc_Add+2 new_op operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op 1 Set +7 1 Opc_Add+2 new_op opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op updated + + + + + +Page Zero Indexed Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo 1 Set +5 1 Opc_Add+2 new_op opcode addr w operand 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+3 new_op updated +7 1 Opc_Add+3 + + + + + + + +Page Zero Indexed Read/Modify/Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr r Set +5 1 Opc_Add+2 new_op operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op 1 Set +7 1 Opc_Add+2 new_op opcode addr w result 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op updated + + + + + + + + + + + + + + +Page Zero Indirect X Read +------------------------------------------------------- +Operand address lower byte is read from the address found by adding X index value to 8 bit address following opcode and +the upper byte is read from the address found by adding X index value to 8 bit address plus 1 (no wraparound) + + + + +Page Zero IndirectX Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr+i r Set +5 1 Opc_Add+2 new_op addr+i+1 r add_l Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op add_h Set +7 1 Opc_Add+2 new_op addr r Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+2 new_op operand 1 Set +9 1 opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + + + +Page Zero IndirectX Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr+i r Set +5 1 Opc_Add+2 new_op addr+i+1 add_l Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op add_h 1 Set +7 1 Opc_Add+2 new_op opcode addr w result 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op updated +9 1 + + + + + + + + + +Page Zero IndirectY Read Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo addr_lo r Set +5 1 Opc_Add+2 new_op addr Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op addr+i r Set +7 1 Opc_Add+2 new_op addr+i r operand Set +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+2 new_op 1 Set +9 1 opcode 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +10 0 updated + + + + +Page Zero IndirectX Write Addressing Mode + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +___________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +-------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 add_lo add_lo Set +-------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Opc_Add+2 add_lo add_lo r 1 Set +5 1 Opc_Add+2 new_op addr 1 Set +-------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Opc_Add+2 new_op addr+i w result Set +7 1 Opc_Add+2 new_op opcode Set updated +-------------------------------------------------------------------------------------------------------------------------------------------- +8 0 Opc_Add+3 new_op +9 1 + + + + + + +Relative Addressing Mode + + +c e ALU +l n prog prog prog data memory page zero stack Control Processsor +k b counter data fetch add rw wdata rdata add rw wdata rdata op rdata wdata execute Signals registers +____________________________________________________________________________________________________________________________________________________________ +0 0 Opc_Add +1 1 Opc_Add opcode opcode +---------------------------------------------------------------------------------------------------------------------------------------------------- +2 0 Opc_Add+1 opcode Set +3 1 Opc_Add+1 offset offset Set +---------------------------------------------------------------------------------------------------------------------------------------------------- +4 0 Next_Op_Add offset 1 +5 1 Next_Op_Add new_op opcode 1 +---------------------------------------------------------------------------------------------------------------------------------------------------- +6 0 Next_Op_Add+1 new_op + + + + + +Addressing Modes +=============================================================================================== + + + + + +Stack StackRead/StackWrite +------------------------------------------------------- +Operation uses the Stack + + + +Jump Absolute Read +------------------------------------------------------- +16 bit destination address follows opcode + + +Jump Indirect Read +------------------------------------------------------- +16 bit Address following opcode points to destination address + + + + +Jump Sub Absolute Read_Stackwrite +------------------------------------------------------- +16 bit destination address follows opcode. Return address is pushed on stack + + + +Break Read_Stackwrite +------------------------------------------------------- +Return address is pushed on stack and the IRQ vector is taken + + + +Return from Interrupt Read_Stackread +------------------------------------------------------- +PSR and Prog_counter are pulled from stack + + + + +Return from Subroutine Read_Stackread +------------------------------------------------------- +Prog_counter is pulled from stack + + + + + + + + + + + + + +Interrupts +=============================================================================================== + +Non-Maskable (NMI) + + 1) Finish current instruction + 2) Push Address of next instruction on stack + 3) Read Vector Address from FFFA + 4) Execute code @ vector address + + + +Maskable (IRQ) ( if I bit is clear) + + 1) Finish current instruction + 2) Push Address of next instruction on stack + 3) Push PSR on stack + 4) Read Vector Address from FFFE + 5) Execute code @ vector address + + +Reset + + 1) Clear A,X,Y: Set PSR to 20h + 2) Wait for Reset to deassert + 3) Read Vector Address from FFFC + 4) Execute code @ vector address + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/doc/Readme.txt =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/Readme.txt (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/Readme.txt (revision 57) @@ -0,0 +1,57 @@ + + + + +This component comes from the opencores t6507lp project and makes it socgen compatible. The original project checked in by Gabriel Oshiro Zardo and Samuel Nascimento Pagliarini was a atari 2600 on a chip. This project only takes the t6507 processor and uses it as a 6502. It had some documentation and a test suite that was somewhat working. + +I chose it because a 6502 is a useful module and had clean partitioning. The following changes were made: + + + +1) Converted to a full 16 bit address bus. + + also hardcoded the 8 bit data bus. Hasn't changed in thirty five years. + +2) Converted parameters to `defines + +3) Converted reset to synchronous active high + +4) Converted test suite to socgen format + + Each test is in it's own subdirectory and any needed code is assembled and loaded into sram + +5) Design had no reset/interrupt vectors. Added reset vector. May add interupt(s) later. + +6) Added enable logic so that it could work with synchronous sram + +7) Design doesn't appear to be fully functional. + CLC followed by BCC missed the offset by one clock cycle. + JSR doesn't push high address on stack. puts wrong data in page 00 + Branch backwards doesn't work. + read/modify/write did not work + pha pushed onto page 0 + pha data latched one clock to late + jmp indirect didn't work + +8) Split T6502_fsm into smaller blocks for ease of documenting and verifying + +9) Move branch decision logic into sequencer block + +10) removed BCD logic + +11) moved alu_opcode to instr_decode block + +12) created datapath logic for alu_operand_a, alu_operand_b and alu_operand_c + +13) split alu into alu_control and alu blocks + +14) reworked the inst_decode signals to alu and pulled datapath out of sequencer + +15) removed the latched alu_result. Outside of alu now uses raw + + + + +This appears to be a work in progress with numerous issues. I fixed enough of them so that I can +synthesize into an fpga and it runs the io_poll program on a Nexys2 Board. I will commit this as +a start but it is alpha code and will have bugs.
projects/Mos6502/ip/T6502_alu_logic/doc/Readme.txt Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/doc/orig6502.txt =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/orig6502.txt (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/orig6502.txt (revision 57) @@ -0,0 +1,151 @@ + ADC abs | 6D | ADC abs | + ADC abs,X | 7D | ADC abs,X | + ADC abs,Y | 79 | ADC abs,Y | + ADC #n | 69 | ADC #n | + ADC zp | 65 | ADC zp | + ADC (zp,X) | 61 | ADC (zp,X) | + ADC zp,X | 75 | ADC zp,X | + ADC (zp),Y | 71 | ADC (zp),Y | + AND abs | 2D | AND abs | + AND abs,X | 3D | AND abs,X | + AND abs,Y | 39 | AND abs,Y | + AND #n | 29 | AND #n | + AND zp | 25 | AND zp | + AND (zp,X) | 21 | AND (zp,X) | + AND zp,X | 35 | AND zp,X | + AND (zp),Y | 31 | AND (zp),Y | + ASL A | 0A | ASL A | + ASL abs | 0E | ASL abs | + ASL abs,X | 1E | ASL abs,X | + ASL zp | 06 | ASL zp | + ASL zp,X | 16 | ASL zp,X | + BCC rel | 90 | BCC rel | + BCS rel | B0 | BCS rel | + BEQ rel | F0 | BEQ rel | + BIT abs | 2C | BIT abs | + BIT zp | 24 | BIT zp | + BMI rel | 30 | BMI rel | + BNE rel | D0 | BNE rel | + BPL rel | 10 | BPL rel | + BRK | 00 | BRK | + BVC rel | 50 | BVC rel | + BVS rel | 70 | BVS rel | + CLC | 18 | CLC | + CLD | D8 | CLD | + CLI | 58 | CLI | + CLV | B8 | CLV | + CMP abs | CD | CMP abs | + CMP abs,X | DD | CMP abs,X | + CMP abs,Y | D9 | CMP abs,Y | + CMP #n | C9 | CMP #n | + CMP zp | C5 | CMP zp | + CMP (zp,X) | C1 | CMP (zp,X) | + CMP zp,X | D5 | CMP zp,X | + CMP (zp),Y | D1 | CMP (zp),Y | + CPX abs | EC | CPX abs | + CPX #n | E0 | CPX #n | + CPX zp | E4 | CPX zp | + CPY abs | CC | CPY abs | + CPY #n | C0 | CPY #n | + CPY zp | C4 | CPY zp | + DEC abs | CE | DEC abs | + DEC abs,X | DE | DEC abs,X | + DEC zp | C6 | DEC zp | + DEC zp,X | D6 | DEC zp,X | + DEX | CA | DEX | + DEY | 88 | DEY | + EOR abs | 4D | EOR abs | + EOR abs,X | 5D | EOR abs,X | + EOR abs,Y | 59 | EOR abs,Y | + EOR #n | 49 | EOR #n | + EOR zp | 45 | EOR zp | + EOR (zp,X) | 41 | EOR (zp,X) | + EOR zp,X | 55 | EOR zp,X | + EOR (zp),Y | 51 | EOR (zp),Y | + INC abs | EE | INC abs | + INC abs,X | FE | INC abs,X | + INC zp | E6 | INC zp | + INC zp,X | F6 | INC zp,X | + INX | E8 | INX | + INY | C8 | INY | + JMP abs | 4C | JMP abs | + JMP (abs) | 6C | JMP (abs) | + JSR abs | 20 | JSR abs | + LDA abs | AD | LDA abs | + LDA abs,X | BD | LDA abs,X | + LDA abs,Y | B9 | LDA abs,Y | + LDA #n | A9 | LDA #n | + LDA zp | A5 | LDA zp | + LDA (zp,X) | A1 | LDA (zp,X) | + LDA zp,X | B5 | LDA zp,X | + LDA (zp),Y | B1 | LDA (zp),Y | + LDX abs | AE | LDX abs | + LDX abs,Y | BE | LDX abs,Y | + LDX #n | A2 | LDX #n | + LDX zp | A6 | LDX zp | + LDX zp,Y | B6 | LDX zp,Y | + LDY abs | AC | LDY abs | + LDY abs,X | BC | LDY abs,X | + LDY #n | A0 | LDY #n | + LDY zp | A4 | LDY zp | + LDY zp,X | B4 | LDY zp,X | + LSR A | 4A | LSR A | + LSR abs | 4E | LSR abs | + LSR abs,X | 5E | LSR abs,X | + LSR zp | 46 | LSR zp | + LSR zp,X | 56 | LSR zp,X | + NOP | EA | NOP | + ORA abs | 0D | ORA abs | + ORA abs,X | 1D | ORA abs,X | + ORA abs,Y | 19 | ORA abs,Y | + ORA #n | 09 | ORA #n | + ORA zp | 05 | ORA zp | + ORA (zp,X) | 01 | ORA (zp,X) | + ORA zp,X | 15 | ORA zp,X | + ORA (zp),Y | 11 | ORA (zp),Y | + PHA | 48 | PHA | + PHP | 08 | PHP | + PLA | 68 | PLA | + PLP | 28 | PLP | + ROL A | 2A | ROL A | + ROL abs | 2E | ROL abs | + ROL abs,X | 3E | ROL abs,X | + ROL zp | 26 | ROL zp | + ROL zp,X | 36 | ROL zp,X | + ROR A | 6A | ROR A | + ROR abs | 6E | ROR abs | + ROR abs,X | 7E | ROR abs,X | + ROR zp | 66 | ROR zp | + ROR zp,X | 76 | ROR zp,X | + RTI | 40 | RTI | + RTS | 60 | RTS | + SBC abs | ED | SBC abs | + SBC abs,X | FD | SBC abs,X | + SBC abs,Y | F9 | SBC abs,Y | + SBC #n | E9 | SBC #n | + SBC zp | E5 | SBC zp | + SBC (zp,X) | E1 | SBC (zp,X) | + SBC zp,X | F5 | SBC zp,X | + SBC (zp),Y | F1 | SBC (zp),Y | + SEC | 38 | SEC | + SED | F8 | SED | + SEI | 78 | SEI | + STA abs | 8D | STA abs | + STA abs,X | 9D | STA abs,X | + STA abs,Y | 99 | STA abs,Y | + STA zp | 85 | STA zp | + STA (zp,X) | 81 | STA (zp,X) | + STA zp,X | 95 | STA zp,X | + STA (zp),Y | 91 | STA (zp),Y | + STX abs | 8E | STX abs | + STX zp | 86 | STX zp | + STX zpy | 96 | STX zpy | + STY abs | 8C | STY abs | + STY zp | 84 | STY zp | + STY zp,X | 94 | STY zp,X | + TAX | AA | TAX | + TAY | A8 | TAY | + TSX | BA | TSX | + TXA | 8A | TXA | + TXS | 9A | TXS | + TYA | 98 | TYA |
projects/Mos6502/ip/T6502_alu_logic/doc/orig6502.txt Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/doc/copyright.v =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/doc/copyright.v (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/doc/copyright.v (revision 57) @@ -0,0 +1,80 @@ +//////////////////////////////////////////////////////////////////// +// -------------- // +// / SOC \ // +// / GEN \ // +// / COMPONENT \ // +// ==================== // +// |digital done right| // +// |__________________| // +// // +// // +// // +// 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 // +// // +//////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +//// //// +//// T6507LP IP Core //// +//// //// +//// This file is part of the T6507LP project //// +//// http://www.opencores.org/cores/t6507lp/ //// +//// //// +//// Description //// +//// Implementation of a 6507-compatible microprocessor //// +//// //// +//// To Do: //// +//// - Everything //// +//// //// +//// Author(s): //// +//// - Gabriel Oshiro Zardo, gabrieloshiro@gmail.com //// +//// - Samuel Nascimento Pagliarini (creep), snpagliarini@gmail.com //// +//// //// +//////////////////////////////////////////////////////////////////////////// +//// //// +//// Copyright (C) 2001 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 //// +//// //// +////////////////////////////////////////////////////////////////////////////
projects/Mos6502/ip/T6502_alu_logic/doc/copyright.v Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/bin/Makefile =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/bin/Makefile (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/bin/Makefile (revision 57) @@ -0,0 +1,2 @@ +include ../../../bin/Makefile.root +
projects/Mos6502/ip/T6502_alu_logic/bin/Makefile Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/liblist =================================================================== Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/TB.defs =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/TB.defs (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/TB.defs (revision 57) @@ -0,0 +1,10 @@ +`define TIMEOUT 2000000 + + + + + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/test_define =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/test_define (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/test_define (revision 57) @@ -0,0 +1,23 @@ +initial +begin +$display(" "); +$display(" ==================================================="); +$display(" Test Start"); +$display(" ==================================================="); +$display(" "); +cg.next(20); +cg.reset_off; + +while (run == 1'b0) +begin + + +cg.next(1); +end + + +cg.exit; +end + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dmp_define =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dmp_define (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dmp_define (revision 57) @@ -0,0 +1,7 @@ + $dumpfile ("TestBench.vcd"); + $dumpvars (0, TB); + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dut =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dut (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/dut (revision 57) @@ -0,0 +1,513 @@ + + +wire [7:0] alu_op_a; +wire [7:0] alu_op_b; +wire alu_op_c; +wire alu_op_b_inv; + + +reg [7:0] alu_op_a_drv; +reg [7:0] alu_op_b_drv; +reg alu_op_c_drv; +reg alu_op_b_inv_drv; + + +reg [7:0] next_alu_op_a; +reg [7:0] next_alu_op_b; +reg next_alu_op_c; +reg next_alu_op_b_inv; + + + + + +wire [7:0] result; +wire r_result; +wire c_result; +wire v_result; + +wire [7:0] and_out; +wire [7:0] orr_out; +wire [7:0] eor_out; + + +wire [8:0] a_sh_left; +wire [8:0] a_sh_right; +wire [8:0] b_sh_left; +wire [8:0] b_sh_right; + + + +reg [7:0] exp_result; +reg exp_r_result; +reg exp_c_result; +reg exp_v_result; + +reg [7:0] exp_and_out; +reg [7:0] exp_orr_out; +reg [7:0] exp_eor_out; + + +reg [8:0] exp_a_sh_left; +reg [8:0] exp_a_sh_right; +reg [8:0] exp_b_sh_left; +reg [8:0] exp_b_sh_right; + + + + + + + +T6502_alu_logic +dut ( + .alu_op_a ( alu_op_a ), + .alu_op_b ( alu_op_b ), + .alu_op_c ( alu_op_c ), + .alu_op_b_inv ( alu_op_b_inv ), + + .result ( result ), + .r_result ( r_result ), + .c_result ( c_result ), + .v_result ( v_result ), + + .and_out ( and_out ), + .orr_out ( orr_out ), + .eor_out ( eor_out ), + + .a_sh_left ( a_sh_left ), + .a_sh_right ( a_sh_right ), + .b_sh_left ( b_sh_left ), + .b_sh_right ( b_sh_right ) + + + +); + + +reg run; +reg next_run; + + + +always@(posedge clk) + if(reset) + begin + run <= 1'b0; + alu_op_a_drv <= 8'h00; + alu_op_b_drv <= 8'h00; + alu_op_c_drv <= 1'b0; + alu_op_b_inv_drv <= 1'b0; + end + else + begin + run <= next_run; + alu_op_a_drv <= next_alu_op_a; + alu_op_b_drv <= next_alu_op_b; + alu_op_c_drv <= next_alu_op_c; + alu_op_b_inv_drv <= next_alu_op_b_inv; + end + + + + + +always@(*) + begin + next_run = run; + next_alu_op_a = alu_op_a_drv; + next_alu_op_b = alu_op_b_drv; + next_alu_op_c = alu_op_c_drv; + next_alu_op_b_inv = alu_op_b_inv_drv; + + + if(run) + begin + next_run = 1'b1; + next_alu_op_a = 8'h00; + next_alu_op_b = 8'h00; + next_alu_op_c = 1'b0; + next_alu_op_b_inv = 1'b0; + end + else + begin + next_alu_op_a = alu_op_a_drv+8'h01; + if(alu_op_a_drv == 8'hff) + begin + next_alu_op_b = alu_op_b_drv+8'h01; + if(alu_op_b_drv == 8'hff) + begin + {next_run,next_alu_op_c , next_alu_op_b_inv} = {run,alu_op_c_drv, alu_op_b_inv_drv} + 3'b001; + end + end + end + end + + + +always@(*) + begin + exp_and_out = alu_op_a_drv & alu_op_b_drv; + exp_orr_out = alu_op_a_drv | alu_op_b_drv; + exp_eor_out = alu_op_a_drv ^ alu_op_b_drv; + exp_a_sh_left = {alu_op_a_drv,alu_op_c_drv}; + exp_a_sh_right = {alu_op_a_drv[0],alu_op_c_drv, alu_op_a_drv[7:1]}; + exp_b_sh_left = {alu_op_b_drv,alu_op_c_drv}; + exp_b_sh_right = {alu_op_b_drv[0],alu_op_c_drv, alu_op_b_drv[7:1]}; + end + + +always@(*) + begin + if(alu_op_b_inv_drv) + begin + {exp_r_result,exp_result} = alu_op_a_drv - alu_op_b_drv - (!alu_op_c_drv) ; + exp_c_result = !exp_r_result ; + exp_v_result = ((alu_op_a_drv[7] == alu_op_b_drv[7]) && (alu_op_a_drv[7] != exp_result[7])); + end + else + begin + {exp_r_result,exp_result} = alu_op_a_drv + alu_op_b_drv + alu_op_c_drv ; + exp_c_result = exp_r_result ; + exp_v_result = ((alu_op_a_drv[7] == alu_op_b_drv[7]) && (alu_op_a_drv[7] != exp_result[7])); + end + + + + end + + + + + + + +io_probe +#(.WIDTH (8), + .RESET ({8{1'b0}}), + .IN_DELAY (0), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +alu_op_a_tprb +( + .clk ( clk ), + .drive_value ( alu_op_a_drv ), + .expected_value (8'b0 ), + .mask (8'b0 ), + .signal ( alu_op_a ) + +); + + + + + +io_probe +#(.WIDTH (8), + .RESET ({8{1'b0}}), + .IN_DELAY (0), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +alu_op_b_tprb +( + .clk ( clk ), + .drive_value ( alu_op_b_drv ), + .expected_value (8'b0 ), + .mask (8'b0 ), + .signal ( alu_op_b ) + +); + + + + + + + +io_probe +#(.WIDTH (1), + .RESET ({1{1'b0}}), + .IN_DELAY (0), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +alu_op_c_tprb +( + .clk ( clk ), + .drive_value ( alu_op_c_drv ), + .expected_value (1'b0 ), + .mask (1'b0 ), + .signal ( alu_op_c ) + +); + + + + + + + +io_probe +#(.WIDTH (1), + .RESET ({1{1'b0}}), + .IN_DELAY (0), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +alu_op_b_inv_tprb +( + .clk ( clk ), + .drive_value ( alu_op_b_inv_drv ), + .expected_value (1'b0 ), + .mask (1'b0 ), + .signal ( alu_op_b_inv ) + +); + + + + + + + + + + +io_probe +#(.MESG("result error"), + .WIDTH (8), + .RESET ({8{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +result_tprb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz), + .expected_value ( exp_result ), + .mask (8'b11111111 ), + .signal ( result ) + +); + + + + + + +io_probe +#(.MESG("and_out error"), + .WIDTH (8), + .RESET ({8{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +and_out_tprb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz), + .expected_value ( exp_and_out ), + .mask (8'b11111111 ), + .signal ( and_out ) + +); + + + + +io_probe +#(.MESG("orr_out error"), + .WIDTH (8), + .RESET ({8{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +orr_out_tprb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz), + .expected_value ( exp_orr_out ), + .mask (8'b11111111 ), + .signal ( orr_out ) + +); + + + + +io_probe +#(.MESG("eor_out error"), + .WIDTH (8), + .RESET ({8{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +eor_out_tprb +( + .clk ( clk ), + .drive_value (8'bzzzzzzzz), + .expected_value ( exp_eor_out ), + .mask (8'b11111111 ), + .signal ( eor_out ) + +); + + + + + + +io_probe +#(.MESG("a_sh_left error"), + .WIDTH (9), + .RESET ({9{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +a_sh_left_tprb +( + .clk ( clk ), + .drive_value (9'bzzzzzzzzz ), + .expected_value ( exp_a_sh_left ), + .mask (9'b111111111 ), + .signal ( a_sh_left ) + +); + + + +io_probe +#(.MESG("a_sh_right error"), + .WIDTH (9), + .RESET ({9{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +a_sh_right_tprb +( + .clk ( clk ), + .drive_value (9'bzzzzzzzzz ), + .expected_value ( exp_a_sh_right ), + .mask (9'b111111111 ), + .signal ( a_sh_right ) + +); + + + + +io_probe +#(.MESG("b_sh_left error"), + .WIDTH (9), + .RESET ({9{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +b_sh_left_tprb +( + .clk ( clk ), + .drive_value (9'bzzzzzzzzz ), + .expected_value ( exp_b_sh_left ), + .mask (9'b111111111 ), + .signal ( b_sh_left ) + +); + + + +io_probe +#(.MESG("b_sh_right error"), + .WIDTH (9), + .RESET ({9{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +b_sh_right_tprb +( + .clk ( clk ), + .drive_value (9'bzzzzzzzzz ), + .expected_value ( exp_b_sh_right ), + .mask (9'b111111111 ), + .signal ( b_sh_right ) + +); + + + + +io_probe +#(.MESG("r_result error"), + .WIDTH (1), + .RESET ({1{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +r_result_tprb +( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_r_result ), + .mask (1'b1 ), + .signal ( r_result ) + +); + + + + + +io_probe +#(.MESG("c_result error"), + .WIDTH (1), + .RESET ({1{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +c_result_tprb +( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_c_result ), + .mask (1'b1 ), + .signal ( c_result ) + +); + + + + + +io_probe +#(.MESG("v_result error"), + .WIDTH (1), + .RESET ({1{1'bz}}), + .IN_DELAY (5), + .OUT_DELAY (15), + .OUT_WIDTH (10) + ) +v_result_tprb +( + .clk ( clk ), + .drive_value (1'bz ), + .expected_value ( exp_v_result ), + .mask (1'b1 ), + .signal ( v_result ) + +); + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/modellist =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/modellist (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/modellist (revision 57) @@ -0,0 +1,5 @@ +`include "../../bench/verilog/models/clock_gen.v" +`include "../../bench/verilog/models/io_probe.v" + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/Makefile =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/Makefile (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/run/alu_logic_test/Makefile (revision 57) @@ -0,0 +1,3 @@ +include ../../../../../bin/Makefile.root +comp=T6502_alu_logic +test=alu_logic_test Index: projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/TB.defs =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/TB.defs (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/TB.defs (revision 57) @@ -0,0 +1,10 @@ +`define TIMEOUT 2000000 + + + + + + + + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/dut =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/dut (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/dut (revision 57) @@ -0,0 +1,87 @@ + + +wire [7:0] alu_op_a; +wire [7:0] alu_op_b; +wire alu_op_c; +wire alu_op_b_inv; + + +reg [7:0] alu_op_a_drv; +reg [7:0] alu_op_b_drv; +reg alu_op_c_drv; +reg alu_op_b_inv_drv; + + +reg [7:0] next_alu_op_a; +reg [7:0] next_alu_op_b; +reg next_alu_op_c; +reg next_alu_op_b_inv; + + + + + +wire [7:0] result; +wire r_result; +wire c_result; +wire v_result; + +wire [7:0] and_out; +wire [7:0] orr_out; +wire [7:0] eor_out; + + +wire [8:0] a_sh_left; +wire [8:0] a_sh_right; +wire [8:0] b_sh_left; +wire [8:0] b_sh_right; + + + +reg [7:0] exp_result; +reg exp_r_result; +reg exp_c_result; +reg exp_v_result; + +reg [7:0] exp_and_out; +reg [7:0] exp_orr_out; +reg [7:0] exp_eor_out; + + +reg [8:0] exp_a_sh_left; +reg [8:0] exp_a_sh_right; +reg [8:0] exp_b_sh_left; +reg [8:0] exp_b_sh_right; + + + + + + + +T6502_alu_logic +dut ( + .alu_op_a ( alu_op_a ), + .alu_op_b ( alu_op_b ), + .alu_op_c ( alu_op_c ), + .alu_op_b_inv ( alu_op_b_inv ), + + .result ( result ), + .r_result ( r_result ), + .c_result ( c_result ), + .v_result ( v_result ), + + .and_out ( and_out ), + .orr_out ( orr_out ), + .eor_out ( eor_out ), + + .a_sh_left ( a_sh_left ), + .a_sh_right ( a_sh_right ), + .b_sh_left ( b_sh_left ), + .b_sh_right ( b_sh_right ) + + + +); + + Index: projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/Makefile =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/Makefile (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/cov/T6502_alu_logic/Makefile (revision 57) @@ -0,0 +1,46 @@ +SHELL=/bin/sh +MAKE=make +VARIANT=T6502_alu_logic +VPP_NAME=vppreproc + + + +################################################################################ +# set up coverage +################################################################################ + + + +.PHONY build_cdd: +build_cdd: + echo "################################################################################"; \ + echo; \ + $(VPP_NAME) --noline --noblank -DSYNTHESIS ../../bench/verilog/TestBench.cov > $(VARIANT).v ;\ + covered score -i TB.dut -t $(VARIANT) -I ./ -v ./$(VARIANT).v -o $(VARIANT).cdd 2> $(VARIANT)_cov.log | tee >> $(VARIANT)_cov.log ;\ + echo "################################################################################"; \ + + +################################################################################ +# score coverage from vcd +################################################################################ + + + +.PHONY score_cov: +score_cov: + echo "################################################################################"; \ + echo " Scoring ${$TEST} ";\ + covered score -cdd $(VARIANT).cdd -vcd ../../out/$(TEST).vcd 2>> $(VARIANT)_sco_cov.log | tee >> $(VARIANT)_sco_cov.log ;\ + + + +################################################################################ +# run coverage report +################################################################################ + + + +.PHONY report_cov: +report_cov: + echo "################################################################################"; \ + covered report -cdd $(VARIANT).cdd 2> $(VARIANT)_rep_cov.log | tee >> $(VARIANT)_rep_cov.log ;\ Index: projects/Mos6502/ip/T6502_alu_logic/sim/bin/Makefile =================================================================== --- projects/Mos6502/ip/T6502_alu_logic/sim/bin/Makefile (nonexistent) +++ projects/Mos6502/ip/T6502_alu_logic/sim/bin/Makefile (revision 57) @@ -0,0 +1,3 @@ +include ../../../../bin/Makefile.root + +
projects/Mos6502/ip/T6502_alu_logic/sim/bin/Makefile Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/ps2_interface/rtl/xml/ps2_interface.xml =================================================================== --- projects/logic/ip/ps2_interface/rtl/xml/ps2_interface.xml (revision 56) +++ projects/logic/ip/ps2_interface/rtl/xml/ps2_interface.xml (revision 57) @@ -1,7 +1,7 @@ ps2_interface - logic + ps2_interface cde_sram @@ -9,11 +9,32 @@ cde - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde + + cde_serial_xmit + cde_serial_xmit + cde + + + + cde_serial_rcvr + cde_serial_rcvr + cde + + + + + +default + + +mouse + +
/projects/logic/ip/ps2_interface/rtl/variants/ps2_interface/defines.v
1,6 → 1,4
 
`define VARIANT ps2_interface
`define CDE cde
 
`define FSM _fsm
 
projects/logic/ip/ps2_interface/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/ps2_interface/sim/run/mouse/filelist =================================================================== --- projects/logic/ip/ps2_interface/sim/run/mouse/filelist (revision 56) +++ projects/logic/ip/ps2_interface/sim/run/mouse/filelist (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/sim/ps2_interface.v" - Index: projects/logic/ip/ps2_interface/sim/run/mouse/filelist.cov =================================================================== --- projects/logic/ip/ps2_interface/sim/run/mouse/filelist.cov (revision 56) +++ projects/logic/ip/ps2_interface/sim/run/mouse/filelist.cov (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/ps2_interface.v" -
projects/logic/ip/ps2_interface/sim/run/mouse/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/ps2_interface/sim/cov/ps2_interface/filelist =================================================================== --- projects/logic/ip/ps2_interface/sim/cov/ps2_interface/filelist (revision 56) +++ projects/logic/ip/ps2_interface/sim/cov/ps2_interface/filelist (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/ps2_interface.v" -
projects/logic/ip/ps2_interface/sim/cov/ps2_interface/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/disp_io/rtl/xml/disp_io.xml =================================================================== --- projects/logic/ip/disp_io/rtl/xml/disp_io.xml (revision 56) +++ projects/logic/ip/disp_io/rtl/xml/disp_io.xml (revision 57) @@ -1,19 +1,21 @@ disp_io - logic + disp_io - cde_sram - cde_sram + cde_divider + cde_divider cde - - cde_sync_with_hystersis - cde_synchronizers - cde - + - + + + +default + + +
/projects/logic/ip/disp_io/rtl/variants/disp_io/defines.v File deleted \ No newline at end of file
projects/logic/ip/disp_io/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/disp_io/sim/cov/disp_io/filelist =================================================================== --- projects/logic/ip/disp_io/sim/cov/disp_io/filelist (revision 56) +++ projects/logic/ip/disp_io/sim/cov/disp_io/filelist (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/disp_io.v" -
projects/logic/ip/disp_io/sim/cov/disp_io/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr.xml =================================================================== --- projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr.xml (revision 56) +++ projects/logic/ip/serial_rcvr/rtl/xml/serial_rcvr.xml (revision 57) @@ -1,7 +1,7 @@ serial_rcvr - logic + serial_rcvr cde_sram @@ -9,11 +9,37 @@ cde - cde_sync_with_hystersis + cde_fifo + cde_fifo + cde + + + cde_sync_with_hysteresis cde_synchronizers cde + + cde_divider + cde_divider + cde + + + cde_serial_rcvr + cde_serial_rcvr + cde + + + + + + + + +default + + +
projects/logic/ip/serial_rcvr/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/serial_rcvr/sim/cov/serial_rcvr/filelist =================================================================== --- projects/logic/ip/serial_rcvr/sim/cov/serial_rcvr/filelist (revision 56) +++ projects/logic/ip/serial_rcvr/sim/cov/serial_rcvr/filelist (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/serial_rcvr.v" -
projects/logic/ip/serial_rcvr/sim/cov/serial_rcvr/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/uart/rtl/xml/uart.xml =================================================================== --- projects/logic/ip/uart/rtl/xml/uart.xml (revision 56) +++ projects/logic/ip/uart/rtl/xml/uart.xml (revision 57) @@ -1,7 +1,18 @@ uart - logic + uart + + + + + serial_rcvr + serial_rcvr + + + + + cde_sram @@ -9,11 +20,46 @@ cde - cde_sync_with_hystersis + cde_fifo + cde_fifo + cde + + + + cde_divider + cde_divider + cde + + + + cde_serial_xmit + cde_serial_xmit + cde + + + + cde_serial_rcvr + cde_serial_rcvr + cde + + + + + cde_sync_with_hysteresis cde_synchronizers cde + + + +default + + +divide + + +
/projects/logic/ip/uart/rtl/variants/uart/defines.v
1,4 → 1,2
 
`define VARIANT uart
`define CDE cde
 
/projects/logic/ip/uart/sim/run/default/filelist File deleted \ No newline at end of file
/projects/logic/ip/uart/sim/run/default/filelist.cov File deleted \ No newline at end of file
projects/logic/ip/uart/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/uart/sim/run/divide/filelist =================================================================== --- projects/logic/ip/uart/sim/run/divide/filelist (revision 56) +++ projects/logic/ip/uart/sim/run/divide/filelist (nonexistent) @@ -1,5 +0,0 @@ - -`include "../../../rtl/gen/sim/uart.v" -`include "../../../../serial_rcvr/rtl/gen/sim/serial_rcvr.v" - - Index: projects/logic/ip/uart/sim/run/divide/filelist.cov =================================================================== --- projects/logic/ip/uart/sim/run/divide/filelist.cov (revision 56) +++ projects/logic/ip/uart/sim/run/divide/filelist.cov (nonexistent) @@ -1,5 +0,0 @@ - -`include "../../../rtl/gen/syn/uart.v" -`include "../../../../serial_rcvr/rtl/gen/syn/serial_rcvr.v" - -
projects/logic/ip/uart/sim/run/divide/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/uart/sim/cov/uart/filelist =================================================================== --- projects/logic/ip/uart/sim/cov/uart/filelist (revision 56) +++ projects/logic/ip/uart/sim/cov/uart/filelist (nonexistent) @@ -1,5 +0,0 @@ - -`include "../../../rtl/gen/syn/uart.v" -`include "../../../../serial_rcvr/rtl/gen/syn/serial_rcvr.v" - - \ No newline at end of file
projects/logic/ip/uart/sim/cov/uart/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/io_module/rtl/xml/io_module_mouse.xml =================================================================== --- projects/logic/ip/io_module/rtl/xml/io_module_mouse.xml (revision 56) +++ projects/logic/ip/io_module/rtl/xml/io_module_mouse.xml (revision 57) @@ -1,7 +1,24 @@ - io_module_mouse - logic + io_module + io_module_mouse + + + + + uart + uart + + + serial_rcvr + serial_rcvr + + + ps2_interface + ps2_interface + + + cde_sram @@ -8,12 +25,44 @@ cde_sram cde + - cde_sync_with_hystersis + cde_fifo + cde_fifo + cde + + + + + cde_divider + cde_divider + cde + + + + cde_serial_rcvr + cde_serial_rcvr + cde + + + + cde_serial_xmit + cde_serial_xmit + cde + + + cde_sync_with_hysteresis cde_synchronizers cde + - + + +mouse + + + +
/projects/logic/ip/io_module/rtl/xml/io_module.xml
1,20 → 1,67
<components>
<component>
<name>io_module</name>
<parent>logic</parent>
<library>
<variant>io_module</variant>
 
<brothers>
<brother>
<variant>uart</variant>
<component>uart</component>
</brother>
 
<brother>
<variant>serial_rcvr</variant>
<component>serial_rcvr</component>
</brother>
<brother>
<variant>vga_char_ctrl</variant>
<component>vga_char_ctrl</component>
</brother>
<brother>
<variant>ps2_interface</variant>
<component>ps2_interface</component>
</brother>
</brothers>
 
<library>
<child>
<name>cde_sram</name>
<parent>cde_sram</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_sync_with_hystersis</name>
<name>cde_fifo</name>
<parent>cde_fifo</parent>
<family>cde</family>
</child>
 
 
<child>
<name>cde_divider</name>
<parent>cde_divider</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_serial_rcvr</name>
<parent>cde_serial_rcvr</parent>
<family>cde</family>
</child>
 
<child>
<name>cde_serial_xmit</name>
<parent>cde_serial_xmit</parent>
<family>cde</family>
</child>
<child>
<name>cde_sync_with_hysteresis</name>
<parent>cde_synchronizers</parent>
<family>cde</family>
</child>
</library>
 
</library>
 
<mem_map>
<mem_space>
<name>gpio_0</name>
150,5 → 197,11
</mem_map>
 
 
<sims>
<sim>
<name>default</name>
</sim>
</sims>
 
</component>
</components>
/projects/logic/ip/io_module/rtl/variants/io_module_mouse/defines.v
1,5 → 1,4
`define VARIANT io_module_mouse
`define CDE cde
 
`define TIMER _timer
`define TIMER_MICRO_REG _timer_micro_reg
`define GPIO _gpio
/projects/logic/ip/io_module/rtl/variants/io_module/defines.v
1,5 → 1,4
`define VARIANT io_module
`define CDE cde
 
`define TIMER _timer
`define TIMER_MICRO_REG _timer_micro_reg
`define GPIO _gpio
projects/logic/ip/io_module/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/io_module/sim/run/mouse/filelist =================================================================== --- projects/logic/ip/io_module/sim/run/mouse/filelist (revision 56) +++ projects/logic/ip/io_module/sim/run/mouse/filelist (nonexistent) @@ -1,6 +0,0 @@ - -`include "../../../rtl/gen/sim/io_module_mouse.v" -`include "../../../../uart/rtl/gen/sim/uart.v" -`include "../../../../ps2_interface/rtl/gen/sim/ps2_interface.v" -`include "../../../../vga_char_ctrl/rtl/gen/sim/vga_char_ctrl.v" -`include "../../../../serial_rcvr/rtl/gen/sim/serial_rcvr.v" \ No newline at end of file Index: projects/logic/ip/io_module/sim/run/mouse/filelist.cov =================================================================== --- projects/logic/ip/io_module/sim/run/mouse/filelist.cov (revision 56) +++ projects/logic/ip/io_module/sim/run/mouse/filelist.cov (nonexistent) @@ -1,6 +0,0 @@ - -`include "../../../rtl/gen/syn/io_module.v" -`include "../../../../uart/rtl/gen/syn/uart.v" -`include "../../../../ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" -`include "../../../../serial_rcvr/rtl/gen/syn/serial_rcvr.v" \ No newline at end of file
projects/logic/ip/io_module/sim/run/mouse/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/io_module/sim/cov/io_module_mouse/filelist =================================================================== --- projects/logic/ip/io_module/sim/cov/io_module_mouse/filelist (revision 56) +++ projects/logic/ip/io_module/sim/cov/io_module_mouse/filelist (nonexistent) @@ -1,6 +0,0 @@ - -`include "../../../rtl/gen/syn/io_module_mouse.v" -`include "../../../../uart/rtl/gen/syn/uart.v" -`include "../../../../ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v" -`include "../../../../serial_rcvr/rtl/gen/syn/serial_rcvr.v" \ No newline at end of file
projects/logic/ip/io_module/sim/cov/io_module_mouse/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/io_module/sim/cov/io_module/filelist =================================================================== --- projects/logic/ip/io_module/sim/cov/io_module/filelist (revision 56) +++ projects/logic/ip/io_module/sim/cov/io_module/filelist (nonexistent) @@ -1,6 +0,0 @@ - -`include "../../../rtl/gen/syn/io_module.v" -`include "../../../../uart/rtl/gen/syn/uart.v" -`include "../../../../ps2_interface/rtl/gen/syn/ps2_interface.v" -`include "../../../../serial_rcvr/rtl/gen/syn/serial_rcvr.v" -`include "../../../../vga_char_ctrl/rtl/gen/syn/vga_char_ctrl.v"
projects/logic/ip/io_module/sim/cov/io_module/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/flash_memcontrl/rtl/xml/flash_memcontrl.xml =================================================================== --- projects/logic/ip/flash_memcontrl/rtl/xml/flash_memcontrl.xml (revision 56) +++ projects/logic/ip/flash_memcontrl/rtl/xml/flash_memcontrl.xml (revision 57) @@ -1,7 +1,7 @@ flash_memcontrl - logic + flash_memcontrl cde_sram @@ -9,11 +9,17 @@ cde - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde + + +default + + +
/projects/logic/ip/flash_memcontrl/rtl/variants/flash_memcontrl/defines.v
1,2 → 1,2
`define VARIANT flash_memcontrl
 
 
projects/logic/ip/flash_memcontrl/sim/run/default/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/flash_memcontrl/sim/run/default/filelist.cov =================================================================== --- projects/logic/ip/flash_memcontrl/sim/run/default/filelist.cov (revision 56) +++ projects/logic/ip/flash_memcontrl/sim/run/default/filelist.cov (nonexistent) @@ -1,5 +0,0 @@ - -`include "../../../rtl/gen/syn/flash_memcontrl.v" - - -
projects/logic/ip/flash_memcontrl/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/flash_memcontrl/sim/cov/flash_memcontrl/filelist =================================================================== --- projects/logic/ip/flash_memcontrl/sim/cov/flash_memcontrl/filelist (revision 56) +++ projects/logic/ip/flash_memcontrl/sim/cov/flash_memcontrl/filelist (nonexistent) @@ -1,5 +0,0 @@ - -`include "../../../rtl/gen/syn/flash_memcontrl.v" - - -
projects/logic/ip/flash_memcontrl/sim/cov/flash_memcontrl/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/usb_epp/rtl/xml/usb_epp.xml =================================================================== --- projects/logic/ip/usb_epp/rtl/xml/usb_epp.xml (revision 56) +++ projects/logic/ip/usb_epp/rtl/xml/usb_epp.xml (revision 57) @@ -1,7 +1,7 @@ usb_epp - logic + usb_epp cde_sram @@ -9,11 +9,20 @@ cde - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde + + + + +default + + + +
/projects/logic/ip/usb_epp/rtl/variants/usb_epp/defines.v
1,3 → 1,2
 
`define VARIANT usb_epp
`define CDE cde
projects/logic/ip/usb_epp/sim/run/default/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/usb_epp/sim/run/default/filelist.cov =================================================================== --- projects/logic/ip/usb_epp/sim/run/default/filelist.cov (revision 56) +++ projects/logic/ip/usb_epp/sim/run/default/filelist.cov (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/usb_epp.v" -
projects/logic/ip/usb_epp/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/usb_epp/sim/cov/usb_epp/filelist =================================================================== --- projects/logic/ip/usb_epp/sim/cov/usb_epp/filelist (revision 56) +++ projects/logic/ip/usb_epp/sim/cov/usb_epp/filelist (nonexistent) @@ -1,3 +0,0 @@ - -`include "../../../rtl/gen/syn/usb_epp.v" -
projects/logic/ip/usb_epp/sim/cov/usb_epp/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/rtl/xml/vga_char_ctrl_600x432.xml =================================================================== --- projects/logic/ip/vga_char_ctrl/rtl/xml/vga_char_ctrl_600x432.xml (revision 56) +++ projects/logic/ip/vga_char_ctrl/rtl/xml/vga_char_ctrl_600x432.xml (revision 57) @@ -1,7 +1,7 @@ - vga_char_ctrl_600x432 - logic + vga_char_ctrl + vga_char_ctrl_600x432 cde_sram @@ -9,11 +9,19 @@ cde - cde_sync_with_hystersis + cde_sync_with_hysteresis cde_synchronizers cde + + + +default_600x432 + + + +
/projects/logic/ip/vga_char_ctrl/rtl/xml/vga_char_ctrl.xml
1,7 → 1,7
<components>
<component>
<name>vga_char_ctrl</name>
<parent>logic</parent>
<variant>vga_char_ctrl</variant>
<library>
<child>
<name>cde_sram</name>
9,11 → 9,18
<family>cde</family>
</child>
<child>
<name>cde_sync_with_hystersis</name>
<name>cde_sync_with_hysteresis</name>
<parent>cde_synchronizers</parent>
<family>cde</family>
</child>
 
</library>
 
<sims>
<sim>
<name>default</name>
</sim>
</sims>
 
</component>
</components>
/projects/logic/ip/vga_char_ctrl/rtl/variants/vga_char_ctrl_600x432/defines.v
1,6 → 1,4
 
`define VARIANT vga_char_ctrl_600x432
`define CDE cde
`define CHAR_DISPLAY _char_display
`define CHAR_GEN _char_gen
`define SVGA_TIMING_GENERATION _svga_timing_generation
/projects/logic/ip/vga_char_ctrl/rtl/variants/vga_char_ctrl/defines.v
1,6 → 1,4
 
`define VARIANT vga_char_ctrl
`define CDE cde
`define CHAR_DISPLAY _char_display
`define CHAR_GEN _char_gen
`define SVGA_TIMING_GENERATION _svga_timing_generation
projects/logic/ip/vga_char_ctrl/sim/run/default/filelist.cov Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/liblist =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/liblist (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/liblist (revision 57) @@ -0,0 +1,3 @@ +`include "../../lib/cde_sram/cde_sram.v" + +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/liblist Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/TB.defs =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/TB.defs (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/TB.defs (revision 57) @@ -0,0 +1,5 @@ +`define PERIOD 41.16667 +`define TIMEOUT 20000000 +`define STARTUP "../../../../../sw/startup/startup.abs" +`define FONT "../../../../../sw/font/font.abs" +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/TB.defs Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/test_define =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/test_define (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/test_define (revision 57) @@ -0,0 +1,16 @@ +initial + begin + $display(" "); + $display(" ==================================================="); + $display("%8d Test Start",$realtime/`PERIOD ); + $display(" ==================================================="); + $display(" "); + cg.next(12); + cg.reset_off; + cg.next(1300000); + cg.exit; +end + + + +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/test_define Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dmp_define =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dmp_define (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dmp_define (revision 57) @@ -0,0 +1,8 @@ + + $dumpfile ("TestBench.vcd"); + $dumpvars (0, TB); + + + + +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dmp_define Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dut =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dut (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dut (revision 57) @@ -0,0 +1,46 @@ +wire h_sync; +wire v_sync; + +wire red; +wire green; +wire blue; + + + + +wire [7:0] wdata; +wire [13:0] address; + +wire [2:0] vga_red_pad_out; +wire [2:0] vga_green_pad_out; +wire [1:0] vga_blue_pad_out; +wire hsync_n_pad_out; +wire vsync_n_pad_out; + + +vga_char_ctrl_600x432 +#(.STARTUP(`STARTUP), + .FONT(`FONT)) +dut ( + .clk ( clk ), + .reset ( reset ), + + .ascii_load (1'b0), + .add_l_load (1'b0), + .add_h_load (1'b0), + + .char_color (8'h92), + .back_color (8'h00), + .cursor_color (8'hff), + + .wdata (8'h00), + .address ( address), + + .vga_red_pad_out ( vga_red_pad_out ), + .vga_green_pad_out ( vga_green_pad_out ), + .vga_blue_pad_out ( vga_blue_pad_out ), + + .hsync_n_pad_out ( hsync_n_pad_out ), + .vsync_n_pad_out ( vsync_n_pad_out ) +); +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/dut Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/modellist =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/modellist (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/modellist (revision 57) @@ -0,0 +1,3 @@ +`include "../../bench/verilog/models/clock_gen.v" + +
projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/modellist Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/Makefile =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/Makefile (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/run/default_600x432/Makefile (revision 57) @@ -0,0 +1,3 @@ +include ../../../../../bin/Makefile.root +comp=vga_char_ctrl_600x432 +test=default_600x432 Index: projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/TB.defs =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/TB.defs (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/TB.defs (revision 57) @@ -0,0 +1,5 @@ +`define PERIOD 41.16667 +`define TIMEOUT 20000000 +`define STARTUP "../../../../../sw/startup/startup.abs" +`define FONT "../../../../../sw/font/font.abs" +
projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/TB.defs Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/dut =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/dut (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/dut (revision 57) @@ -0,0 +1,46 @@ +wire h_sync; +wire v_sync; + +wire red; +wire green; +wire blue; + + + + +wire [7:0] wdata; +wire [13:0] address; + +wire [2:0] vga_red_pad_out; +wire [2:0] vga_green_pad_out; +wire [1:0] vga_blue_pad_out; +wire hsync_n_pad_out; +wire vsync_n_pad_out; + + +vga_char_ctrl_600x432 +#(.STARTUP(`STARTUP), + .FONT(`FONT)) +dut ( + .clk ( clk ), + .reset ( reset ), + + .ascii_load (1'b0), + .add_l_load (1'b0), + .add_h_load (1'b0), + + .char_color (8'h92), + .back_color (8'h00), + .cursor_color (8'hff), + + .wdata (8'h00), + .address ( address), + + .vga_red_pad_out ( vga_red_pad_out ), + .vga_green_pad_out ( vga_green_pad_out ), + .vga_blue_pad_out ( vga_blue_pad_out ), + + .hsync_n_pad_out ( hsync_n_pad_out ), + .vsync_n_pad_out ( vsync_n_pad_out ) +); +
projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/dut Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/Makefile =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/Makefile (nonexistent) +++ projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl_600x432/Makefile (revision 57) @@ -0,0 +1,46 @@ +SHELL=/bin/sh +MAKE=make +VARIANT=vga_char_ctrl_600x432 +VPP_NAME=vppreproc + + + +################################################################################ +# set up coverage +################################################################################ + + + +.PHONY build_cdd: +build_cdd: + echo "################################################################################"; \ + echo; \ + $(VPP_NAME) --noline --noblank -DSYNTHESIS ../../bench/verilog/TestBench.cov > $(VARIANT).v ;\ + covered score -i TB.dut -t $(VARIANT) -I ./ -v ./$(VARIANT).v -o $(VARIANT).cdd 2> $(VARIANT)_cov.log | tee >> $(VARIANT)_cov.log ;\ + echo "################################################################################"; \ + + +################################################################################ +# score coverage from vcd +################################################################################ + + + +.PHONY score_cov: +score_cov: + echo "################################################################################"; \ + echo " Scoring ${$TEST} ";\ + covered score -cdd $(VARIANT).cdd -vcd ../../out/$(TEST).vcd 2>> $(VARIANT)_sco_cov.log | tee >> $(VARIANT)_sco_cov.log ;\ + + + +################################################################################ +# run coverage report +################################################################################ + + + +.PHONY report_cov: +report_cov: + echo "################################################################################"; \ + covered report -cdd $(VARIANT).cdd 2> $(VARIANT)_rep_cov.log | tee >> $(VARIANT)_rep_cov.log ;\ Index: projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl/filelist =================================================================== --- projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl/filelist (revision 56) +++ projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl/filelist (nonexistent) @@ -1,2 +0,0 @@ -`include "../../../rtl/gen/syn/vga_char_ctrl.v" -
projects/logic/ip/vga_char_ctrl/sim/cov/vga_char_ctrl/filelist Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: targets/Basys/target.xml =================================================================== --- targets/Basys/target.xml (nonexistent) +++ targets/Basys/target.xml (revision 57) @@ -0,0 +1,12 @@ + + +BASYS + + + disp_io + disp_io + logic + + + + Index: targets/Basys/filelist =================================================================== --- targets/Basys/filelist (nonexistent) +++ targets/Basys/filelist (revision 57) @@ -0,0 +1,8 @@ +verilog work ./target/Pad_Ring.v +verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v +verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v +verilog work ./target/lib/syn/cde_jtag/cde_jtag.v +verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v + + +
targets/Basys/filelist Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: targets/Nexys2/target.xml =================================================================== --- targets/Nexys2/target.xml (nonexistent) +++ targets/Nexys2/target.xml (revision 57) @@ -0,0 +1,23 @@ + + +NEXYS2 + + + disp_io + disp_io + logic + + + flash_memcontrl + flash_memcontrl + logic + + + usb_epp + usb_epp + logic + + + + + Index: targets/Nexys2/filelist =================================================================== --- targets/Nexys2/filelist (nonexistent) +++ targets/Nexys2/filelist (revision 57) @@ -0,0 +1,8 @@ +verilog work ./target/Pad_Ring.v +verilog work ./target/lib/syn/cde_pads/cde_pad_se_dig.v +verilog work ./target/lib/syn/cde_clock_sys/cde_clock_sys.v +verilog work ./target/lib/syn/cde_jtag/cde_jtag.v +verilog work ./target/lib/syn/cde_jtag/cde_jtag_rpc_reg.v + + +
targets/Nexys2/filelist Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: Makefile =================================================================== --- Makefile (revision 56) +++ Makefile (revision 57) @@ -7,18 +7,28 @@ all: run_sims build_fpgas check_sims check_fpgas + + .PHONY build_soc: build_soc: (\ rm -r work ;\ - soc_link ;\ - soc_builder;\ + find . | grep "~" | xargs rm $1 ;\ + ${home}/tools/bin/soc_link ;\ ) +.PHONY build_hw: +build_hw: + (\ + ${home}/tools/bin/soc_builder;\ + ) + + + .PHONY build_sw: -build_sw: build_soc +build_sw: build_hw @for PROJECT in `ls $(CUR_DIR)/work`; do \ echo "################################################"; \ echo "build_sw: $$PROJECT ####"; echo; \

powered by: WebSVN 2.1.0

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