URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/orpsocv2/rtl
- from Rev 391 to Rev 392
- ↔ Reverse comparison
Rev 391 → Rev 392
/verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm16.fzm
File deleted
verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm16.fzm
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/wb_sdram_ctrl_fifo.v
===================================================================
--- verilog/wb_sdram_ctrl/wb_sdram_ctrl_fifo.v (revision 391)
+++ verilog/wb_sdram_ctrl/wb_sdram_ctrl_fifo.v (nonexistent)
@@ -1,72 +0,0 @@
-module wb_sdram_ctrl_fifo
- (
- input [16-1:0] d_i,
- input we_i,
- input clear,
- input clk_i,
- output [32-1:0] wb_dat_o,
- input wb_cyc_i,
- input wb_stb_i,
- output wb_ack_o,
- input wb_clk,
- input rst
- );
-
- reg [32-1:0] ram [0:3];
- reg [16-1:0] tmp;
-
- reg [2-1:0] adr_i;
- wire [2-1:0] adr_i_next;
- reg [2-1:0] adr_o;
- wire [2-1:0] adr_o_next;
- reg a0;
-
- always @ (posedge clk_i or posedge rst)
- if (rst)
- a0 <= 1'b0;
- else
- if (clear)
- a0 <= 1'b0;
- else if (we_i)
- a0 <= ~a0;
-
- always @ (posedge clk_i or posedge rst)
- if (rst)
- tmp <= 16'd0;
- else
- tmp <= d_i;
-
- // write adr counter
- assign adr_i_next = (adr_i==3) ? 2'd0 : adr_i + 2'd1;
- always @ (posedge clk_i or posedge rst)
- if (rst)
- adr_i <= 2'd0;
- else
- if (clear)
- adr_i <= 2'd0;
- else if (we_i & a0)
- adr_i <= adr_i_next;
-
- // read adr counter
- assign adr_o_next = (adr_o==3) ? 2'd0 : adr_o + 2'd1;
- always @ (posedge clk_i or posedge rst)
- if (rst)
- adr_o <= {2{1'b0}};
- else
- if (clear)
- adr_o <= 2'd0;
- else if (wb_cyc_i & wb_stb_i & !(adr_i==adr_o))
- adr_o <= adr_o_next;
-
- assign wb_ack_o = wb_cyc_i & wb_stb_i & !(adr_i==adr_o);
-
- // write to mem
- always @ (posedge clk_i)
- if (we_i & (a0==1'b1))
- ram[adr_i] <= {tmp,d_i};
-
- assign wb_dat_o = ram[adr_o];
-
-endmodule // fifo
-
-
verilog/wb_sdram_ctrl/wb_sdram_ctrl_fifo.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/Makefile
===================================================================
--- verilog/wb_sdram_ctrl/Makefile (revision 391)
+++ verilog/wb_sdram_ctrl/Makefile (nonexistent)
@@ -1,17 +0,0 @@
-define:
- vpp wb_sdram_ctrl_defines.vpp > wb_sdram_ctrl_defines.v
-
-basic: define
- perl fizzim.pl -terse < wb_sdram_ctrl_burst.fzm > wb_sdram_ctrl_burst.v
- perl fizzim.pl -encoding onehot -terse < wb_sdram_ctrl_fsm.fzm > wb_sdram_ctrl_fsm.v
-
-MT48LC16M16:
- cp ./MT48LC16M16.v ./defines.v
-
-fifo:
- vpp wb_sdram_ctrl_fifo.vpp > fifo.v
- vppp --simple fifo.v > wb_sdram_ctrl_fifo.v
-
-all: MT48LC16M16 fifo basic
- vppp --simple delay.v wb_sdram_ctrl_fsm.v wb_sdram_ctrl_fifo.v wb_sdram_ctrl_top.v > wb_sdram_ctrl_ip.v
-
verilog/wb_sdram_ctrl/Makefile
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/delay.v
===================================================================
--- verilog/wb_sdram_ctrl/delay.v (revision 391)
+++ verilog/wb_sdram_ctrl/delay.v (nonexistent)
@@ -1,38 +0,0 @@
-`timescale 1ns/1ns
-module delay #
- (
- parameter depth = 3,
- width = 2
- )
-
- (
- input [width-1:0] d,
- output [width-1:0] q,
- input clear,
- input clk,
- input rst
- );
-
- reg [width-1:0] dffs [1:depth];
-
- integer i;
- always @ (posedge clk or posedge rst)
- if (rst)
- for ( i=1; i < depth+1; i= i + 1)
- dffs[i] <= 0; //{depth{1'b0}};
- else
- if (clear)
- for ( i=1; i < depth+1; i= i + 1)
- dffs[i] <= 0; //{depth{1'b0}};
- else
- begin
- dffs[1] <= d;
- for ( i=2; i < depth+1; i= i + 1)
- dffs[i] <= dffs[i-1];
- end
-
- assign q = dffs[depth];
-
-endmodule //
-
-
verilog/wb_sdram_ctrl/delay.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/fizzim.pl
===================================================================
--- verilog/wb_sdram_ctrl/fizzim.pl (revision 391)
+++ verilog/wb_sdram_ctrl/fizzim.pl (nonexistent)
@@ -1,1989 +0,0 @@
-#!/usr/local/bin/perl
-
-# This file is part of fizzim
-# Copyright (C) 2007 Zimmer Design Services
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-
-# Although not specifically required by GPL, if you improve/modify this
-# software, please make it available to other users either by posting
-# it yourself or sending it back to ZDS (paulzimmer@zimmerdesignservices.com)
-# Consider this an ethical obligation rather than a legal one.
-#
-# $Id: fizzim.pl,v 2.0 2008/09/18 22:07:19 pzimmer Exp pzimmer $
-
-# Issues:
-# should dp pre-case values look at implied_loopback and/or default...x?
-
-$| = 1; # force immediate output
-
-# Make sure calling location is in INC path
-use File::Basename;
-$my_dir = &dirname($0);
-$me = &basename($0);
-unshift(@INC,"$my_dir");
-
-# Figure out revision info
-# The reference to Revision below will get RCS to input the revision
-$scriptversion = '$Revision: 2.0 $';
-# Extract the rev number
-$scriptversion =~ s/^\$Revision: //;
-$scriptversion =~ s/ \$//;
-
-# Scan for -help and -version for early exit. If found, call parser
-if (join(" ",@ARGV) =~ /-h/) {
- &process_options;
- exit; # redundant - will exit anyway
-}
-if (join(" ",@ARGV) =~ /-vers/) {
- &process_options;
- exit; # redundant - will exit anyway
-} elsif (join(" ",@ARGV) =~ /-v(\s|$)/) {
- print STDERR "Note that -v is ambiguous. If you want version, you must use at least -vers \n";
-}
-
-# Scan for -debug be_cmd before calling process_options
-$debug_sections{"be_cmd"} = (join(" ",@ARGV) =~ /-d\S*\s+be_cmd/);
-# Scan for -debug parse_input before calling parser
-$debug_sections{"parse_input"} = (join(" ",@ARGV) =~ /-d\S*\s+parse_input/);
-
-# Need to fetch the be_cmd from the file before parsing inputs.
-# Perl wants to treat the actual command-line args as file names, so
-# save them away and clear @ARGV.
-@orig_argv = @ARGV;
-@ARGV = ();
-
-# Parse the input. Do this before option processing so that we can get
-# be_cmd.
-&set_myattributes; # sets the myattributes hash to know what to parse
-&parse_input;
-
-# Process command-line options
-# Re-build @ARGV using the options from be_cmd FIRST (so actual command-line
-# options will have priority)
-($be_options = $globals{machine}{be_cmd}{value}) =~ s/^[^-]*//;
-@ARGV = (split(/\s+/,$be_options),@orig_argv);
-
-&process_options;
-
-# Output is a bit messy. To allow for -terse, output is held in a buffer
-# (pbuf) and printed at the end. Warnings and "assertions" are held in their
-# own arrays, with indexes to match the line they follow in pbuf.
-# "assertions" are comment lines, other than warnings, to be added to the
-# output.
-# Init printbuffer
-$pbuf[0] = "";
-
-# Rename hashes
-%states = %state; undef %state;
-%transitions = %transition; undef %transition;
-
-# Massage output data structures.
-foreach $output (sort keys %{ $globals{outputs} }) {
- if ($globals{outputs}{$output}{type} eq "comb") {
- $comb_outputs{$output}{"default_value"} = $globals{outputs}{$output}{value};
- } elsif ($globals{outputs}{$output}{type} eq "reg") {
- if ($encoding eq "onehot") {
- # For onehot, all reg's are effectively regdp's
- $regdp_outputs{$output}{"default_value"} = $globals{outputs}{$output}{value};
- } else {
- $reg_outputs{$output}{"default_value"} = &convert2bin($globals{outputs}{$output}{value});
- }
- } elsif ($globals{outputs}{$output}{type} eq "regdp") {
- $regdp_outputs{$output}{"default_value"} = $globals{outputs}{$output}{value};
- } else {
- &error($indent,"No type found for output $output");
- }
-}
-
-# Encodings:
-# HEROS:
-# Highly Encoded with Registered Outputs as Statebits
-# All registered outputs will be encoded as state bits. Additional
-# statebits will be added as needed to meet other requirements
-# (mininum encoding, graycode transitions).
-#
-# onehot:
-# One-hot encoding per Steve Golson. All reg'd outputs are effectively
-# regdp's.
-#
-# Encoding cannot easily be an attribute on the fsm, because we need to know
-# the encoding before we parse...
-
-# Create module statement
-# Because verilog doesn't allow the list to end with a "," we
-# create the line first (in $line) but don't print it. It is printed
-# only when the NEXT sign input/output is handled (since we then
-# know we can leave the "," at the end.
-# When both loops (input and output) are finished, we change the ","
-# to a ");" and print the last line.
-
-#######################
-# State assignment
-#######################
-$section = "assign_states"; # for debug
-
-# allstates is an array of all the states in alpha order, but with the
-# reset state moved to the front (FIRST)
-if (exists $globals{machine}{reset_state}{value}) {
- $reset_state = $globals{machine}{reset_state}{value};
- push(@allstates,$reset_state);
-} else {
- # If no reset, warn user
- &warning($indent,"No reset specified");
-}
-foreach $state (sort keys %states) {
- unless ($state eq $reset_state) {
- push(@allstates,$state);
- }
-}
-&debug("allstates is @allstates\n",0,"assign_states");
-
-if ($encoding eq "heros") {
- # Massage the data structures before calling assign_states
- # Look at all registered outputs and assign them to state bits
- $statebit = 0; # init statebit pointer
- # Loop through all reg'd outputs
- foreach $output (sort keys %reg_outputs) {
- # Determine upper and lower parts of [upper:lower]
- if (($upper,$lower) = ($output =~ /\[(\d+):(\d+)\]/)) {
- $reg_outputs{$output}{"range"} = "$upper:$lower";
- } else {
- # If no range match, this must be single bit
- $upper = 0; $lower = 0;
- }
- # Set the lower (where the range will start to the current pointer)
- $statebit_lower = $statebit;
- # Bump the pointer up until we reach $upper
- for (my $bit = $lower; $bit < $upper; $bit++) {
- $statebit++;
- }
- if ($statebit == $statebit_lower) { # single bit
- $reg_outputs{$output}{"statebit_range"} = $statebit;
- &debug("Assigned $output to statebits $reg_outputs{$output}{statebit_range}",0,"$section");
- } else {
- $reg_outputs{$output}{"statebit_range"} = "$statebit:$statebit_lower";
- &debug("Assigned $output to statebits $reg_outputs{$output}{statebit_range}",0,"$section");
- }
- $reg_outputs{$output}{"statebit_lower"} = $statebit_lower;
- $reg_outputs{$output}{"statebit_upper"} = $statebit;
-
- # Set %fixedbits on all states to show these bits as fixed
- foreach $state (keys %states) {
- if ((!exists $states{$state}{attributes}{$output}{value}) || ($states{$state}{attributes}{$output}{value} eq "")) {
- $value = $reg_outputs{$output}{"default_value"};
- &debug("// Warning: No value for Moore bit $output for state $state - using default $value",0,"$section");
- } else {
- $value = &convert2bin($states{$state}{attributes}{$output}{value});
- }
- # Make sure it is a legal binary value and the correct size
- if ($value !~ /^[01]+$/) {
- &error($indent,"Value $value of output $output for state $state is not a legal binary number");
- }
- # Checking the bit width make it impossible to use 'h0f (tic without size)
- if (length($value) != $upper - $lower + 1) {
- &error($indent,"Value $value of output $output for state $state is not the correct bit width");
- }
- $target_valuebit = 0;
- for ($target_statebit = $statebit; $target_statebit >= $statebit_lower; $target_statebit--) {
- $bitvalue = substr($value,$target_valuebit,1);
- if ($bitvalue eq "") {&error($indent,"Value of output $output in state $state has fewer bits than required\n");}
- &debug("Setting fixedbit $target_statebit to $bitvalue for output $output in state $state",0,"$section");
- $fixedbits{$state}{$target_statebit} = $bitvalue;
- $target_valuebit++;
- }
- }
- $statebit++;
- }
- $regbits = $statebit;
-
- # Create graytransitions hash
- foreach $trans (keys %transitions) {
- if ($transitions{$trans}{attributes}{graycode}{value} || $transitions{$trans}{attributes}{graytransition}{value}) {
- &debug("Setting transition $trans as gray",0,"$section");
- push( @{ $graytransitions{"$transitions{$trans}{startState}"} },$transitions{$trans}{endState});
- }
- }
-
- # Calculate limits of state assignment search
- $required_bits = &required_bits($#allstates + 1);
- $minbits = $required_bits;
- $minbits = $regbits if ($regbits > $minbits);
- unless ($maxbits) {
- $maxbits = $required_bits + $regbits;
- # Bump maxbits in the presence of graycodes
- $maxbits = $maxbits + 2 if (scalar(keys %graytransitions));
- }
- &debug("minbits is $minbits, maxbits is $maxbits",0,"assign_states");
-
- # Force reset state to be allones or allzeros if requested by setting
- # fixbits values.
- if (exists $globals{machine}{reset_state}{value}) {
- $reset_state = $globals{machine}{reset_state}{value};
- if ($globals{machine}{reset_state}{type} eq "allzeros") {
- for ($bit = 0; $bit <= $maxbits - 1 ; $bit++) {
- # If there is a comflicting fixedbits setting from registered
- # outputs, error out.
- if ((exists $fixedbits{$reset_state}{$bit}) && $fixedbits{$reset_state}{$bit} == 1) {
- &error($indent,"allzeros constraint for reset state $reset_state is incompatible with output setting");
- }
- $fixedbits{$reset_state}{$bit} = 0;
- &debug("Setting fixedbit $bit to 0 for reset state $reset_state",0,"$section");
- }
- } elsif ($globals{machine}{reset_state}{type} eq "allones") {
- for ($bit = 0; $bit <= $maxbits - 1 ; $bit++) {
- # If there is a comflicting fixedbits setting from registered
- # outputs, error out.
- if ((exists $fixedbits{$reset_state}{$bit}) && $fixedbits{$reset_state}{$bit} == 0) {
- &error($indent,"allones constraint for bit $bit of reset state $reset_state is incompatible with output setting");
- }
- $fixedbits{$reset_state}{$bit} = 1;
- &debug("Setting fixedbit $bit to 1 for reset state $reset_state",0,"$section");
- }
- }
- }
-
- # Debug output prior to calling &assign_states
- if ($global_debug || $debug_sections{"$section"}) {
- foreach $state (@allstates) {
- for ($statebit = 0; $statebit < $regbits; $statebit++) {
- if (exists $fixedbits{$state}{$statebit}) {
- &debug("fixedbits{$state}{$statebit} is $fixedbits{$state}{$statebit}",0,"$section");
- }
- }
- }
- &debug("regbits is $regbits",0,"$section");
- foreach $trans (keys %graytransitions) {
- &debug("graytransitions{$trans} is @{ $graytransitions{$trans} }",0,"$section");
- }
- }
-
- # Call &assign_states_hero to do the state assignment
- &assign_states_hero;
-
- # Rename variables to standard names
- $total_statebits = $bits;
- %state_val2name = %$v2nref;
-
-} elsif ($encoding eq "onehot") {
- # Check for errors
-
- # No graycodes
- foreach $trans (keys %transitions) {
- if ($transitions{$trans}{attributes}{graycode}{value} || $transitions{$trans}{attributes}{graytransition}{value}) {
- &error($indent,"Cannot have graycode transitions with onehot encoding");
- }
- }
-
- # Reset state must not be allones or allzeros
- if ($globals{machine}{reset_state}{type} =~ /(allones)|(allzeros)/) {
- &error($indent,"Cannot have reset_state type of allones or allzeros with onehot encoding. Try changing to \"anyvalue\"");
- }
-
- $total_statebits = scalar(keys %states);
- $statebit = $total_statebits - 1 ; # init statebit pointer
- foreach $state (keys %states) {
- $state_val2name{$statebit} = $state;
- $statebit--;
- }
- $zero_padded_one = sprintf("%s'b%s%s",$total_statebits,"0" x ($total_statebits - 1), "1");
-
-} else {
- &error($indent,"Unknown encoding $encoding\n");
-}
-
-$last_statebit = $total_statebits - 1;
-
-# Figure out longest state name for formatting purposes
-foreach $state (@allstates) {
- $statename_length = length($state) if (length($state) > $statename_length);
-}
-# length of "state[IDLE]"
-$statename_length_onehot = $statename_length + length($statevar) +2;
-$nextstatename_length_onehot = $statename_length + length($nextstatevar) +2;
-$level4indent = $indentstring x 4;
-#eval "\$level4indent = \"$indentstring\" x 4";
-
-
-#######################
-# module open
-#######################
-
-# Handle top-of-file comments
-if ($include_at_top_of_file = $globals{machine}{include_at_top_of_file}{value}) {
- open(FILE,"<$include_at_top_of_file") or &warning($indent,"Could not open file $include_at_top_of_file specified by attribute insert_at_top_of_file");
- while () {
- print;
- }
-}
-&print($indent,"$globals{machine}{insert_at_top_of_file}{value}\n");
-
-# Output version data
-if ($addversion) {
- ($sec,$min,$hour,$day, $month, $year) = (localtime)[0..5];
- $date = sprintf("%04d:%02d:%02d",$year+1900,$month+1,$day);
- $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
- &print($indent,"// Created by $me version $scriptversion on $date at $time\n\n");
-}
-
-# Handle module comments
-if ($globals{machine}{name}{comment}) {
- $comment = " // $globals{machine}{name}{comment}";
-} else {
- $comment = "";
-}
-
-# Print module line
-&print($indent++,"module $globals{machine}{name}{value} ($comment\n");
-&print($indent,"$globals{machine}{insert_in_module_declaration}{value}\n") if $globals{machine}{insert_in_module_declaration}{value};
-# outputs
-foreach $output (sort keys %{ $globals{outputs} }) {
- # Print previous line
- if ($line) {
- &print($indent, "$line");
- $line = "";
- }
- # Check for reserved words
- if (exists $reserved_words{$output}) {
- &error($indent,"
-Cannot use reserved word \"$output\" as an output.
-If you are trying to bring out the internal variables, look at the stateout and nextstateout attributes.
-If you have an actual output of this name, try using the -statevar, -nextstatevar, or -statenamevar switches to rename the internal signal to avoid the conflict.
-
-");
- }
- # Handle comments
- if ($globals{outputs}{$output}{comment}) {
- $comment = "// $globals{outputs}{$output}{comment}";
- } else {
- $comment = "";
- }
-
-
- # Oddly, the comb outputs are reg's (because they will be assigned to
- # in the comb always block), but reg outputs are wire's (because they
- # will have continuous assignment to state bits). Regdp (registered
- # datapath) are reg's.
- if ($globals{outputs}{$output}{type} eq "comb") {
- $type = "reg";
- } elsif ($globals{outputs}{$output}{type} eq "reg") {
- if ($encoding eq "onehot") {
- $type = "reg";
- } else {
- $type = "wire";
- }
- } elsif ($globals{outputs}{$output}{type} eq "regdp") {
- $type = "reg";
- } else {
- &error($indent,"No type found for output $output");
- }
- # Handle multibit outputs
- if (($name,$range) = ($output =~ /^([^\[]+)\s*(\[.*\])/)) {
- $line = sprintf("%-30s %-s\n","output $type $range $name,",$comment);
- ($upper,$lower) = $range =~ /(\d+):(\d+)/;
- $widths{$name} = abs($upper - $lower) + 1;
- #print "$name width is $widths{$name}\n";
- #$line = "output $type $range $name,\n";
- } else {
- $line = sprintf("%-30s %-s\n","output $type $output,",$comment);
- $widths{$output} = 1;
- #print "$output width is $widths{$output}\n";
- #$line = "output $type $output,\n";
- }
- # Remove trailing blanks
- $line =~ s/\s*\n$/\n/;
-}
-
-# Handle stateout, nextstateout
-foreach $att ("stateout", "nextstateout") {
- ($var = $att) =~ s/out//; # turns "stateout" into "state"
- $var = eval "\$${var}var"; # makes var = $statevar
- if ($stateout = $globals{"machine"}{$att}{"value"}) {
- # Check to make sure no bounds given
- if ($stateout =~ /\[|\]/) {
- &error($indent,"stateout signal \"$stateout\" should not have bit field - this will be determined automatically");
- }
- # Print previous line
- if ($line) {
- &print($indent, "$line");
- $line = "";
- }
- if ($stateout eq $var) {
- $line = "output reg [$last_statebit:0] $stateout,\n";
- } else {
- $line = "output wire [$last_statebit:0] $stateout,\n";
- }
- }
-}
-
-# inputs
-foreach $input (sort keys %{ $globals{inputs} }) {
- # Print previous line
- if ($line) {
- &print($indent, "$line");
- $line = "";
- }
- # Check for reserved words
- if (exists $reserved_words{$input}) {
- &error($indent,"
-Cannot use reserved word \"$input\" as an input.
-If you have an actual input of this name, try using the -statevar, -nextstatevar, or -statenamevar switches to rename the internal signal to avoid the conflict.
-
-");
- }
- # Handle comments
- if ($globals{inputs}{$input}{comment}) {
- $comment = "// $globals{inputs}{$input}{comment}";
- } else {
- $comment = "";
- }
-
- # Handle multibit inputs
- if (($name,$range) = ($input =~ /^([^\[]+)\s*(\[.*\])/)) {
- $line = sprintf("%-30s %-s\n","input wire $range $name,",$comment);
- #$line = "input wire $range $name,\n";
- } else {
- $line = sprintf("%-30s %-s\n","input wire $input,",$comment);
- #$line = "input wire $input,\n";
- }
- # Remove trailing blanks
- $line =~ s/\s*\n$/\n/;
-}
-
-# print last line and close
-if ($line =~ s/^(.*),/\1 /) {
- $line = $line . ");\n"; # Add ); on a new line
-} else {
- &error($indent,"No inputs or outputs specified");
-}
-&print($indent, "$line");
-&print($indent,"\n");
-
-&print($indent,"$globals{machine}{insert_at_top_of_module}{value}\n");
-
-#######################
-# Print out state parameter definition
-#######################
-&print($indent,"\n\n");
-&print($indent,"// state bits\n");
-# DC gives a warning that not all tool support bounds on parameters, so
-# don't use them.
-#&print($indent,"parameter [$last_statebit:0]\n");
-&print($indent,"parameter \n");
-$line = "";
-
-# Print out state encoding in @allstates order
-foreach $state (@allstates) {
- $comment = "";
- # Same trick - print previous line to avoid trailing ","
- if ($line) {
- &print($indent, "$line");
- $line = "";
- }
- # Search through all assigned values looking for the one that matches $state
- foreach $val (keys %state_val2name) {
- if ($state_val2name{$val} eq $state) {
- # If there are output encoded ($regbits is not 0), prepare a comment
- # that shows the value of each output in this state.
- if ($regbits) {
- $val_length = length($val);
- foreach $regout (sort {
- $reg_outputs{$a}{statebit_lower} <=>
- $reg_outputs{$b}{statebit_lower}
- } keys %reg_outputs) {
- $lower = $reg_outputs{$regout}{statebit_lower};
- $upper = $reg_outputs{$regout}{statebit_upper};
- $bitvalue = substr($val,$val_length - $upper - 1,$upper - $lower + 1);
- $comment = "$regout=${bitvalue} ${comment}";
- }
-
- # Do extra bits
- if ($val_length - 1 > $upper) {
- $bitvalue = substr($val,($val_length - 1) - ($upper + 1),$val_length - $upper - 1);
- $comment = "extra=${bitvalue} ${comment}";
- }
-
- $comment = "// $comment";
- } # end of encoded output comment code
-
-
- if ($encoding eq "heros") {
- $line = sprintf("%-${statename_length}s%s","$state"," = ${total_statebits}'b${val}, ${comment}\n");
- } elsif ($encoding eq "onehot") {
- $line = sprintf("%-${statename_length}s%s","$state"," = ${val}, ${comment}\n");
- }
- }
- }
-}
-# Substitute ; for , and print last line.
-$line =~ s/^(.*),/\1;/;
-&print($indent, "$line");
-
-#######################
-# state, nextstate reg lines
-#######################
-&print($indent, "\n");
-# Handle stateout, nextstateout attributes
-foreach $att ("stateout", "nextstateout") {
- ($var = $att) =~ s/out//; # turns "stateout" into "state"
- $var = eval "\$${var}var"; # makes var = $statevar
- if ($stateout = $globals{"machine"}{$att}{"value"}) {
- if ($stateout eq $var) {
- # If stateout is set the same as $statevar, then the reg statement was
- # done # in the module header. Do nothing.
- } else {
- # If stateout is NOT set the same as $statevar, then the module statement
- # had a "wire" for stateout and we need to create the reg statement
- # here and an assign of the wire to the reg.
- &print($indent, "reg [$last_statebit:0] $var;\n");
- &print($indent, "assign $stateout = $var;\n");
- }
- } else {
- # No attribute set - print out reg statement
- &print($indent, "reg [$last_statebit:0] $var;\n");
- }
-}
-
-
-#######################
-# Output combinational block
-#######################
-$section = "comb_block";
-&print($indent, "\n");
-&print($indent, "// comb always block\n");
-&print($indent++, "always @* begin\n");
-
-if ($encoding eq "heros") {
- # For heros, defaults ahead of case depend on fsm attributes
- if ($globals{machine}{implied_loopback}{value}) {
- &print($indent, "$nextstatevar = $statevar; // default to hold value because implied_loopback is set\n");
- } elsif ($globals{machine}{default_state_is_x}{value}) {
- #&print($indent, sprintf("$nextstatevar = ${total_statebits}\'b%s; // default to x because default_state_is_x is set\n","x" x $total_statebits));
- &print($indent, sprintf("$nextstatevar = ${total_statebits}\'b%s; // default to x because default_state_is_x is set\n","x"));
- } else {
- &warning($indent,"Neither implied_loopback nor default_state_is_x attribute is set on state machine - this could result in latches being inferred");
- }
-} elsif ($encoding eq "onehot") {
- &print($indent, sprintf("$nextstatevar = ${total_statebits}\'b%s;\n","0" x $total_statebits));
-}
-
-# Combinational defaults.
-# To get better synth results "out of the box", use a 0 default if no
-# default is defined. To get the old "hold value"
-# behavior, it will be necessary for the user to set the default to
-# be the variable name (ie, if the variable name is "foo", make the default
-# value "foo").
-foreach $combout (sort keys %comb_outputs) {
- if (exists $comb_outputs{$combout}{default_value} && ($comb_outputs{$combout}{default_value} ne "") ) {
- $comb_defaults{$combout} = $comb_outputs{$combout}{default_value};
- &print($indent,"$combout = $comb_defaults{$combout}; // default\n");
- } else {
- $comb_defaults{$combout} = "0"; # Use string zero
- &warning($indent,"Combinational output $combout has no default value - using 0");
- &print($indent,"$combout = $comb_defaults{$combout}; // default to zero for better synth results (no default set in .fzm file)\n");
- #&print($indent,"$combout = $widths{$combout}'b$comb_defaults{$combout}; // default to zero for better synth results (no default set in .fzm file)\n");
- }
-}
-
-# State "case" block
-if ($encoding eq "heros") {
- &print($indent++,"case ($statevar)\n");
-} elsif ($encoding eq "onehot") {
- # Cliff says 1'b1 much better...
- #&print($indent++,"case (1'b1) // synopsys parallel_case full_case\n");
- # Figure out the onehot pragma. Defaults to
- # "synopsys parallel_case full_case", but can be overridden by attribute.
- if (exists $globals{machine}{onehot_pragma}{value} ) {
- &warning($indent,"Using override value from attribute onehot_pragma");
- &print($indent++,"case (1'b1) // $globals{machine}{onehot_pragma}{value}\n");
- } else {
- &print($indent++,"case (1'b1) // synopsys parallel_case full_case\n");
- }
-}
-#&assertion($indent,"// Test assertions");
-
-# Output state code in @allstates order
-foreach $state (@allstates) {
- %non_default_on_state_value_found = (); # hash to keep track of mealy info
- if ($states{$state}{attributes}{comment}) {
- $comment = " // $states{$state}{attributes}{comment}";
- } else {
- $comment = "";
- }
- if ($encoding eq "heros") {
- #&print($indent++,"$state:" . " begin${comment}\n");
- &print($indent++,sprintf("%-${statename_length}s:",$state) . " begin${comment}\n");
- } elsif ($encoding eq "onehot") {
- #&print($indent++,"$statevar\[$state\]: begin${comment}\n");
- &print($indent++,sprintf("%-${statename_length_onehot}s:","$statevar\[$state\]") . " begin${comment}\n");
- }
- # Search state attributes for outputs. If a combinational output is found,
- # assign its value here (maybe).
- foreach $comb_output (sort keys %comb_outputs) {
- if (exists $states{$state}{attributes}{$comb_output}{value}) {
- $value = $states{$state}{attributes}{$comb_output}{value};
- } else {
- $value = $comb_outputs{$comb_output}{default_value};
- }
-
- # Check to see if output is assigned on transitions. If so, check to see
- # if a non-default value has been assigned in this state.
- # If so, output assignment statement, set flag and issue warning.
- if (exists $globals{"trans"}{$comb_output}{"value"}) {
- # yup, we're in mealy-on-transitions mode
- if ($value ne $comb_outputs{$comb_output}{default_value}) {
- # If output has a non-default value in this state, warn user and print it anyway
- &warning($indent,"Combinational output $comb_output is assigned on transitions, but has a non-default value \"$value\" in state $state");
- # Check that resulting value is non-null
- &error($indent,"Value of comb output $comb_output cannot be determined in state $state") if ($value eq "");
- # Print the default statement anyway if it doesn't match default from above
- &print($indent,"$comb_output = $value;\n") unless ($value eq $comb_defaults{$comb_output});
- # Set flag to suppress non-default on-transition values in this state
- $non_default_on_state_value_found{$comb_output} = 1;
- }
- } else {
- # NOT in mealy-on-transitions mode, so print the default statement
- # Check that resulting value is non-null
- &error($indent,"Value of comb output $comb_output cannot be determined in state $state") if ($value eq "");
- # Only print the default statement if the comb output is NOT assigned
- # on transitions (and it doesn't match default above)
- &print($indent,"$comb_output = $value;\n") unless ($value eq $comb_defaults{$comb_output});
- }
- }
- # Search transitions for all those starting on this state.
- # Sort by priority, then output vlog if/elseif/else
- # equation to switch to correct endState.
- @transitions_from_this_state = ();
- foreach $trans (keys %transitions) {
- if ($transitions{$trans}{"startState"} eq $state) {
- &debug("Transition $trans starts on state $state, adding to array",0,$section);
- push(@transitions_from_this_state,$trans);
- }
- }
-
- # nextstate determination
- # Sort by priority, followed by equation. The equation part ensures
- # that "1" will be last.
- @transitions_from_this_state = sort sort_by_priority_then_equation_equal_1 @transitions_from_this_state;
- #print("After sort, transitions_from_this_state for state $state is @transitions_from_this_state\n");
- &debug("After sort, transitions_from_this_state for state $state is @transitions_from_this_state",0,$section);
-
- # Check for problems with priority
- undef %priorities_seen;
- if ($#transitions_from_this_state > 0) {
- for (my $i = 0; $i<=$#transitions_from_this_state; $i++) {
- $trans = $transitions_from_this_state[$i];
- $equation = $transitions{$trans}{attributes}{equation}{value};
- # If no priority exists, warn unless
- # 1) this is the last transition and equation is "1"
- # 2) There are only two transitions, and the last one has equation of "1"
- if (!($pri = $transitions{$trans}{attributes}{priority}{value})) {
- #print "looking at $trans: $i of $#transitions_from_this_state\n";
- #print "equation: $equation\n";
- unless (
- # last and equation is 1
- ($equation eq "1" &&
- $i == $#transitions_from_this_state)
- ||
- # Exactly 2 transitions and last has equation of 1
- ($#transitions_from_this_state == 1 &&
- $transitions{$transitions_from_this_state[$#transitions_from_this_state]}{attributes}{equation}{value} eq "1")
- ) {
- &warning($indent,"State $state has multiple exit transitions, and transition $trans has no defined priority");
- }
- } else {
- # If priority exists, but it's a duplicate, warn unless THIS transition
- # has an equation of 1 (note that sort means that if two transitions
- # have the same priority, the one with an equation of 1 will come last).
- if (exists $priorities_seen{$pri}) {
- unless ($equation eq "1") {
- &warning($indent,"State $state has multiple exit transitions, and transition $trans has the same priority as transition $priorities_seen{$pri}");
- }
- } else {
- $priorities_seen{$pri} = $trans;
- }
- }
- }
- }
-
- for (my $i = 0; $i<=$#transitions_from_this_state; $i++) {
- $trans = $transitions_from_this_state[$i];
- $equation = $transitions{$trans}{attributes}{equation}{value};
- #print "trans is $trans\n";
- #print STDERR "equation is $equation\n";
- $equation = 1 unless ($equation); # force null string to "1"
- $eq1seen = 0;
-
- # Check for unreachable transitions. If the equation is 1 and
- # there are more transitions following, it's an error.
- if ($equation eq "1" && $#transitions_from_this_state > $i) {
- &error($indent,"State $state has an always true equation for transition $trans, but has lower priority transitions as well");
- }
-
- if ($i == 0) { # first item in list
- # If always true, just output "begin" without the if
- # (need a begin/end block in case there are comb outputs)
- if ($equation eq "1") {
- &print($indent++,"begin\n");
- $eq1seen = 1;
- } else {
- &print($indent++,"if ($equation) begin\n");
- }
-
- } elsif ($i == $#transitions_from_this_state) { # last item in list
- # Note that this won't execute if there was only one item in
- # the list (due to use of elsif)
- if ($equation eq "1") {
- &print($indent++,"else begin\n");
- $eq1seen = 1;
- } else {
- &print($indent++,"else if ($equation) begin\n");
- }
-
- } else { # intermediate terms
- &print($indent++,"else if ($equation) begin\n");
- }
-
- $nextstate = $transitions{$trans}{endState};
- # Handle transition comments
- if ($transitions{$trans}{attributes}{comment}) {
- $comment = " // $transitions{$trans}{attributes}{comment}";
- } else {
- $comment = "";
- }
- if ($encoding eq "heros") {
- foreach $graystate (@{ $graytransitions{$state} }) {
- if ($graystate eq $nextstate) {
- $comment = $comment . " // graycoded";
- }
- }
- &print($indent,"$nextstatevar = $nextstate;$comment\n");
- } elsif ($encoding eq "onehot") {
- #&print($indent,"$nextstatevar = $zero_padded_one << $nextstate;\n");
- &print($indent,"$nextstatevar\[$nextstate\] = 1'b1;$comment\n");
- }
-
- # Add comb outputs
- foreach $comb_output (keys %{ $transitions{$trans}{attributes} }) {
- if ($transitions{$trans}{attributes}{$comb_output}{type} eq "output") {
- if (exists $transitions{$trans}{attributes}{$comb_output}{value}) {
- $value = $transitions{$trans}{attributes}{$comb_output}{value};
- } else {
- $value = $globals{"trans"}{$comb_output}{"value"} ; # default value defined in transitions table
- }
- # Check that resulting value is non-null
- &error($indent,"Value of comb output $comb_output cannot be determined on transition $trans") if ($value eq "");
- # Print only if no non-default state value was found, or this is a
- # non-default transition value.
- if (!$non_default_on_state_value_found{$comb_output}
- || $value ne $globals{"trans"}{$comb_output}{"value"}) {
- &print($indent,"$comb_output = $value;\n") unless ($value eq $comb_defaults{$comb_output});
- }
- }
- }
- &print(--$indent,"end\n"); # end of if/else/elseif ... or begin block
- }
- # Check for the case of onehot without an equation "1". If this is found
- # and implied_loopback is on, add an else to stay put. If
- # default_state_is_x is on, make bit an x.
- if ($encoding eq "onehot") {
- if (!$eq1seen) {
- if ($globals{machine}{implied_loopback}{value}) {
- &print($indent++,"else begin\n");
- &print($indent,"$nextstatevar\[$state\] = 1'b1; // Added because implied_loopback is true\n");
- &print(--$indent,"end\n");
- } elsif ($globals{machine}{default_state_is_x}{value}) {
- &print($indent++,"else begin\n");
- &print($indent,"$nextstatevar\[$state\] = 1'bx; // Added because default_state_is_x is true\n");
- &print(--$indent,"end\n");
- } else {
- &warning($indent,"Neither implied_loopback nor default_state_is_x attribute is set on onehot state machine and there is no loopback arc - this could result in latches being inferred");
- }
- }
- }
-
- &print(--$indent,"end\n"); # end of case match
-}
-&print(--$indent, "endcase\n");
-&print(--$indent, "end\n");
-
-#######################
-# State sequential block
-#######################
-$section = "seq_block";
-&print($indent, "\n");
-
-unless ($encoding eq "onehot") {
- &print($indent,"// Assign reg'd outputs to state bits\n");
- foreach $regout (sort {
- $reg_outputs{$a}{statebit_lower} <=>
- $reg_outputs{$b}{statebit_lower}
- } keys %reg_outputs) {
- &print($indent,"assign $regout = $statevar\[$reg_outputs{$regout}{statebit_range}\];\n");
- }
- &print($indent,"\n");
-}
-
-&print($indent, "// sequential always block\n");
-
-# Create the always @ line using a sub so it can be used by datapath
-# as well.
-$line = &create_sequential_always;
-&print($indent++,"$line");
-
-if ($reset_signal) {
- $bang = "!" if ($reset_edge =~ /neg/);
- &print($indent++,"if (${bang}${reset_signal})\n");
- if ($encoding eq "heros") {
- &print($indent,"$statevar <= $reset_state;\n");
- } elsif ($encoding eq "onehot") {
- &print($indent,"$statevar <= $zero_padded_one << $reset_state;\n");
- }
- &print(--$indent,"else\n");
-}
-&print($indent," $statevar <= $nextstatevar;\n");
-&print(--$indent,"end\n");
-
-#######################
-# Datapath sequential block
-#######################
-$section = "dp_seq_block";
-if (scalar(%regdp_outputs)) {
- &print($indent, "\n");
-
- &print($indent, "// datapath sequential always block\n");
-
- # Create the always @ line
- $line = &create_sequential_always;
- &print($indent++,"$line");
-
- if ($reset_signal) {
- $bang = "!" if ($reset_edge =~ /neg/);
- &print($indent++,"if (${bang}${reset_signal}) begin\n");
- # Assign reset values to datapath registers. This is assumed
- # to be the value in the reset_state. If not specified, assume
- # the default value.
- foreach $regdp_output (sort keys %regdp_outputs) {
- if (exists $states{$reset_state}{attributes}{$regdp_output}{value}) {
- $value = $states{$reset_state}{attributes}{$regdp_output}{value};
- } else {
- &warning($indent,"No reset value for datapath output $regdp_output set in reset state $reset_state - Assiging a reset value of $value based on default");
- $value = $regdp_outputs{$regdp_output}{default_value};
- }
- # Check that resulting value is non-null
- &error($indent,"Reset value of datapath output $regdp_output cannot be determined ") if ($value eq "");
- &print($indent,"$regdp_output <= $value;\n");
- }
- &print(--$indent,"end\n");
- &print($indent++,"else begin\n");
- } else {
- &print(--$indent,"begin\n");
- }
-
- # Output defaults.
- # To get better synth results "out of the box", use a 0 default if no
- # default is defined. To get the old "hold value in illegal states"
- # behavior, it will be necessary for the user to set the default to
- # be the variable name (ie, if the variable name is "foo", make the default
- # value "foo").
- foreach $regdp_output (sort keys %regdp_outputs) {
- if (exists $regdp_outputs{$regdp_output}{default_value} && ($regdp_outputs{$regdp_output}{default_value} ne "") ) {
- $dp_seq_defaults{$regdp_output} = $regdp_outputs{$regdp_output}{default_value};
- &print($indent,"$regdp_output <= $dp_seq_defaults{$regdp_output}; // default\n");
- } else {
- $dp_seq_defaults{$regdp_output} = "0"; # Use string zero
- &warning($indent,"Datapath output $regdp_output has no default value - using 0");
- &print($indent,"$regdp_output <= $dp_seq_defaults{$regdp_output}; // default to zero for better synth results (no default set in .fzm file)\n");
- #&print($indent,"$regdp_output <= $widths{$regdp_output}'b$dp_seq_defaults{$regdp_output}; // default to zero for better synth results (no default set in .fzm file)\n");
- }
- }
-
- # State "case" block
- if ($encoding eq "heros") {
- &print($indent++,"case ($nextstatevar)\n");
- } elsif ($encoding eq "onehot") {
- #&print($indent++,"case (1'b1) // synopsys parallel_case full_case\n");
- # Figure out the onehot pragma. Defaults to
- # "synopsys parallel_case full_case", but can be overridden by attribute.
- if (exists $globals{machine}{onehot_pragma}{value} ) {
- &warning($indent,"Using override value from attribute onehot_pragma");
- &print($indent++,"case (1'b1) // $globals{machine}{onehot_pragma}{value}\n");
- } else {
- &print($indent++,"case (1'b1) // synopsys parallel_case full_case\n");
- }
- }
-
- $keep_case = 0; # flag to keep case statement (at least one non-default found)
- foreach $state (@allstates) {
- $keep_state = 0; # flag to keep this state
- # Create state + begin (might be "popped" if $keep_state doesn't get set)
- if ($encoding eq "heros") {
- #&print($indent++,"$state: begin\n");
- &print($indent++,sprintf("%-${statename_length}s:",$state) . " begin\n");
- } elsif ($encoding eq "onehot") {
- #&print($indent++,"$nextstatevar\[$state\]: begin\n");
- &print($indent++,sprintf("%-${nextstatename_length_onehot}s:","$nextstatevar\[$state\]") . " begin\n");
- }
- # Search state attributes for regdp outputs. If a regdp output is found,
- # assign its value here
- foreach $regdp_output (sort keys %regdp_outputs) {
- if (exists $states{$state}{attributes}{$regdp_output}{value}) {
- $value = $states{$state}{attributes}{$regdp_output}{value};
- }
- if (exists($dp_seq_defaults{$regdp_output}) && ($value eq $dp_seq_defaults{$regdp_output})) {
- # skip - covered by default
- } else {
- # Check that resulting value is non-null
- &error($indent,"Value of regdp output $regdp_output cannot be determined in state $state") if ($value eq "");
- &print($indent,"$regdp_output <= $value;\n");
- $keep_state = 1;
- $keep_case = 1;
- }
- }
-
- # If we did something here, output the end
- if ($keep_state) {
- &print(--$indent,"end\n"); # end of case match
- # Otherwise, pop the state + begin off the print buffer and clean up the indent.
- } else {
- $indent--;
- pop(@pbuf);
- }
- }
-
- # Similarly, keep case and output endcase only if we found something no-default (flat is set)
- if ($keep_case) {
- &print(--$indent, "endcase\n");
- } else {
- pop(@pbuf);
- &warning($indent,"Did not find any non-default values for any datapath outputs - suppressing case statement");
- $indent--;
- }
- &print(--$indent,"end\n"); # end of if not reset
- &print(--$indent,"end\n"); # end of always
-}
-
-#######################
-# State name-as-ascii block
-#######################
-if ($simcode) {
- $section = "ascii_block";
- &print($indent, "\n");
- &print($indent, "// This code allows you to see state names in simulation\n");
- #&print($indent, "// synopsys translate_off\n");
- &print($indent, "`ifndef SYNTHESIS\n");
- &print($indent, "reg [" . ($statename_length * 8 - 1) . ":0] $statenamevar;\n");
- &print($indent++, "always @* begin\n");
-
- # State "case" block
- if ($encoding eq "heros") {
- &print($indent++,"case ($statevar)\n");
- } elsif ($encoding eq "onehot") {
- &print($indent++,"case (1)\n");
- }
- foreach $state (@allstates) {
- if ($encoding eq "heros") {
- #&print($indent++,"$state:\n");
- &print($indent++,sprintf("%-${statename_length}s:",$state) . "\n");
- } elsif ($encoding eq "onehot") {
- #&print($indent++,"$statevar\[$state\]:\n");
- &print($indent++,sprintf("%-${statename_length_onehot}s:","$statevar\[$state\]") . "\n");
- }
- &print($indent++,"$statenamevar = \"$state\";\n");
- $indent--;
- $indent--;
- }
- # add default for X
- #&print($indent++,"default:\n");
- &print($indent++,sprintf("%-${statename_length}s:","default") . "\n");
- &print($indent++,sprintf("$statenamevar = \"%s\";\n", "X" x ($statename_length)));
- $indent--;
- $indent--;
-
- &print(--$indent, "endcase\n");
- &print(--$indent, "end\n");
-
- #&print($indent, "// synopsys translate_on\n\n");
- &print($indent, "`endif\n\n");
-}
-
-&print($indent,"$globals{machine}{insert_at_bottom_of_module}{value}\n");
-
-# endmodule and bottom-of-file
-
-&print(--$indent,"endmodule\n");
-
-&print($indent,"$globals{machine}{insert_at_bottom_of_file}{value}\n");
-
-&print_output;
-
-#######################################################################
-# Subroutines
-#######################################################################
-
-sub create_sequential_always {
- # Check to make sure clock data is ok
- if (exists $globals{machine}{clock}{value}) {
- $clk = $globals{machine}{clock}{value};
- } else {
- &error($indent,"No clock specified");
- }
- if (! exists $globals{inputs}{$clk}) {
- #&warning($indent,"Specified clock signal $clk is not an input");
- &error($indent,"Specified clock signal $clk is not an input");
- }
- if ($globals{machine}{clock}{type} !~ /^(pos)|(neg)edge$/) {
- &error($indent,"Clock type not specified as posedge or negedge");
- }
- # Build clock portion of always @(posedge...)
- $line = "always @($globals{machine}{clock}{type} $clk" ;
-
- # Add reset if given
- if (exists $globals{machine}{reset_signal}{value}) {
- $reset_signal = $globals{machine}{reset_signal}{value};
- if (! exists $globals{inputs}{$reset_signal}) {
- #&warning($indent,"Specified reset signal $reset_signal is not an input");
- &error($indent,"Specified reset signal $reset_signal is not an input");
- }
- if ($globals{machine}{reset_signal}{type} =~ /^((neg)|(pos))edge$/) {
- $sync = "async";
- } elsif ($globals{machine}{reset_signal}{type} eq "positive") {
- $sync = "sync";
- } elsif ($globals{machine}{reset_signal}{type} eq "negative") {
- $sync = "sync";
- } else {
- &error($indent,"reset_signal $reset_signal not specified as type posedge, negedge, positive or negative");
- }
- $reset_edge = $globals{machine}{reset_signal}{type};
- if ($sync eq "async") {
- $line = $line . " or $reset_edge $reset_signal";
- }
- if (! exists $globals{machine}{reset_state}{value}) {
- &error($indent,"Reset signal given, but no reset state found.");
- } else {
- $reset_state = $globals{machine}{reset_state}{value};
- }
- }
- return $line = $line . ") begin\n";
-}
-
-sub sort_by_priority_then_equation_equal_1 {
- #&debug("a priority: $a -> $transitions{$a}{attributes}{priority}{value}",0,$section);
- #&debug("a equation: $a -> $transitions{$a}{attributes}{equation}{value}",0,$section);
- #&debug("a: $a -> $a",0,$section);
- #&debug("b priority: $b -> $transitions{$b}{attributes}{priority}{value}",0,$section);
- #&debug("b equation: $b -> $transitions{$b}{attributes}{equation}{value}",0,$section);
- #&debug("b: $a -> $b",0,$section);
-# &debug("priority sort result is: " . $transitions{$a}{attributes}{priority}{value} <=> $transitions{$b}{attributes}{priority}{value},0,$section);
-
- $transitions{$a}{attributes}{priority}{value} <=>
- $transitions{$b}{attributes}{priority}{value}
- ||
- ($transitions{$a}{attributes}{equation}{value} eq "1") cmp
- ($transitions{$b}{attributes}{equation}{value} eq "1")
- # finally, sort by trans name just so order will be predictable
- ||
- $a cmp $b
-}
-
-
-sub parse_input {
-
- my %myattributes_forcompare;
-
- &debug("Start of parse_input\"$_\"",0,"parse_input");
-
- # Create local version of myattributes with substition done to enable
- # compares
- foreach $entry (keys %myattributes) {
- $entry =~ s/\*[^\*]*\*/[^\"]+/g;
- $myattributes_forcompare{$entry} = 1;
- }
-
- while (<>) {
- chomp;
- s/##.*$// ;# Remove comments
- s/^\s*//; # Remove leading whitespace
-
- # Toss status/endstatus
- if (/^\s*/) {
- until (/^\s*<\/status>/) {
- $_ = <>;
- }
- next;
- }
-
- # Ignore drawArea (strips this level entirely from out data
- # structures)
- next if (/drawArea/);
-
- # Look for endtoken first to allow elsif to handle token case
- if (($endtoken) = (/^\s*<\/(.*)>/)) {
- &debug("endtoken: $endtoken from \"$_\"",0,"parse_input");
- &debug("ptr was \"$ptr\"",0,"parse_input");
- # Found an endtoken. If this is the array, clear the array value.
- # Otherwise, remove everything from this token to the end from ptr.
- if ($array eq $endtoken) {
- $array = "";
- $ptr = "";
- } else {
- $ptr =~ s/{\"\Q$endtoken\E\"}.*$//;
- }
- &debug("new array is \"${array}\"",0,"parse_input");
- &debug("new ptr is \"${ptr}\"",0,"parse_input");
- &debug("",0,"parse_input");
- } elsif (($token) = (/^\s*<(.*)>/)) {
- &debug("token: $token from \"$_\"",0,"parse_input");
- # Found new token. If array is blank, this is the new array.
- # Otherwise, append to ptr.
- if ($array eq "") {
- $array = "$token";
- } else {
- $ptr = $ptr . "{\"$token\"}";
- }
- &debug("new array is \"${array}\"",0,"parse_input");
- &debug("new ptr is \"${ptr}\"",0,"parse_input");
- &debug("",0,"parse_input");
- } else {
- $value = $_;
- &debug("value: $value from \"$_\"",0,"parse_input");
- # Found a value instead of a token. Use array and ptr to set
- # the value using eval.
- # First, turn state name (or transition name) into index
- &debug("old ptr (in value block) is \"$ptr\"",0,"parse_input");
- if ($ptr =~ s/({\"attributes\"}).*name.*value\"}/{\"$value\"}\1/) {
- # If this already exists, it means we have a duplicate entry!
- if (exists $${array}{"$value"}{"attributes"}) {
- &error($indent,"Error - found duplicate entry for $array $value");
- }
- &debug("new ptr (in value block) is \"$ptr\"",0,"parse_input");
- } else {
- $keep = 0;
- foreach $entry (keys %myattributes_forcompare) {
- #print STDERR "Looking at myatt $entry\n";
- if ("${array}${ptr}" =~ $entry) {
- &debug("Got match to $entry\n",0,"parse_input");
- $keep = 1;
- }
- }
- #$cmd = "\$${array}${ptr} = q{${value}};";
- $value =~ s/"/\\"/g; # escape quotes for next line
- $cmd = "\$${array}${ptr} = \"$value\";";
- if ($keep) {
- &debug("cmd is \"$cmd\"",0,"parse_input");
- eval $cmd unless (!$array);
- } else {
- &debug("skipped cmd \"$cmd\"",0,"parse_input");
- }
- }
- }
- }
-
- &debug("End of parse_input\"$_\"\n\n",0,"parse_input");
-
- # Check some random values
- #&debug("state0 vis is $states{state0}{attributes}{vis}",0,"parse_input");
- #&debug("trans0 startState is $transitions{trans0}{startState}",0,"parse_input");
- #&debug("trans0 endState is $transitions{trans0}{endState}",0,"parse_input");
-}
-
-sub assign_states_hero {
- # print &dec2bin(1,5) . "\n";
- # print &dec2bin(17,5) . "\n";
- # @statevals = &get_statevals(5); # create global statevals
- # print "@statevals\n";
- # exit;
-
-
- for ($bits = $minbits ; $bits <= $maxbits ; $bits++) {
- &debug("Trying $bits bits for states",0,"bits");
- @statevals = &get_statevals($bits); # create global statevals
- #print "statevals: @statevals\n";
- # Call recursive subroutine to assign states
- ($success,$uaref,$v2nref) = &attempt_assign_states( \@allstates, \%state_val2name, 0);
- last if $success;
- }
-
- if (!$success) {
- &error($indent,"No valid state assignment found in range of $minbits to $maxbits");
- }
-
-}
-
-sub attempt_assign_states {
- my ($uaref,$v2nref,$depth) = @_;
- my (@unassigned_states);
- my (%state_val2name);
- my ($state,$stateval);
-
- # Dereference arguments into local data structures
- @unassigned_states = @$uaref;
- %state_val2name = %$v2nref;
-
- while ($state = shift(@unassigned_states)) {
- &debug("attempt_assign_states working on state $state",$depth,"assign_states");
- STATEVAL : foreach $stateval (@statevals) {
- &debug("attempt_assign_states looking at stateval $stateval for uniqueness",$depth,"assign_states");
- next if ($state_val2name{$stateval}); # must be unique
- &debug("attempt_assign_states trying stateval $stateval for state $state",$depth,"assign_states");
- if (&matches_fixedbits($state,$stateval)
- && &matches_graycodes($state,$stateval,%state_val2name)) { # looks good at this level
- &debug("$stateval for state $state passes checks at this level",$depth,"assign_states");
- $state_val2name{$stateval} = $state;
- if (!@unassigned_states) { # if nothing left, we're done
- &debug("attempt_assign_states returning success",$depth,"assign_states");
- return (1, \@unassigned_states, \%state_val2name);
- } else { # otherwise, keep trying recursively
- $depth++;
- ($found_state,$uaref1,$v2nref1) = &attempt_assign_states( \@unassigned_states, \%state_val2name,$depth);
- }
- if ($found_state) { # good right the way down
- %state_val2name = %$v2nref1;
- last STATEVAL;
- } else {
- &debug("stateval $stateval for state $state looked good, but failed recursively - trying next",$depth,"assign_states");
- delete $state_val2name{$stateval};
- }
- }
- }
- return ($found_state, \@unassigned_states, \%state_val2name);
- }
-}
-
-sub matches_fixedbits {
- my ($state,$stateval) = @_;
-
- # Use a bit index that runs right to left
- for ($bit = 0 ; $bit < length($stateval) ; $bit++) {
- $substrbit = length($stateval) - $bit - 1 ;
- &debug("matches_fixbits looking at bit $bit of $stateval (" . substr($stateval,$substrbit,1) . ") for $state",$depth,"mf");
- if ( (exists $fixedbits{$state}{$bit})
- && ($fixedbits{$state}{$bit} ne (substr($stateval,$substrbit,1))) ) {
- &debug("matches_fixbits found an illegal value at bit $bit of $stateval for $state",$depth,"mf");
- return 0;
- }
- }
- return 1;
-}
-
-sub matches_graycodes {
- my ($state,$stateval,%state_val2name) = @_;
- return ( &matches_graycodes_to_this_state($state,$stateval,%state_val2name)
- && &matches_graycodes_from_this_state($state,$stateval,%state_val2name) );
-}
-
-sub matches_graycodes_to_this_state {
- my ($state,$stateval,%state_val2name) = @_;
- my ($otherstateval,$graystate);
-
- # look at each currently defined state (in state_val2name)
- foreach $otherstateval (keys %state_val2name) {
- $otherstate = $state_val2name{$otherstateval}; # get the name
- if (exists $graytransitions{$otherstate}) { # if it has a gray list
- foreach $graystate (@{ $graytransitions{$otherstate} }) { # look through the list
- if ($graystate eq $state) { #I'm in his list
- &debug("matches_graycodes_to_this_state checking $graystate ($otherstateval) against $state ($stateval)",$depth,"mgto");
- # check to see if it is legal
- if (!&isgraytransition($stateval,$otherstateval)) {
- return 0;
- }
- }
- }
- }
- }
- return 1; # if nothing illegal found, all must be legal
-}
-
-sub matches_graycodes_from_this_state {
- my ($state,$stateval,%state_val2name) = @_;
- my ($otherstateval,$graystate);
-
- # look at each state that should be a gray transition from this state
- return 1 if (!exists $graytransitions{$state});
- foreach $graystate (@{ $graytransitions{$state} }) {
- &debug("matches_graycodes_from_this_state looking at gray state $graystate for state $state",$depth,"mgfrom");
- # find the encoding for the gray state
- foreach $otherstateval (keys %state_val2name) {
- &debug("matches_graycodes_from_this_state looking at otherstateval $otherstateval",$depth,"mgfrom");
- if ($state_val2name{$otherstateval} eq $graystate) {
- &debug("Checking $graystate ($otherstateval) against $state ($stateval)",$depth,"mgfrom");
- # check to see if it is legal
- if (!&isgraytransition($stateval,$otherstateval)) {
- return 0;
- }
- }
- }
- }
- return 1; # if nothing illegal found, all must be legal
-}
-
-sub isgraytransition {
- my ($stateval1,$stateval2) = @_;
- my ($diffs);
-
- # using perl's normal left to right bit order
- &debug("isgraytransition checking $stateval1 against $stateval2",$depth,"isgraytrans");
- for ($bit = 0 ; $bit < length($stateval1) ; $bit++) {
- if (substr($stateval1,$bit,1) ne substr($stateval2,$bit,1)) {
- $diffs++
- }
- }
- &debug("isgraytransition found $diffs diffs",$depth,"isgraytrans");
- return ($diffs <= 1);
-}
-
-sub required_bits {
- my ($n) = @_;
- $div= log($n) / log(2);
- $base = sprintf("%d",$div);
- if (($div - $base) > 0) {$base++;}
- return $base;
-}
-
-
-sub hex2bin {
- my ($hex) = @_;
- my ($bin,$i);
-
- %hex2bin = ( 0 => "0000",
- 1 => "0001",
- 2 => "0010",
- 3 => "0011",
- 4 => "0100",
- 5 => "0101",
- 6 => "0110",
- 7 => "0111",
- 8 => "1000",
- 9 => "1001",
- a => "1010",
- b => "1011",
- c => "1100",
- d => "1101",
- e => "1110",
- f => "1111",
- A => "1010",
- B => "1011",
- C => "1100",
- D => "1101",
- E => "1110",
- F => "1111",
- );
-
- for ($i = 0; $i < length($hex) ; $i++) {
- $bin = $bin . $hex2bin{substr($hex,$i,1)};
- }
- return $bin;
-}
-
-sub octal2bin {
- my ($octal) = @_;
- my ($bin,$i);
-
- %octal2bin = ( 0 => "000",
- 1 => "001",
- 2 => "010",
- 3 => "011",
- 4 => "100",
- 5 => "101",
- 6 => "110",
- 7 => "111",
- );
-
- for ($i = 0; $i < length($octal) ; $i++) {
- $bin = $bin . $octal2bin{substr($octal,$i,1)};
- }
- return $bin;
-}
-
-sub dec2bin {
- my ($dec,$bits) = @_;
- my ($hex,$bin,$i);
-
- $hex = sprintf("%x",$dec);
- $bin = &hex2bin($hex);
- # Zero extend
- #print "dec2bin bin was $bin\n";
- $bin = "0" x ($bits - length($bin)) . $bin;
- #print "dec2bin extended bin is $bin\n";
- return substr($bin,length($bin) - $bits,$bits);
-}
-
-sub convert2bin {
- my ($value) = @_;
- my ($bits,$val);
-
- #print "Starting convert2bin on value $value\n";
-
- if (($bitlen,$format,$val) = ($value =~ /^(?:(\d*))?'(?:([bdoh]))?([0-9a-fA-F]*)$/)) {
- } else {
- $format = "b" unless ($format);
- $val = $value;
- }
- #print "value: $value: bitlen: $bitlen format: $format val: $val\n";
- if ($format eq "b") {
- #print "converted a bin $value: bitlen: $bitlen format: $format val: $val\n";
- $bitlen = length($val) unless ($bitlen); # default length
- if ($bitlen != length($val)) {
- &error($indent,"Binary value $value has a size that doesn't match the value");
- }
- $value = substr($val,length($val) - $bitlen,$bitlen);
- } elsif ($format eq "h") {
- #print "converted a hex $value: bitlen: $bitlen format: $format val: $val\n";
- $bitlen = 4 * length($val) unless ($bitlen); # default length
- $value = &hex2bin($val);
- # Zero extend
- #print "value was $value\n";
- $value = "0" x ($bitlen - length($value)) . $value;
- #print "value extended is $value\n";
- $value = substr($value,length($value) - $bitlen,$bitlen);
- } elsif ($format eq "o") {
- #print "converted a octal $value: bitlen: $bitlen format: $format val: $val\n";
- $bitlen = 3 * length($val) unless ($bitlen); # default length
- $value = &octal2bin($val);
- $value = substr($value,length($value) - $bitlen,$bitlen);
- } elsif ($format eq "d") {
- #print "converted a dec $value: bitlen: $bitlen format: $format val: $val\n";
- $value = &dec2bin($val,$bitlen);
- } else {
- &error($indent,"Got an unrecognized format $format in convert2bin");
- }
-
- #print "returning $value\n";
- #print "\n";
- return $value;
-}
-
-sub get_statevals {
- my($bits) = @_;
- my(@statevals);
- my($i);
- my($bin);
-
- for ($i = 0 ; $i < 2 ** $bits ; $i++) {
- $bin = &dec2bin($i,$bits);
- push(@statevals,$bin);
- }
- return @statevals;
-}
-
-
-sub debug {
- my ($string,$depth,$section) = @_;
- if ($global_debug || $debug_sections{$section}) {
- print STDERR " " x $depth . ": $string\n";
- }
-}
-
-sub error {
- my ($indent,$string) = @_;
-
- # indent is ignored. It is just there to make it easy to switch btw
- # warnings and errors.
-
- &print_output;
- print "\n\nError: $string - exiting\n";
- print STDERR "\n\nError: $string - exiting\n";
- exit;
-}
-
-sub warning {
- my($indent,$string) = @_;
- my($group,$number) = ();
-
- # Determine warning number based on string. It would be cleaner to just
- # have the call use the number, but that makes it difficult to see what
- # the warning is when reading the code.
- if ($string =~ /No reset specified/) {$group = "R"; $number = 1;}
- elsif ($string =~ /No reset value for datapath output \S+ set in reset state \S+ - Assiging a reset value of \S+ based on default/) {$group = "R"; $number = 5;}
- # Now an error:
- #elsif ($string =~ /Specified reset signal \S+ is not an input/) {$group = "R"; $number = 6;}
-
- elsif ($string =~ /Neither implied_loopback nor default_state_is_x attribute is set on state machine - this could result in latches being inferred/) {$group = "I"; $number = 2;}
-
- elsif ($string =~ /State \S+ has multiple exit transitions, and transition \S+ has no defined priority/) {$group = "P"; $number = 3;}
- elsif ($string =~ /State \S+ has multiple exit transitions, and transition \S+ has the same priority as transition .*/) {$group = "P" ; $number = "4"}
-
- elsif ($string =~ /Combinational output \S+ is assigned on transitions, but has a non-default value ".+" in state \S+/) {$group = "C" ; $number = 7;}
-
- elsif ($string =~ /Neither implied_loopback nor default_state_is_x attribute is set on onehot state machine and there is no loopback arc - this could result in latches being inferred/) {$group = "I"; $number = 8;}
-
- elsif ($string =~ /Did not find any non-default values for any datapath outputs - suppressing case statement/) {$group = "D"; $number = 9;}
-
- elsif ($string =~ /Combinational output \S+ has no default value/) {$group = "C" ; $number = 10;}
-
- elsif ($string =~ /Datapath output \S+ has no default value/) {$group = "D" ; $number = 11;}
-
- elsif ($string =~ /Using override value from attribute/) {$group = "O" ; $number = 12;}
-
- # Output warning unless suppressed
- unless ($nowarns{"${group}${number}"} || $nowarns{$group}) {
- eval "\$myindent = \"$indentstring\" x $indent";
- if ($warnout eq "stdout" || $warnout eq "both") {
- # warnings are stored in an array whose indeces correspond to the
- # previous line of pbuf. Use concat in case there are multiple warnings
- # associated with the same line.
- $warnings[$#pbuf] = $warnings[$#pbuf] . "${myindent}// Warning $group$number: $string \n";
- }
- if ($warnout eq "stderr" || $warnout eq "both") {
- print STDERR "\n\nWarning $group$number: $string \n";
- }
- }
-}
-
-sub assertion {
- my($indent,$string) = @_;
-
- eval "\$myindent = \"$indentstring\" x $indent";
- $assertions[$#pbuf] = $assertions[$#pbuf] . "${myindent}${string}\n";
-}
-
-sub print {
- my($indent,$string) = @_;
- my($skip,$maxlen,$thislen) = 0;
- my($tag) = "//tersetag";
- my($i,$j);
-
- $section = "terse"; # for debug
- # -terse handling
- # If you plan to follow or modify the -terse code, be sure to have an
- # ample supply of barf bags near to hand. It is HORRIBLE.
- #
- # The basic idea is that all calls to &print go to an array (pbuf). This
- # is done even without -terse, just to be consistent. Warnings and
- # "comments" must go to separate arrays that parallel pbuf. This makes
- # it easier for the tersify code to find its way around.
- #
- # When -terse is on, it looks for "end" and "endcase" (plus wire statements),
- # and starts poking around in the pbuf to try to get rid of begin/end pairs.
- # When it finds an "endcase", it backs up through pbuf to tag lines as
- # statement and non-statement, and to calculate how much indent will be
- # required to make the assignment statements line up. It then goes back
- # forward through pbuf and makes these modifications.
- #
- # Yech!
-
- # 1) Get rid of unnecessary wire statements
- if ($terse && ($string =~ /^\s*(in|out)put wire /)) {
- ($temp = $string) =~ s/\/\/.*$//;
- unless ($temp =~ /\[\d+:\d+\]/) {
- $string =~ s/ wire//;
- }
- }
-
- # 2) Get rid of extra begin/end pairs
- #
- if ($terse && ($string =~ /^\s*end\s*$/)) {
- # a) If we're on an "end" line and the next-to-previous line ends in begin,
- # strip the begin and newline and set skip flag.
- # ex:
- # if (foo) begin
- # bar <= 0
- # end
- # or:
- # begin
- # bar <= 0
- # end
- if ($pbuf[$#pbuf - 1] =~ s/^([^:]*)begin\s*$/\1/) {
- $skip = 1;
- # If resulting string is empty, remove it
- if ($pbuf[$#pbuf - 1] =~ /^\s*$/) {
- splice(@pbuf, $#pbuf -1, 1);
- }
- # Unindent
- eval "\$myindent = \"$indentstring\"";
- $pbuf[$#pbuf] =~ s/$myindent//;
-
- # b) If we're on an "end" line and the next-to-previous line looks like
- # a "IDLE:" line, strip the begin and newline and set skip flag.
- # ex:
- # IDLE: begin
- # bar <= 0
- # end
- } elsif (&is_stateline($pbuf[$#pbuf - 1])) {
- if ($pbuf[$#pbuf - 1] =~ s/(\S+\s*:)\s+begin\s*$/\1/) {
- $skip = 1;
- # Unindent
- #eval "\$myindent = \"$indentstring\"";
- #$pbuf[$#pbuf] =~ s/$myindent//;
- }
-
- # c) If we're on an "end" line and the next-to-previous line is "else",
- # 2 lines up from that is "if", and
- # 1 line from that is "state:"
- # IDLE: begin < -4
- # if (foo) < -3
- # bar <=1 < -2
- # else < -1
- # bar <= 0 < 0
- # end < curr
- # remove the begin and newline, join the lines and set skip flag
- # (lines are joined explicitly because "case" step needs all "statements"
- # on a single line).
- # Also, scoot the -1 line (else) over by the length to the ":" plus 1
- } elsif ( $pbuf[$#pbuf -1] =~ /else /
- && $pbuf[$#pbuf -3] =~ /if /
- && $pbuf[$#pbuf -4] =~ /begin\s*$/ # no comment on state begin
- && (&is_stateline($pbuf[$#pbuf - 4]))
- ) {
-
- $pbuf[$#pbuf - 4] =~ s/(\S+\s*:)\s+begin\s*$/\1/; # strip begin
-
- # Do the "scoot"
- $colonpos = index($pbuf[$#pbuf-4],":");
- ($temp = $pbuf[$#pbuf-4]) =~ s/^(\s*).*$/\1/;
- $startpos = length($temp);
- $pbuf[$#pbuf-1] = " " x ($colonpos - $startpos) . $pbuf[$#pbuf-1];
-
- # Remove indent on 4 and join -3 and -4 into -3
- $pbuf[$#pbuf-3] =~ s/^$level4indent/ /;
- $pbuf[$#pbuf-3] = $pbuf[$#pbuf-4] . $pbuf[$#pbuf-3];
- # And snuff out -4
- splice(@pbuf, $#pbuf -4, 1);
- $skip = 1;
-
- # d) If we're on an "end" line and their are "stacked begin/begin end/end
- # sets, like this:
- # IDLE: begin < -?
- # begin < -?
- # bar <=1 < -?
- # bar <= 0 < -1
- # end < 0
- # end < curr
- # remove the inside begin/end pair, but do not set skip flag.
- } elsif ($pbuf[$#pbuf] =~ /^\s*end/) { # previous was ALSO end
- # troll through the buffer looking for the previous begin
- $i = $#pbuf-1;
- while ($pbuf[$i] !~ /^[^\/]*begin/ && $pbuf[$i] !~ /^\s*end/ && $i > 0) {
- $i--
- }
- # $i is now pointing at begin (or at end or start of buffer)
- # If it is begin, then do our thing
- if ($pbuf[$i] =~ /^\s*begin/) { # MUST be a PURE begin
- if ($pbuf[$i-1] =~ /^[^\/]*begin/) { # Previous is ALSO a begin
- # snuff out $i entry
- splice(@pbuf, $i, 1);
- # snuff out last entry (previous end)
- splice(@pbuf, $#pbuf, 1);
- }
- }
-
- } else {
- #print $string;
- #print $pbuf[$#pbuf - 1];
- }
- }
-
- # Change the statename (sim code) section to put state and assignment
- # on the same line
- if ($terse && ($string =~ /$statenamevar\s+=/)) {
- &debug("Found statename line \"$string\"\n",0,$section);
- &debug("$pbuf[$#pbuf]\n",0,$section);
- chomp($pbuf[$#pbuf]);
- }
-
- # 3) At endcase, back up and re-format assignment lines to make them line up
- if ($terse && ($string =~ /^\s*endcase/)) {
- &debug("\nBefore 1st pass:\n",0,$section);
- &debug(join("",@pbuf),0,$section);
- #for ($i=0; $i<=$#pbuf; $i++) {
- # print "$i : $pbuf[$i]\n";
- #}
-
- # 1st pass: Back up through the buffer to the case statement and gather
- # information about the longest statement line. Also, tag the lines as
- # statement (#) and provide their length if applicable by pre-pending
- # the tag. This will be used and removed on the 2nd pass.
- $maxlen = 0;
- $i = $#pbuf;
- $thislen = 0;
- while ($pbuf[$i] !~ /^\s*case/ && $i > 0) {
- &debug("\n\n1st pass line is:\n",0,$section);
- &debug("\"$pbuf[$i]\"",0,$section);
- if ($pbuf[$i] =~ /^\s*(if)|(else)|(end)|(begin)/ || &is_stateline($pbuf[$i])) {
- # "statement" lines
- &debug("\nIt's a statement line\n",0,$section);
- # Get length and set maxlen
- ($nocomment = $pbuf[$i]) =~ s/\s*\/\/.*$//;
- $nocomment =~ s/\s*\/\*.*$//; # for /* - not sure if this is necessary
- $thislen = length($nocomment);
- &debug("got a match: thislen is $thislen\n",0,$section);
- $maxlen = $thislen if ($maxlen < $thislen);
-
- if ($pbuf[$i] =~ /\n$/) {
- # lines with eol should just to be marked
- $pbuf[$i] =~ s/^/## /;
- } else {
- # If "state:" line has no eol, these will be joined. Get rid
- # of the indent.
- # First, find the previous "state:" line
-# $j = $i-1;
-# while (!&is_stateline($pbuf[$j]) && ($pbuf[$j] !~ /^\s*case/) && $j > 0) {
-# $j--;
-# }
-# # Check to see whether it has an eol
-# if ($pbuf[$j] !~ /.*\n$/) {
-# # Get rid of indent
-# $pbuf[$i] =~ s/^$level4indent/ /;
-# }
-
- # Tag with length (will be removed on 2nd pass)
- $pbuf[$i] =~ s/^/#$thislen /;
- }
-
- } else {
- &debug("\nIt's an assignment line\n",0,$section);
- }
- &debug("\n1st pass modified line is:\n",0,$section);
- &debug("\"$pbuf[$i]\"",0,$section);
- $i--;
- }
-
- &debug("\nBefore 2nd pass:\n",0,$section);
- &debug(join("",@pbuf),0,$section);
- # 2nd pass: go forward through the case section of the buffer and make the
- # appropriate mods
- $maxlen++;
- &debug("maxlen is $maxlen\n",0,$section);
- # $i is from above!
- $i++; # go to next after case statement
- while ($i <= $#pbuf) {
- &debug("\n2nd pass line is:\n",0,$section);
- &debug("\"$pbuf[$i]\"",0,$section);
- if ($pbuf[$i] =~ /^#/) { # statement line of some sort
- if ($pbuf[$i] =~ s/^#(\d+) //) { # this is a line without a begin
- $pad = " " x ($maxlen - $1); # calculate pad for later lines
- } else {
- $pbuf[$i] =~ s/^## //;
- #$pad = "";
- $pad = " " x $maxlen;
- }
- &debug("taglen is $1 ; pad is \"$pad\"\n",0,$section);
- &debug("modified statement line is \"$pbuf[$i]\"\n",0,$section);
- } else {
- $pbuf[$i] =~ s/^\s*/$pad/;
- &debug("modified assignment line is \n\"$pbuf[$i]\"\n",0,$section);
- &debug("last 2 lines: \n" . $pbuf[$i-1] . $pbuf[$i],0,$section);
- }
- $i++;
- }
- }
-
- #push(@pbuf,$indentstring x $indent . "$string") unless ($skip);
- # Handle indent in a way that makes regexp's work
- eval "\$myindent = \"$indentstring\" x $indent";
- $string = $myindent . $string;
- push(@pbuf,$string) unless ($skip);
-
-}
-
-sub print_output {
- # Dump print buffer and warnings
- for ($i=0; $i<=$#pbuf; $i++) {
- #print "$i : $pbuf[$i]";
- print $pbuf[$i];
- print $warnings[$i];
- print $assertions[$i];
- }
-}
-
-sub is_stateline {
- my($line) = @_;
-
- $line =~ s/\s*\/\/.*$//; # get rid of comments
-
- return
- ($line =~ /$nextstatevar\[\S+\]\s*:/)
- || ($line =~ /$statevar\[\S+\]\s*:/)
- || ($line =~ /\S+\s*:/ && ! ($line =~ /\d:\d/))
- || ($line =~ /^\s*default\s*:/)
- ;
-
-}
-
-sub process_options {
-
- # Debug stuff
- &debug("orig_argv: " . join(" ",@orig_argv),0,"be_cmd");
- &debug("ARGV: " . join(" ",@ARGV),0,"be_cmd");
-
- use Getopt::Long;
- # Default non-null options
- $encoding = "heros";
- $statevar = "state";
- $nextstatevar = "nextstate";
- $statenamevar = "statename";
- $warnout = "both";
- $simcode = 1;
- $indentstring = " ";
-
- # Process options
- die unless GetOptions(
- "help" => \$help,
- "verbose!" => \$verbose,
- "debug=s" => \@debug_sections,
- "encoding=s" => \$encoding,
- "simcode!" => \$simcode,
- "maxbits=s" => \$maxbits,
- "statevar=s" => \$statevar,
- "nextstatevar=s" => \$nextstatevar,
- "statenamevar=s" => \$statenamevar,
- "warnout=s" => \$warnout,
- "nowarn=s" => \@nowarns,
- "terse!" => \$terse,
- "sunburst!" => \$terse,
- "indentstring=s" => \$indentstring,
- "version!" => \$version,
- "addversion!" => \$addversion,
- );
-
- if ($help) {
- &show_help;
- exit;
- }
-
- if ($version) {
- print "$me version $scriptversion\n";
- exit;
- }
-
- # Turn debug array into a hash
- foreach $section (@debug_sections) {
- $debug_sections{$section} = 1;
- }
-
- # Turn nowarn array into a hash
- foreach $nowarn (@nowarns) {
- $nowarns{$nowarn} = 1;
- }
-
-
- # Create reserved words hash
- %reserved_words = (
- $statevar => 1,
- $nextstatevar => 1,
- $statenamevar => 1,
- );
-
-}
-
-sub show_help {
- print STDERR "Syntax:
- $me [options]
-
- options:
- -help Show this help
- -verbose Be Chatty
- -debug section Turn on debug messages for section
- (Can be used multiple times)
- -encoding Use encoding
- -simcode Add code to add ascii state names in simulation
- -maxbits For heros encoding, set upper limit of search range to
- -statevar Use instead of \"state\" for the state variable
- -nextstatevar Use instead of \"nextstate\" for the nextstate variable
- -statenamevar Use instead of \"statename\" for the ASCII state name variable
- -warnout
verilog/wb_sdram_ctrl/fizzim.pl
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm.fzm
===================================================================
--- verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm.fzm (revision 391)
+++ verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm.fzm (nonexistent)
@@ -1,14590 +0,0 @@
-## File last modified by Fizzim: 16:47:19 on 2009-01-19
-
- 8.04.05
-
-
-
-
-
- ABS
-
-
- wb_sdram_ctrl_fsm
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- ABS
-
-
- sdram_clk
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- posedge
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- ABS
-
-
- wb_rst
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- posedge
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- ABS
-
-
- IDLE
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- `include "wb_sdram_ctrl_defines.v"
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
-
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- comb
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
-
-
- ABS
-
-
- def_name
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
-
-
- ABS
-
-
- def_name
-
- GLOBAL_VAR
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- -1
-
-
-
-
-
- DECLARATION
- INIT
- COMMAND
-
-## START PREFERENCES
-
-26
-
-
-34
-
-
-true
-
-
-20
-
-
-Arial
-11
-
-
--16777216
-
-
-Arial
-11
-
-
-false
-25
-
-## END PREFERENCES
-## START OBJECTS
-
-fzm_globalTable
-
- 10
-
-
- 10
-
-
- 1
-
-
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- IDLE
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 274
-
-
- 66
-
-
- 374
-
-
- 166
-
-
- true
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- PRE
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 446
-
-
- 59
-
-
- 546
-
-
- 159
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- ARF1
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_AREF
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 448
-
-
- 349
-
-
- 548
-
-
- 449
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- ARF2
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_AREF
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 438
-
-
- 628
-
-
- 538
-
-
- 728
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- LMR
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_LMR
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_LMR
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 414
-
-
- 923
-
-
- 514
-
-
- 1023
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans0
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- dly_100us
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -44
-
-
- -13
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- IDLE
-
-
- PRE
-
-
- 370.0
-
-
- 98.0
-
-
- 446.0
-
-
- 109.0
-
-
- 402.0
-
-
- 85.0
-
-
- 400.0
-
-
- 102.0
-
-
- 34
-
-
- 18
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans1
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 11
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- PRE
-
-
- NOP1
-
-
- 496.0
-
-
- 159.0
-
-
- 499.0
-
-
- 204.0
-
-
- 496.0
-
-
- 170.0
-
-
- 499.0
-
-
- 193.0
-
-
- 9
-
-
- 28
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans2
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 12
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ARF1
-
-
- NOP2
-
-
- 498.0
-
-
- 449.0
-
-
- 498.0
-
-
- 488.0
-
-
- 498.0
-
-
- 487.0
-
-
- 499.0
-
-
- 452.0
-
-
- 9
-
-
- 28
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans3
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 5
-
-
- -14
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ARF2
-
-
- NOP3
-
-
- 479.0
-
-
- 727.0
-
-
- 480.0
-
-
- 778.0
-
-
- 475.0
-
-
- 741.0
-
-
- 484.0
-
-
- 750.0
-
-
- 10
-
-
- 28
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-
-Initialization of SDRAM
-
- 96
-
-
- 78
-
-
- 2
-
-
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP1
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 441
-
-
- 204
-
-
- 541
-
-
- 304
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans5
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 23
-
-
- 5
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- NOP1
-
-
- ARF1
-
-
- 499.0
-
-
- 303.0
-
-
- 498.0
-
-
- 349.0
-
-
- 499.0
-
-
- 324.0
-
-
- 496.0
-
-
- 306.0
-
-
- 8
-
-
- 27
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP2
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 440
-
-
- 488
-
-
- 540
-
-
- 588
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans6
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- NOP2
-
-
- ARF2
-
-
- 490.0
-
-
- 588.0
-
-
- 488.0
-
-
- 628.0
-
-
- 490.0
-
-
- 610.0
-
-
- 490.0
-
-
- 611.0
-
-
- 9
-
-
- 27
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP3
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- 422
-
-
- 778
-
-
- 522
-
-
- 878
-
-
- false
-
-
- 2
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans7
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -1
-
-
- 6
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- NOP3
-
-
- LMR
-
-
- 472.0
-
-
- 878.0
-
-
- 472.0
-
-
- 923.0
-
-
- 475.0
-
-
- 900.0
-
-
- 471.0
-
-
- 891.0
-
-
- 9
-
-
- 28
-
-
- 2
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- AWAIT_CMD
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- LOCAL
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 189
-
-
- 91
-
-
- 289
-
-
- 191
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- AREF
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_AREF
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 419
-
-
- 75
-
-
- 519
-
-
- 175
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans8
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- ref_req
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- -9
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- AWAIT_CMD
-
-
- AREF
-
-
- 288.0
-
-
- 132.0
-
-
- 419.0
-
-
- 133.0
-
-
- 326.0
-
-
- 133.0
-
-
- 385.0
-
-
- 131.0
-
-
- 35
-
-
- 17
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans9
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -4
-
-
- -5
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- AREF
-
-
- AWAIT_CMD
-
-
- 519.0
-
-
- 125.0
-
-
- 289.0
-
-
- 141.0
-
-
- 393.0
-
-
- 130.0
-
-
- 317.0
-
-
- 142.0
-
-
- 0
-
-
- 0
-
-
- 3
-
-
- -16777216
-
-
- 763.0
-
-
- 125.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- true
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans11
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 2
-
-
-
-
- LMR
-
-
- AWAIT_CMD
-
-
- 514.0
-
-
- 973.0
-
-
- 189.0
-
-
- 141.0
-
-
- 534.0
-
-
- 973.0
-
-
- 169.0
-
-
- 141.0
-
-
- 0
-
-
- 0
-
-
- 2
-
-
- -16777216
-
-
- 788.0
-
-
- 973.0
-
-
- 704.0
-
-
- 973.0
-
-
- 50.0
-
-
- 141.0
-
-
- 70.0
-
-
- 141.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- ACT_ROW
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_ACT
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_ACT
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 190
-
-
- 252
-
-
- 290
-
-
- 352
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans12
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- wb_stb & wb_cyc
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 57
-
-
- -5
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 2
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 37
-
-
- -1
-
-
- 3
-
-
-
-
- AWAIT_CMD
-
-
- ACT_ROW
-
-
- 239.0
-
-
- 191.0
-
-
- 240.0
-
-
- 252.0
-
-
- 239.0
-
-
- 228.0
-
-
- 239.0
-
-
- 213.0
-
-
- 9
-
-
- 27
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP4
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 190
-
-
- 395
-
-
- 290
-
-
- 495
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans13
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 13
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ACT_ROW
-
-
- NOP4
-
-
- 240.0
-
-
- 352.0
-
-
- 240.0
-
-
- 395.0
-
-
- 240.0
-
-
- 373.0
-
-
- 240.0
-
-
- 373.0
-
-
- 9
-
-
- 27
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans14
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 14
-
-
- -7
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 2
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 30
-
-
- -40
-
-
- 3
-
-
-
-
- NOP4
-
-
- READ
-
-
- 265.0
-
-
- 488.0
-
-
- 309.0
-
-
- 552.0
-
-
- 275.0
-
-
- 503.0
-
-
- 295.0
-
-
- 535.0
-
-
- 6
-
-
- 24
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- READ
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_READ
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_READ
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 2
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 284
-
-
- 546
-
-
- 384
-
-
- 646
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans17
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- end_of_burst
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 1
-
-
- 31
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 3
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -6
-
-
- 38
-
-
- 3
-
-
-
-
- READ
-
-
- PRECHARGERD
-
-
- 384.0
-
-
- 596.0
-
-
- 441.0
-
-
- 597.0
-
-
- 395.0
-
-
- 596.0
-
-
- 428.0
-
-
- 597.0
-
-
- 0
-
-
- 17
-
-
- 3
-
-
- -16777216
-
-
- 667.0
-
-
- 452.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans18
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- wb_we
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -35
-
-
- -52
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -43
-
-
- -84
-
-
- 3
-
-
-
-
- NOP4
-
-
- WRITE
-
-
- 240.0
-
-
- 495.0
-
-
- 242.0
-
-
- 842.0
-
-
- 240.0
-
-
- 570.0
-
-
- 242.0
-
-
- 768.0
-
-
- 9
-
-
- 28
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- WRITE
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- -5
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_WRITE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -1
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_WRITE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 2
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 2
-
-
- 4
-
-
- 3
-
-
-
-
- 184
-
-
- 842
-
-
- 284
-
-
- 942
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans21
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- end_of_burst
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -4
-
-
- -2
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- WRITE
-
-
- PRECHARGEWR
-
-
- 284.0
-
-
- 892.0
-
-
- 440.0
-
-
- 890.0
-
-
- 339.0
-
-
- 894.0
-
-
- 391.0
-
-
- 890.0
-
-
- 0
-
-
- 17
-
-
- 3
-
-
- -16777216
-
-
- 705.0
-
-
- 702.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- PRECHARGEWR
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -1
-
-
- -2
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 440
-
-
- 832
-
-
- 540
-
-
- 932
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans22
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -1
-
-
- -7
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- PRECHARGEWR
-
-
- AWAIT_CMD
-
-
- 540.0
-
-
- 882.0
-
-
- 277.0
-
-
- 173.0
-
-
- 611.0
-
-
- 555.0
-
-
- 310.0
-
-
- 269.0
-
-
- 0
-
-
- 4
-
-
- 3
-
-
- -16777216
-
-
- 768.0
-
-
- 882.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- true
-
-
-## END STATE TRANSITION OBJECT
-
-wr_ack => dq_o, dq_oe, dqm
-
- 199
-
-
- 961
-
-
- 3
-
-
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- PRECHARGERD
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 1
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 441
-
-
- 539
-
-
- 541
-
-
- 639
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans25
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- wb_ack | (!wb_cyc & !wb_stb)
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -43
-
-
- 68
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 2
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -2
-
-
- 20
-
-
- 3
-
-
-
-
- NOP5
-
-
- AWAIT_CMD
-
-
- 724.0
-
-
- 588.0
-
-
- 247.0
-
-
- 190.0
-
-
- 336.0
-
-
- 719.0
-
-
- 237.0
-
-
- 343.0
-
-
- 0
-
-
- 8
-
-
- 3
-
-
- -16777216
-
-
- 784.0
-
-
- 588.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- true
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP5
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 624
-
-
- 538
-
-
- 724
-
-
- 638
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans26
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- PRECHARGERD
-
-
- NOP5
-
-
- 541.0
-
-
- 589.0
-
-
- 624.0
-
-
- 588.0
-
-
- 558.0
-
-
- 589.0
-
-
- 606.0
-
-
- 588.0
-
-
- 0
-
-
- 18
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- PRECHARGECLEAR
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- -3
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 1
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- LOCAL
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 455
-
-
- 392
-
-
- 555
-
-
- 492
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans27
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- clear
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -11
-
-
- 5
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 2
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 1
-
-
- 9
-
-
- 3
-
-
-
-
- READ
-
-
- PRECHARGECLEAR
-
-
- 351.0
-
-
- 549.0
-
-
- 455.0
-
-
- 442.0
-
-
- 358.0
-
-
- 507.0
-
-
- 385.0
-
-
- 441.0
-
-
- 29
-
-
- 18
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans28
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- PRECHARGECLEAR
-
-
- ACT_ROW
-
-
- 496.0
-
-
- 392.0
-
-
- 289.0
-
-
- 293.0
-
-
- 481.0
-
-
- 322.0
-
-
- 331.0
-
-
- 289.0
-
-
- 26
-
-
- 35
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans29
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- clear
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 51
-
-
- 28
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 38
-
-
- 33
-
-
- 3
-
-
-
-
- PRECHARGERD
-
-
- NOP6
-
-
- 516.0
-
-
- 545.0
-
-
- 612.0
-
-
- 391.0
-
-
- 563.0
-
-
- 531.0
-
-
- 596.0
-
-
- 475.0
-
-
- 30
-
-
- 9
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans30
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- clear
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 245
-
-
- 97
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 247
-
-
- 102
-
-
- 3
-
-
-
-
- NOP5
-
-
- ACT_ROW
-
-
- 674.0
-
-
- 538.0
-
-
- 278.0
-
-
- 269.0
-
-
- 926.0
-
-
- 69.0
-
-
- 390.0
-
-
- 219.0
-
-
- 27
-
-
- 32
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- PRECHARGETERM
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_PRE
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 443
-
-
- 681
-
-
- 543
-
-
- 781
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans31
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- !wb_cyc & !wb_stb
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -61
-
-
- 59
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1
-
- LOCAL
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -87
-
-
- 22
-
-
- 3
-
-
-
-
- READ
-
-
- PRECHARGETERM
-
-
- 342.0
-
-
- 645.0
-
-
- 443.0
-
-
- 739.0
-
-
- 343.0
-
-
- 717.0
-
-
- 347.0
-
-
- 738.0
-
-
- 8
-
-
- 17
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans32
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- -10
-
-
- -6
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- PRECHARGETERM
-
-
- AWAIT_CMD
-
-
- 543.0
-
-
- 731.0
-
-
- 264.0
-
-
- 184.0
-
-
- 433.0
-
-
- 609.0
-
-
- 257.0
-
-
- 308.0
-
-
- 0
-
-
- 6
-
-
- 3
-
-
- -16777216
-
-
- 781.0
-
-
- 731.0
-
-
- 866.0
-
-
- 731.0
-
-
- 50.0
-
-
- 116.0
-
-
- 70.0
-
-
- 116.0
-
-
- true
-
-
-## END STATE TRANSITION OBJECT
-## START STATE OBJECT
-
-
-
-
- ABS
-
-
- NOP6
-
- LOCAL
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `CMD_NOP
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- `A_DEFAULT
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b1
-
- LOCAL
-
-
-
- 2
-
- LOCAL
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1'b0
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
- output
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- 562
-
-
- 291
-
-
- 662
-
-
- 391
-
-
- false
-
-
- 3
-
-
- -16777216
-
-
-## END STATE OBJECT
-## START STATE TRANSITION OBJECT
-
-
-
-
- ABS
-
-
- trans33
-
- LOCAL
-
-
-
- 0
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- ABS
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- 1
-
- GLOBAL_VAR
-
-
-
- def_type
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- GLOBAL_FIXED
-
-
- 1000
-
- GLOBAL_VAR
-
-
-
- 2
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
-
-
- GLOBAL_VAR
-
-
-
- -16777216
-
- GLOBAL_VAR
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
-
-
- NOP6
-
-
- ACT_ROW
-
-
- 579.0
-
-
- 302.0
-
-
- 286.0
-
-
- 284.0
-
-
- 500.0
-
-
- 270.0
-
-
- 363.0
-
-
- 269.0
-
-
- 23
-
-
- 34
-
-
- 3
-
-
- -16777216
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- 0.0
-
-
- false
-
-
-## END STATE TRANSITION OBJECT
-## END OBJECTS
verilog/wb_sdram_ctrl/wb_sdram_ctrl_fsm.fzm
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/wb_sdram_ctrl_defines.v
===================================================================
--- verilog/wb_sdram_ctrl/wb_sdram_ctrl_defines.v (revision 391)
+++ verilog/wb_sdram_ctrl/wb_sdram_ctrl_defines.v (nonexistent)
@@ -1,71 +0,0 @@
-`timescale 1ns/1ns
-
-`define MODULE_NAME wb_sdram_ctrl
-
-
-`define BURST_LENGTH `LENGTH
-
-//
-// Specify either type of memory
-// or
-// BA_SIZE, ROW_SIZE, COL_SIZE and SDRAM_DATA_WIDTH
-//
-// either in this file or as command line option; +define+MT48LC16M16
-//
-
-// number of adr lines to use
-// 2^2 = 4 32 bit word burst
-`define BURST_SIZE 2
-
-`define DEVICE MT48LC16M16
-// using 1 of MT48LC16M16
-// SDRAM data width is 16
-
-`define SDRAM_DATA_WIDTH 16
-`define COL_SIZE 9
-`define ROW_SIZE 13
-`define BA_SIZE 2
-
-`define SDRAM16
-`define COL {4'b0000,wb_adr_i[9:1]}
-`define ROW wb_adr_i[22:10]
-`define BA wb_adr_i[24:23]
-`define WORD_SIZE 1
-`define END_OF_BURST burst_counter[0]
-`define WB_ADR_HI 24
-`define WB_ADR_LO 1
-
-// FIFO
-`define DLY_INIT 4095
-`define AREF_INIT 390
-
-// LMR
-// [12:10] reserved
-// [9] WB, write burst; 0 - programmed burst length, 1 - single location
-// [8:7] OP Mode, 2'b00
-// [6:4] CAS Latency; 3'b010 - 2, 3'b011 - 3
-// [3] BT, Burst Type; 1'b0 - sequential, 1'b1 - interleaved
-// [2:0] Burst length; 3'b000 - 1, 3'b001 - 2, 3'b010 - 4, 3'b011 - 8, 3'b111 - full page
-`define WB 1'b1
-`define CL 2
-`define BT 1'b0
-`define BL 3'b000
-
-// Adr to SDRAM {ba[1:0],a[12:0]}
-`define A_LMR {2'b00,3'b000,`WB,2'b00,3'd`CL,`BT,`BL}
-`define A_PRE {2'b00,13'b0010000000000}
-`define A_ACT {`BA,`ROW}
-`define A_READ {`BA,`COL}
-`define A_WRITE {`BA,`COL}
-`define A_DEFAULT {2'b00,13'b0000000000000}
-
-// command
-`define CMD {ras, cas, we}
-`define CMD_NOP 3'b111
-`define CMD_AREF 3'b001
-`define CMD_LMR 3'b000
-`define CMD_PRE 3'b010
-`define CMD_ACT 3'b011
-`define CMD_READ 3'b101
-`define CMD_WRITE 3'b100
-`define CMD_BT 3'b110
verilog/wb_sdram_ctrl/wb_sdram_ctrl_defines.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/wb_sdram_ctrl_inst.v
===================================================================
--- verilog/wb_sdram_ctrl/wb_sdram_ctrl_inst.v (revision 391)
+++ verilog/wb_sdram_ctrl/wb_sdram_ctrl_inst.v (nonexistent)
@@ -1,28 +0,0 @@
-wb_sdram_ctrl wb_sdram_ctrl0
- (
- // wishbone i/f
- .wb_dat_i(wbs_mc_m_dat_i),
- .wb_dat_o(wbs_mc_m_dat_o),
- .wb_sel_i(wbs_mc_m_sel_i),
- .wb_adr_i(wbs_mc_m_adr_i),
- .wb_we_i (wbs_mc_m_we_i),
- .wb_cti_i(wbs_mc_m_cti_i),
- .wb_stb_i(wbs_mc_m_stb_i),
- .wb_cyc_i(wbs_mc_m_cyc_i),
- .wb_ack_o(wbs_mc_m_ack_o),
- // SDRAM IO
- .sdr_cke_o(mem_cke_pad_o),
- .sdr_cs_n_o(mem_cs_pad_o),
- .sdr_ras_n_o(mem_ras_pad_o),
- .sdr_cas_n_o(mem_cas_pad_o),
- .sdr_we_n_o(mem_we_pad_o),
- .sdr_a_o(mem_a_pad_o),
- .sdr_dq_io(mem_dat_pad_io),
- .sdr_dqm_o(mem_dqm_pad_o),
- // system
- sdram_clk(sdram_clk),
- wb_clk(wb_clk),
- wb_rst(wb_rst)
- );
-assign wbs_mc_m_err_o = 1'b0;
-
verilog/wb_sdram_ctrl/wb_sdram_ctrl_inst.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: verilog/wb_sdram_ctrl/wb_sdram_ctrl.v
===================================================================
--- verilog/wb_sdram_ctrl/wb_sdram_ctrl.v (revision 391)
+++ verilog/wb_sdram_ctrl/wb_sdram_ctrl.v (nonexistent)
@@ -1,217 +0,0 @@
-`include "wb_sdram_ctrl_defines.v"
-module `MODULE_NAME
- (
- // wishbone i/f
- input [31:0] wb_dat_i,
- output [31:0] wb_dat_o,
- input [3:0] wb_sel_i,
- input [`WB_ADR_HI:2] wb_adr_i,
- input wb_we_i,
- input [2:0] wb_cti_i,
- input wb_stb_i,
- input wb_cyc_i,
- output wb_ack_o,
- // SDRAM IO
- output sdr_cke_o,
- output reg sdr_cs_n_o,
- output reg sdr_ras_n_o,
- output reg sdr_cas_n_o,
- output reg sdr_we_n_o,
- output reg [12:0] sdr_a_o,
- output reg [1:0] sdr_ba_o,
- inout [`SDRAM_DATA_WIDTH-1:0] sdr_dq_io,
- output reg [`SDRAM_DATA_WIDTH/8-1:0] sdr_dqm_o,
- // system
- input sdram_clk,
- input wb_clk,
- input wb_rst
- );
-
- reg ref_req;
- wire ref_ack;
- /* verilator lint_off UNOPTFLAT */
- wire rd_ack, rd_ack_o, wr_ack, wr_ack_o, cmd_ack;
- /* verilator lint_on UNOPTFLAT */
- reg [`BA_SIZE-1:0] ba;
- reg [`ROW_SIZE-1:0] row;
-
- // terminate current cycle if !stb&!cyc, empty fifo
- // restart if adr_fail (non consecutive adr inc), empty fifo
- wire terminate, adr_fail, clear;
-
- wire end_of_burst;
- wire burst_counter_set;
- reg [`COL_SIZE-1:0] burst_counter;
-`ifdef SDRAM16
- wire [`BURST_SIZE:0] burst_counter_next;
- reg [`BURST_SIZE:0] burst_counter_init;
-`endif
-
- wire fifo_we;
-
- wire [1:0] sdr_ba;
- wire [12:0] sdr_a;
-
- reg sdr_dq_oe_reg;
- wire [`SDRAM_DATA_WIDTH-1:0] sdr_dq_i, sdr_dq_o;
- wire [`SDRAM_DATA_WIDTH/8-1:0] sdr_dqm;
-
- // counter 100us delay and refresh interval
- reg [12:0] counter;
- wire counter_zf; // counter zero flag
- assign counter_zf = (counter==13'd0);
- always @ (posedge wb_clk or posedge wb_rst)
- if (wb_rst)
- counter <= 13'd`DLY_INIT;
- else if (counter_zf)
- counter <= 13'd`AREF_INIT;
- else
- counter <= counter - 13'd1;
-
- always @ (posedge wb_clk or posedge wb_rst)
- if (wb_rst)
- ref_req <= 1'b0;
- else
- if (counter_zf)
- ref_req <= 1'b1;
- else if (ref_ack)
- ref_req <= 1'b0;
-
-`ifdef SDRAM16
- assign burst_counter_next = burst_counter[`BURST_SIZE:0] + {{`BURST_SIZE{1'b0}},1'b1};
- always @ (posedge sdram_clk or posedge wb_rst)
- if (wb_rst)
- begin
- ba <= `BA_SIZE'd0;
- row <= `ROW_SIZE'd0;
- burst_counter_init <= `BURST_SIZE'd0;
- burst_counter <= `COL_SIZE'd0;
- end
- else
- if (burst_counter_set)
- begin
- ba <= `BA;
- row <= `ROW;
- // A fix of the fix.
- // We previously adjusted the burst_counter, which is very important - it determines the address
- // we generate and use for the SDRAM column addressing.
- // So instead, when we receive an (arguably incorrect) access request, with the cycle indicator
- // showing "burst end" (wb_cti_i=3'b111), we change burst_counter_init so it should show that
- // the transfer will end after a single 32-bit word transaction has taken place (2 16-bit word
- // transactions)
- burst_counter_init <= (wb_cti_i == 3'b111) ? {wb_adr_i[`BURST_SIZE-1+2:2],1'b0} + 2 : {wb_adr_i[`BURST_SIZE-1+2:2],1'b0};
- burst_counter <= {wb_adr_i[`COL_SIZE+2:2],1'b0};
- end
- else if (rd_ack | wr_ack)
- begin
- burst_counter[`BURST_SIZE:0] <= burst_counter_next;
- end
- assign end_of_burst = (wb_cti_i==3'b000) ? (burst_counter[0]==1'b1) : (burst_counter_next == burst_counter_init);
-`endif
-
- wb_sdram_ctrl_fsm fsm0
- (
- .dly_100us(counter_zf),
- .ref_req(ref_req),
- .ref_ack(ref_ack),
- .accept_cmd(burst_counter_set),
- .rd_ack(rd_ack),
- .wr_ack(wr_ack),
- .clear(clear),
- .wb_stb(wb_stb_i),
- .wb_cyc(wb_cyc_i),
- .wb_we(wb_we_i),
- .wb_ack(wb_ack_o & ((wb_cti_i==3'b000) | (wb_cti_i==3'b111))),
- .end_of_burst(end_of_burst),
- .wb_adr_i({`BA,`ROW,burst_counter}),
- .a({sdr_ba,sdr_a}),
- .cmd(`CMD),
- .cs_n(sdr_cs_n),
- .sdram_clk(sdram_clk),
- .wb_rst(wb_rst)
- );
-
-`ifdef SDRAM16
- assign sdr_dqm = ((burst_counter[0]==1'b0) & wr_ack) ? ~wb_sel_i[3:2] :
- ((burst_counter[0]==1'b1) & wr_ack) ? ~wb_sel_i[1:0] :
- 2'b00;
-`endif
-
- // output registers
- always @ (posedge sdram_clk or posedge wb_rst)
- if (wb_rst)
- begin
- sdr_cs_n_o <= 1'b1;
- {sdr_ras_n_o, sdr_cas_n_o, sdr_we_n_o} <= `CMD_NOP;
- {sdr_ba_o,sdr_a_o} <= 15'd0;
- sdr_dqm_o <= {`SDRAM_DATA_WIDTH/8{1'b0}};
- end
- else
- begin
- sdr_cs_n_o <= #1 sdr_cs_n;
- {sdr_ras_n_o, sdr_cas_n_o, sdr_we_n_o} <= #1 `CMD;
- {sdr_ba_o,sdr_a_o} <= #1 {sdr_ba,sdr_a};
- sdr_dqm_o <= #1 sdr_dqm;
- end
-
- assign sdr_cke_o = 1'b1;
-
-`ifdef SDRAM16
- assign sdr_dq_o = (burst_counter[0]==1'b0) ? wb_dat_i[31:16] : wb_dat_i[15:0];
-`endif
-
- // Tristate driver for data bus
-// assign sdr_dq_oe = wr_ack; -- sdr_dq_oe was not declared! changed its only reference --jb
- reg [`SDRAM_DATA_WIDTH-1:0] sdr_dq_o_reg;
- always @ (posedge sdram_clk or posedge wb_rst)
- if (wb_rst)
- {sdr_dq_oe_reg,sdr_dq_o_reg} <= {1'b0,`SDRAM_DATA_WIDTH'd0};
- else
- {sdr_dq_oe_reg,sdr_dq_o_reg} <= {wr_ack,sdr_dq_o};//{sdr_dq_oe_reg,sdr_dq_o_reg} <= {sdr_dq_oe,sdr_dq_o}; --jb
-
- assign #1 sdr_dq_io = sdr_dq_oe_reg ? sdr_dq_o_reg : {`SDRAM_DATA_WIDTH{1'bz}};
- assign #1 sdr_dq_i = sdr_dq_io;
-
- // delay fifo_fill in accordance to cas latency
- delay #
- (
- .depth(`CL+1),
- .width(1)
- )
- delay1
- (
- .d(rd_ack),
- .q(fifo_we),
- .clear(clear | terminate),
- .clk(sdram_clk),
- .rst(wb_rst)
- );
-
-`ifdef SDRAM16
- assign wr_ack_o = wr_ack & burst_counter[0];
-`endif
-
-
- // wishbone buffer
- wb_sdram_ctrl_fifo fifo
- (
- .d_i(sdr_dq_i),
- .we_i(fifo_we),
- .clear(clear | terminate),
- .clk_i(sdram_clk),
- .wb_dat_o(wb_dat_o),
- .wb_cyc_i(wb_cyc_i),
- .wb_stb_i(wb_stb_i),
- .wb_ack_o(rd_ack_o),
- .wb_clk(wb_clk),
- .rst(wb_rst)
- );
-
-
- assign terminate = ~wb_cyc_i & ~wb_stb_i;
- assign adr_fail = ~(wb_adr_i[`WB_ADR_HI:4]=={ba,row,burst_counter[`COL_SIZE-1:3]});
- assign clear = adr_fail & rd_ack_o;
-/* verilator lint_off UNOPTFLAT */
- assign wb_ack_o = (rd_ack_o & !adr_fail) | wr_ack_o;
-/* verilator lint_on UNOPTFLAT */
-endmodule // wb_sdram_ctrl
verilog/wb_sdram_ctrl/wb_sdram_ctrl.v
Property changes :
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property