Revision 453
Added by markw over 9 years ago
| ultimate_cart/veronica/cpu65816.wcfg | ||
|---|---|---|
| 
              </top_modules>
 
   | 
||
| 
           </db_ref>
 
   | 
||
| 
        </db_ref_list>
 
   | 
||
| 
        <WVObjectSize size="40" />
 
   | 
||
| 
        <WVObjectSize size="49" />
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/cpu_65816_rob/rst" type="logic" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">rst</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">rst</obj_property>
 
   | 
||
| ... | ... | |
| 
           <obj_property name="ElementShortName">clk</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">clk</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/cpu_65816_rob/state" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">state[5:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">state[5:0]</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="divider60" type="divider">
 
   | 
||
| 
           <obj_property name="label">Input</obj_property>
 
   | 
||
| 
           <obj_property name="DisplayName">label</obj_property>
 
   | 
||
| ... | ... | |
| 
           <obj_property name="ObjectShortName">ad[23:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/cpu_65816_rob/ado" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">ado[23:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">ado[23:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/cpu_65816_rob/sp" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">sp[15:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">sp[15:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/cpu_65816_rob/dw" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">dw[7:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">dw[7:0]</obj_property>
 
   | 
||
| ... | ... | |
| 
        <wvobject fp_name="/veronica_tb/thebigone/glue6/sram_addr" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">sram_addr[19:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">sram_addr[19:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/glue6/sram_data_out" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">sram_data_out[7:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">sram_data_out[7:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/thebigone/glue6/sram_drive_data" type="logic" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">sram_drive_data</obj_property>
 
   | 
||
| ... | ... | |
| 
           <obj_property name="ElementShortName">sram_we_n</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">sram_we_n</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/nwe" type="logic" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">nwe</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">nwe</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/nce" type="logic" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">nce</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">nce</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/noe" type="logic" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">noe</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">noe</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/a" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">a[16:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">a[16:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/d" type="array" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">d[7:0]</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">d[7:0]</obj_property>
 
   | 
||
| 
           <obj_property name="Radix">HEXRADIX</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
        <wvobject fp_name="/veronica_tb/sram_model/read_active" type="other" db_ref_id="1">
 
   | 
||
| 
           <obj_property name="ElementShortName">read_active</obj_property>
 
   | 
||
| 
           <obj_property name="ObjectShortName">read_active</obj_property>
 
   | 
||
| 
        </wvobject>
 
   | 
||
| 
     </wave_config>
 
   | 
||
| ultimate_cart/veronica/tb_veronica/sram.vhd | ||
|---|---|---|
| 
                    undef_adr_vec;
 
   | 
||
| 
     | 
||
| 
       read_active <=    (     (nOE = '0') AND (nOE'DELAYED(tLZOE_min) = '0') AND nOE'STABLE(tLZOE_min) 
 
   | 
||
| 
                           AND ((nWE = '1') OR (nWE'DELAYED(tHZWE_max) = '0'))
 
   | 
||
| 
                           AND ((nWE = '1') OR (nWE'DELAYED(tHZWE_max) = '1'))
 
   | 
||
| 
                           AND (nCE = '0') AND (CE2 = '1') AND nCE'STABLE(tLZCE_min) AND CE2'STABLE(tLZCE_min))
 
   | 
||
| 
                      OR (read_active AND (nOE'DELAYED(tHZOE_max) = '0') 
 
   | 
||
| 
                                      AND (nWE'DELAYED(tHZWE_max) = '1')
 
   | 
||
| ultimate_cart/veronica/tb_veronica/veronica_tb.vhd | ||
|---|---|---|
| 
     	CART_S5 <= bus_s5_n when bus_control_oe='1' else 'Z';
 
   | 
||
| 
     	CART_CTL <= bus_cctl_n when bus_control_oe='1' else 'Z';
 
   | 
||
| 
     | 
||
| 
     --	sram_model : entity work.sram
 
   | 
||
| 
     --	generic map
 
   | 
||
| 
     --	(
 
   | 
||
| 
     --		clear_on_power_up: boolean := FALSE;    -- if TRUE, RAM is initialized with zeroes at start of simulation
 
   | 
||
| 
     --		                                        -- Clearing of RAM is carried out before download takes place
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		download_on_power_up: boolean := TRUE;  -- if TRUE, RAM is downloaded at start of simulation 
 
   | 
||
| 
     --		  
 
   | 
||
| 
     --		trace_ram_load: boolean := TRUE;        -- Echoes the data downloaded to the RAM on the screen
 
   | 
||
| 
     --		                                        -- (included for debugging purposes)
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		enable_nWE_only_control: boolean := TRUE;  -- Read-/write access controlled by nWE only
 
   | 
||
| 
     --		                                           -- nOE may be kept active all the time
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		-- Configuring RAM size
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		size:      INTEGER :=  8;  -- number of memory words
 
   | 
||
| 
     --		adr_width: INTEGER :=  3;  -- number of address bits
 
   | 
||
| 
     --		width:     INTEGER :=  8;  -- number of bits per memory word
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		-- READ-cycle timing parameters
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		tAA_max:    TIME := 20 NS; -- Address Access Time
 
   | 
||
| 
     --		tOHA_min:   TIME :=  3 NS; -- Output Hold Time
 
   | 
||
| 
     --		tACE_max:   TIME := 20 NS; -- nCE/CE2 Access Time
 
   | 
||
| 
     --		tDOE_max:   TIME :=  8 NS; -- nOE Access Time
 
   | 
||
| 
     --		tLZOE_min:  TIME :=  0 NS; -- nOE to Low-Z Output
 
   | 
||
| 
     --		tHZOE_max:  TIME :=  8 NS; --  OE to High-Z Output
 
   | 
||
| 
     --		tLZCE_min:  TIME :=  3 NS; -- nCE/CE2 to Low-Z Output
 
   | 
||
| 
     --		tHZCE_max:  TIME := 10 NS; --  CE/nCE2 to High Z Output
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		-- WRITE-cycle timing parameters
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		tWC_min:    TIME := 20 NS; -- Write Cycle Time
 
   | 
||
| 
     --		tSCE_min:   TIME := 18 NS; -- nCE/CE2 to Write End
 
   | 
||
| 
     --		tAW_min:    TIME := 15 NS; -- tAW Address Set-up Time to Write End
 
   | 
||
| 
     --		tHA_min:    TIME :=  0 NS; -- tHA Address Hold from Write End
 
   | 
||
| 
     --		tSA_min:    TIME :=  0 NS; -- Address Set-up Time
 
   | 
||
| 
     --		tPWE_min:   TIME := 13 NS; -- nWE Pulse Width
 
   | 
||
| 
     --		tSD_min:    TIME := 10 NS; -- Data Set-up to Write End
 
   | 
||
| 
     --		tHD_min:    TIME :=  0 NS; -- Data Hold from Write End
 
   | 
||
| 
     --		tHZWE_max:  TIME := 10 NS; -- nWE Low to High-Z Output
 
   | 
||
| 
     --		tLZWE_min:  TIME :=  0 NS  -- nWE High to Low-Z Output
 
   | 
||
| 
     --	);
 
   | 
||
| 
     --	port map
 
   | 
||
| 
     --	(
 
   | 
||
| 
     --		nCE: IN std_logic := '1';  -- low-active Chip-Enable of the SRAM device; defaults to '1' (inactive)
 
   | 
||
| 
     --		nOE: IN std_logic := '1';  -- low-active Output-Enable of the SRAM device; defaults to '1' (inactive)
 
   | 
||
| 
     --		nWE: IN std_logic := '1';  -- low-active Write-Enable of the SRAM device; defaults to '1' (inactive)
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		A:   IN std_logic_vector(adr_width-1 downto 0); -- address bus of the SRAM device
 
   | 
||
| 
     --		D:   INOUT std_logic_vector(width-1 downto 0);  -- bidirectional data bus to/from the SRAM device
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		CE2: IN std_logic := '1';  -- high-active Chip-Enable of the SRAM device; defaults to '1'  (active) 
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		download: IN boolean := FALSE;    -- A FALSE-to-TRUE transition on this signal downloads the data
 
   | 
||
| 
     --		                                  -- in file specified by download_filename to the RAM
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		download_filename: IN string := "sram_load.dat";  -- name of the download source file
 
   | 
||
| 
     --		                                                  --            Passing the filename via a port of type
 
   | 
||
| 
     --		                                                  -- ********** string may cause a problem with some
 
   | 
||
| 
     --		                                                  -- WATCH OUT! simulators. The string signal assigned
 
   | 
||
| 
     --		                                                  -- ********** to the port at least should have the
 
   | 
||
| 
     --		                                                  --            same length as the default value.
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		dump: IN boolean := FALSE;       -- A FALSE-to-TRUE transition on this signal dumps
 
   | 
||
| 
     --		                                 -- the current content of the memory to the file
 
   | 
||
| 
     --		                                 -- specified by dump_filename.
 
   | 
||
| 
     --		dump_start: IN natural := 0;     -- Written to the dump-file are the memory words from memory address 
 
   | 
||
| 
     --		dump_end: IN natural := size-1;  -- dump_start to address dump_end (default: all addresses)
 
   | 
||
| 
     --		
 
   | 
||
| 
     --		dump_filename: IN string := "sram_dump.dat"  -- name of the dump destination file
 
   | 
||
| 
     --                                                 -- (See note at port  download_filename)
 
   | 
||
| 
     --	);
 
   | 
||
| 
     	sram_model : entity work.sram
 
   | 
||
| 
     	generic map
 
   | 
||
| 
     	(
 
   | 
||
| 
     		clear_on_power_up => TRUE,
 
   | 
||
| 
     		                                        -- Clearing of RAM is carried out before download takes place
 
   | 
||
| 
     		download_on_power_up => FALSE,  -- if TRUE, RAM is downloaded at start of simulation 
 
   | 
||
| 
     | 
||
| 
     		trace_ram_load => TRUE,        -- Echoes the data downloaded to the RAM on the screen
 
   | 
||
| 
     		                                        -- (included for debugging purposes)
 
   | 
||
| 
     | 
||
| 
     		enable_nWE_only_control => TRUE,  -- Read-/write access controlled by nWE only
 
   | 
||
| 
     		                                           -- nOE may be kept active all the time
 
   | 
||
| 
     | 
||
| 
     		-- Configuring RAM size
 
   | 
||
| 
     | 
||
| 
     		size => 131072,  -- number of memory words
 
   | 
||
| 
     		adr_width => 17,  -- number of address bits
 
   | 
||
| 
     		width => 8,  -- number of bits per memory word
 
   | 
||
| 
     | 
||
| 
     | 
||
| 
     		-- READ-cycle timing parameters
 
   | 
||
| 
     | 
||
| 
     		tAA_max  => 55 NS, -- Address Access Time
 
   | 
||
| 
     		tOHA_min =>  3 NS, -- Output Hold Time
 
   | 
||
| 
     		tACE_max => 55 NS, -- nCE/CE2 Access Time
 
   | 
||
| 
     		tDOE_max => 30 NS, -- nOE Access Time
 
   | 
||
| 
     		tLZOE_min=>  5 NS, -- nOE to Low-Z Output
 
   | 
||
| 
     		tHZOE_max=> 20 NS, --  OE to High-Z Output
 
   | 
||
| 
     		tLZCE_min=> 10  NS, -- nCE/CE2 to Low-Z Output
 
   | 
||
| 
     		tHZCE_max=> 20 NS, --  CE/nCE2 to High Z Output
 
   | 
||
| 
     | 
||
| 
     | 
||
| 
     		-- WRITE-cycle timing parameters
 
   | 
||
| 
     | 
||
| 
     		tWC_min => 55 NS, -- Write Cycle Time
 
   | 
||
| 
     		tSCE_min=> 50 NS, -- nCE/CE2 to Write End
 
   | 
||
| 
     		tAW_min => 50 NS, -- tAW Address Set-up Time to Write End
 
   | 
||
| 
     		tHA_min =>  0 NS, -- tHA Address Hold from Write End
 
   | 
||
| 
     		tSA_min =>  0 NS, -- Address Set-up Time
 
   | 
||
| 
     		tPWE_min=> 45 NS, -- nWE Pulse Width
 
   | 
||
| 
     		tSD_min => 25 NS, -- Data Set-up to Write End
 
   | 
||
| 
     		tHD_min =>  0 NS, -- Data Hold from Write End
 
   | 
||
| 
     		tHZWE_max=> 20 NS, -- nWE Low to High-Z Output
 
   | 
||
| 
     		tLZWE_min=>  0 NS  -- nWE High to Low-Z Output
 
   | 
||
| 
     	)
 
   | 
||
| 
     	--signal EXT_SRAM_ADDR: std_logic_vector(19 downto 0);
 
   | 
||
| 
     	--signal EXT_SRAM_DATA: std_logic_vector(7 downto 0);
 
   | 
||
| 
     	--signal EXT_SRAM_CE: std_logic;
 
   | 
||
| 
     	--signal EXT_SRAM_OE: std_logic;
 
   | 
||
| 
     	--signal EXT_SRAM_WE: std_logic;
 
   | 
||
| 
     	port map
 
   | 
||
| 
     	(
 
   | 
||
| 
     		nCE => EXT_SRAM_CE,
 
   | 
||
| 
     		nOE => EXT_SRAM_OE,
 
   | 
||
| 
     		nWE => EXT_SRAM_WE,
 
   | 
||
| 
     | 
||
| 
     		A => EXT_SRAM_ADDR(16 downto 0),
 
   | 
||
| 
     		D => EXT_SRAM_DATA
 
   | 
||
| 
     	);
 
   | 
||
| 
     | 
||
| 
     end rtl;
 
   | 
||
| 
     | 
||
Plugged in the sram model to check timings