From 28d25bb14423e2c2d73c55f31d617939358b4d23 Mon Sep 17 00:00:00 2001 From: Gehstock Date: Sat, 29 Sep 2018 14:48:02 +0200 Subject: [PATCH] Add Color Mode --- Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf | Bin 248182 -> 247575 bytes Sharp - MZ-80K_MiST/clean.bat | 1 + Sharp - MZ-80K_MiST/mz80k_mist.qsf | 7 +- Sharp - MZ-80K_MiST/rtl/CPLD_74LS245.vhd | 26 ++ Sharp - MZ-80K_MiST/rtl/Color_Card.sv | 59 +++++ Sharp - MZ-80K_MiST/rtl/build_id.v | 2 +- Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv | 25 +- Sharp - MZ-80K_MiST/rtl/mz80k_top.v | 6 +- Sharp - MZ-80K_MiST/rtl/nu/monrom.v | 110 -------- Sharp - MZ-80K_MiST/rtl/nu/monrom.vhd | 113 --------- Sharp - MZ-80K_MiST/rtl/nu/monrom.xco | 64 ----- Sharp - MZ-80K_MiST/rtl/nu/mycom_bench.v | 32 --- Sharp - MZ-80K_MiST/rtl/nu/ram2.v | 110 -------- Sharp - MZ-80K_MiST/rtl/nu/ram2.vhd | 113 --------- Sharp - MZ-80K_MiST/rtl/nu/ram2.xco | 63 ----- Sharp - MZ-80K_MiST/rtl/nu/rom.v | 21 -- Sharp - MZ-80K_MiST/rtl/nu/rom_2k.v | 106 -------- Sharp - MZ-80K_MiST/rtl/nu/rom_2k.vhd | 107 -------- Sharp - MZ-80K_MiST/rtl/nu/rom_2k.xco | 64 ----- Sharp - MZ-80K_MiST/rtl/nu/spartan3e.ucf | 276 --------------------- Sharp - MZ-80K_MiST/rtl/pll.v | 96 +++++-- Sharp - MZ-80K_MiST/rtl/spram.vhd | 89 +++++++ Sharp - MZ-80K_MiST/rtl/vga.v | 37 ++- 23 files changed, 305 insertions(+), 1222 deletions(-) create mode 100644 Sharp - MZ-80K_MiST/rtl/CPLD_74LS245.vhd create mode 100644 Sharp - MZ-80K_MiST/rtl/Color_Card.sv delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/monrom.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/monrom.vhd delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/monrom.xco delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/mycom_bench.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/ram2.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/ram2.vhd delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/ram2.xco delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/rom.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/rom_2k.v delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/rom_2k.vhd delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/rom_2k.xco delete mode 100644 Sharp - MZ-80K_MiST/rtl/nu/spartan3e.ucf create mode 100644 Sharp - MZ-80K_MiST/rtl/spram.vhd diff --git a/Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf b/Sharp - MZ-80K_MiST/Release/mz80k_mist.rbf index 68fe4d8b2d99f4846baab72b6a153d458f4f17af..2e1646588200e5dac0418094a129aee15e898cc8 100644 GIT binary patch literal 247575 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�cnHh@tR^? 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%0A-{idXz(+PUSX4h0XUNCZP}{=RER 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 SX-r=G9Q4Ge&b{0>_x}T!c%^Ir literal 248182 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 'Z') when nE = '1' OR dir = '1' else Bin; + + -- if nE = 1 or dir = '1' then HighZ + -- wlse A + Bout <= (7 downto 0 => 'Z') when nE = '1' OR dir = '0' else Ain; + +end Behavioral; \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/Color_Card.sv b/Sharp - MZ-80K_MiST/rtl/Color_Card.sv new file mode 100644 index 00000000..7efb67d4 --- /dev/null +++ b/Sharp - MZ-80K_MiST/rtl/Color_Card.sv @@ -0,0 +1,59 @@ +module Color_Card( +input CLK, +input CSX_n, +input WR_n, +input CSD_n, +input Sync, +input RD_n, +input Video, +input [7:0] Din, +input [7:0] Dout, +input [9:0] Addr, +output CSDo, +output Synco_n, +output [1:0] R, +output [1:0] G, +output [1:0] B +); + +assign Synco_n = ~Sync; +assign CSDo = CSX_n & CSD_n; +assign R = {Bout[7], Bout[1]}; +assign G = {Bout[6], Bout[2]}; +assign B = {Bout[5], Bout[3]}; + +wire [7:0] Ain, Bin, Aout, Bout; +CPLD_74LS245 IC2 ( + .nE(CSX_n), + .dir(RD_n), + .Bin(Bin), + .Ain(Din), + .Bout(Bout), + .Aout(Dout), + ); + +spram #( + .addr_width_g(10), + .data_width_g(4)) +IC1 ( + .clk_i(CLK), + .we_i(~CSX_n | ~WR_n), + .addr_i(Addr), + .data_i({Bout[0],Bout[1],Bout[2],Bout[3]}), + .data_o({Bin[0],Bin[1],Bin[2],Bin[3]}), + ); + +spram #( + .addr_width_g(10), + .data_width_g(4)) +IC3 ( + .clk_i(CLK), + .we_i(~CSX_n | ~WR_n), + .addr_i(Addr), + .data_i({Bout[4],Bout[5],Bout[6],Bout[7]}), + .data_o({Bin[4],Bin[5],Bin[6],Bin[7]}), + ); + + + +endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/build_id.v b/Sharp - MZ-80K_MiST/rtl/build_id.v index 7da6cc7b..a2379c62 100644 --- a/Sharp - MZ-80K_MiST/rtl/build_id.v +++ b/Sharp - MZ-80K_MiST/rtl/build_id.v @@ -1,2 +1,2 @@ `define BUILD_DATE "180929" -`define BUILD_TIME "130303" +`define BUILD_TIME "144420" diff --git a/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv b/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv index 3fdf77ec..1355c3ac 100644 --- a/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv +++ b/Sharp - MZ-80K_MiST/rtl/mz80k_mist.sv @@ -32,15 +32,15 @@ module mz80k_mist( assign LED = 1; localparam CONF_STR = { "Sharp MZ80K;MZF;", - // "O34,Scandoubler Fx,None,HQ2x,CRT 25%,CRT 50%;", "O2,CPU Clock, 3Mhz, 6Mhz;", + "O34,Screen, Gray, Green, Color;", "T5,Reset;", - "V,v0.2.",`BUILD_DATE + "V,v0.4.",`BUILD_DATE }; wire clk_sys; -wire clk_12p5; +wire clk_25, clk_12p5, clk_6p25; wire locked; wire scandoubler_disable; wire ypbpr; @@ -49,14 +49,16 @@ wire [31:0] status; wire [1:0] buttons; wire [1:0] switches; wire audio; -wire r, g, b; +wire [1:0] r, g, b; wire hs, vs; wire [7:0] kb_ext; pll pll( .areset(), .inclk0(CLOCK_27), .c0(clk_sys),//50.0Mhz - .c1(clk_12p5),//12.5Mhz + .c1(clk_25),//25.0Mhz + .c2(clk_12p5),//12.5Mhz + .c3(clk_6p25),//6.25Mhz .locked(locked) ); @@ -73,7 +75,7 @@ wire reset = (reset_cnt != 8'd255); mist_io #(.STRLEN(($size(CONF_STR)>>3))) mist_io ( .conf_str(CONF_STR), - .clk_sys(clk_sys), + .clk_sys(clk_25), .SPI_SCK(SPI_SCK), .CONF_DATA0(CONF_DATA0), .SPI_SS2(SPI_SS2), @@ -89,15 +91,13 @@ mist_io #(.STRLEN(($size(CONF_STR)>>3))) mist_io video_mixer #(.LINE_LENGTH(480), .HALF_DEPTH(1)) video_mixer ( - .clk_sys(clk_sys), - .ce_pix(clk_12p5), - .ce_pix_actual(clk_12p5), + .clk_sys(clk_25), + .ce_pix(clk_6p25), + .ce_pix_actual(clk_6p25), .SPI_SCK(SPI_SCK), .SPI_SS3(SPI_SS3), .SPI_DI(SPI_DI), - .scanlines(scandoubler_disable ? 2'b00 : {status[4:3] == 3, status[4:3] == 2}), .scandoubler_disable(1),//scandoubler_disable), - .hq2x(status[4:3]==1), .ypbpr(ypbpr), .ypbpr_full(1), .R({r,r,r}), @@ -118,7 +118,7 @@ sigma_delta_dac #(.MSBI(2)) sigma_delta_dac ( .DACout(AUDIO_L), .DACin({audio,audio,audio}), - .CLK(clk_sys), + .CLK(clk_25), .RESET(0) ); @@ -127,6 +127,7 @@ assign AUDIO_R = AUDIO_L; mz80k_top mz80k_top( .CLK_50MHZ(clk_sys), .RESET(reset), + .color(status[4:3]), .PS2_KEY(PS2_KEY), .VGA_RED(r), .VGA_GREEN(g), diff --git a/Sharp - MZ-80K_MiST/rtl/mz80k_top.v b/Sharp - MZ-80K_MiST/rtl/mz80k_top.v index 88686f8b..fed2cf9a 100644 --- a/Sharp - MZ-80K_MiST/rtl/mz80k_top.v +++ b/Sharp - MZ-80K_MiST/rtl/mz80k_top.v @@ -3,6 +3,7 @@ module mz80k_top( input CLK_50MHZ, input RESET, input [10:0] PS2_KEY, + input [1:0] color, output VGA_RED, output VGA_GREEN, output VGA_BLUE, @@ -149,7 +150,10 @@ keymatrix keymatrix( // VGA wire [11:0] vga_addr; vga vga1( - .CLK_50MHZ(CLK_50MHZ), + .CLK_50MHZ(CLK_50MHZ), + .color(color), + .RD_n(~rd), + .WR_n(~wr), .VGA_RED(VGA_RED), .VGA_GREEN(VGA_GREEN), .VGA_BLUE(VGA_BLUE), diff --git a/Sharp - MZ-80K_MiST/rtl/nu/monrom.v b/Sharp - MZ-80K_MiST/rtl/nu/monrom.v deleted file mode 100644 index 033cadbd..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/monrom.v +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* -* This file is owned and controlled by Xilinx and must be used * -* solely for design, simulation, implementation and creation of * -* design files limited to Xilinx devices or technologies. Use * -* with non-Xilinx devices or technologies is expressly prohibited * -* and immediately terminates your license. * -* * -* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * -* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * -* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * -* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * -* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * -* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * -* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * -* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * -* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * -* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * -* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * -* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * -* FOR A PARTICULAR PURPOSE. * -* * -* Xilinx products are not intended for use in life support * -* appliances, devices, or systems. Use in such applications are * -* expressly prohibited. * -* * -* (c) Copyright 1995-2007 Xilinx, Inc. * -* All rights reserved. * -*******************************************************************************/ -// The synthesis directives "translate_off/translate_on" specified below are -// supported by Xilinx, Mentor Graphics and Synplicity synthesis -// tools. Ensure they are correct for your synthesis tool(s). - -// You must compile the wrapper file monrom.v when simulating -// the core, monrom. When compiling the wrapper file, be sure to -// reference the XilinxCoreLib Verilog simulation library. For detailed -// instructions, please refer to the "CORE Generator Help". - -`timescale 1ns/1ps - -module monrom( - addr, - clk, - din, - dout, - en, - we); - - -input [15 : 0] addr; -input clk; -input [7 : 0] din; -output [7 : 0] dout; -input en; -input we; - -// synthesis translate_off - - BLKMEMSP_V6_2 #( - .c_addr_width(16), - .c_default_data("0"), - .c_depth(36864), - .c_enable_rlocs(0), - .c_has_default_data(0), - .c_has_din(1), - .c_has_en(1), - .c_has_limit_data_pitch(0), - .c_has_nd(0), - .c_has_rdy(0), - .c_has_rfd(0), - .c_has_sinit(0), - .c_has_we(1), - .c_limit_data_pitch(18), - .c_mem_init_file("monrom.mif"), - .c_pipe_stages(0), - .c_reg_inputs(0), - .c_sinit_value("0"), - .c_width(8), - .c_write_mode(0), - .c_ybottom_addr("0"), - .c_yclk_is_rising(1), - .c_yen_is_high(1), - .c_yhierarchy("hierarchy1"), - .c_ymake_bmm(0), - .c_yprimitive_type("16kx1"), - .c_ysinit_is_high(1), - .c_ytop_addr("1024"), - .c_yuse_single_primitive(0), - .c_ywe_is_high(1), - .c_yydisable_warnings(1)) - inst ( - .ADDR(addr), - .CLK(clk), - .DIN(din), - .DOUT(dout), - .EN(en), - .WE(we), - .ND(), - .RFD(), - .RDY(), - .SINIT()); - - -// synthesis translate_on - -// XST black box declaration -// box_type "black_box" -// synthesis attribute box_type of monrom is "black_box" - -endmodule - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/monrom.vhd b/Sharp - MZ-80K_MiST/rtl/nu/monrom.vhd deleted file mode 100644 index cfaad054..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/monrom.vhd +++ /dev/null @@ -1,113 +0,0 @@ --------------------------------------------------------------------------------- --- This file is owned and controlled by Xilinx and must be used -- --- solely for design, simulation, implementation and creation of -- --- design files limited to Xilinx devices or technologies. Use -- --- with non-Xilinx devices or technologies is expressly prohibited -- --- and immediately terminates your license. -- --- -- --- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- --- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- --- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- --- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- --- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- --- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- --- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- --- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- --- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- --- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- --- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- --- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- --- FOR A PARTICULAR PURPOSE. -- --- -- --- Xilinx products are not intended for use in life support -- --- appliances, devices, or systems. Use in such applications are -- --- expressly prohibited. -- --- -- --- (c) Copyright 1995-2007 Xilinx, Inc. -- --- All rights reserved. -- --------------------------------------------------------------------------------- --- You must compile the wrapper file monrom.vhd when simulating --- the core, monrom. When compiling the wrapper file, be sure to --- reference the XilinxCoreLib VHDL simulation library. For detailed --- instructions, please refer to the "CORE Generator Help". - --- The synthesis directives "translate_off/translate_on" specified --- below are supported by Xilinx, Mentor Graphics and Synplicity --- synthesis tools. Ensure they are correct for your synthesis tool(s). - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; --- synthesis translate_off -Library XilinxCoreLib; --- synthesis translate_on -ENTITY monrom IS - port ( - addr: IN std_logic_VECTOR(15 downto 0); - clk: IN std_logic; - din: IN std_logic_VECTOR(7 downto 0); - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic; - we: IN std_logic); -END monrom; - -ARCHITECTURE monrom_a OF monrom IS --- synthesis translate_off -component wrapped_monrom - port ( - addr: IN std_logic_VECTOR(15 downto 0); - clk: IN std_logic; - din: IN std_logic_VECTOR(7 downto 0); - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic; - we: IN std_logic); -end component; - --- Configuration specification - for all : wrapped_monrom use entity XilinxCoreLib.blkmemsp_v6_2(behavioral) - generic map( - c_sinit_value => "0", - c_has_en => 1, - c_reg_inputs => 0, - c_yclk_is_rising => 1, - c_ysinit_is_high => 1, - c_ywe_is_high => 1, - c_yprimitive_type => "16kx1", - c_ytop_addr => "1024", - c_yhierarchy => "hierarchy1", - c_has_limit_data_pitch => 0, - c_has_rdy => 0, - c_write_mode => 0, - c_width => 8, - c_yuse_single_primitive => 0, - c_has_nd => 0, - c_has_we => 1, - c_enable_rlocs => 0, - c_has_rfd => 0, - c_has_din => 1, - c_ybottom_addr => "0", - c_pipe_stages => 0, - c_yen_is_high => 1, - c_depth => 36864, - c_has_default_data => 0, - c_limit_data_pitch => 18, - c_has_sinit => 0, - c_mem_init_file => "monrom.mif", - c_yydisable_warnings => 1, - c_default_data => "0", - c_ymake_bmm => 0, - c_addr_width => 16); --- synthesis translate_on -BEGIN --- synthesis translate_off -U0 : wrapped_monrom - port map ( - addr => addr, - clk => clk, - din => din, - dout => dout, - en => en, - we => we); --- synthesis translate_on - -END monrom_a; - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/monrom.xco b/Sharp - MZ-80K_MiST/rtl/nu/monrom.xco deleted file mode 100644 index 908ee347..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/monrom.xco +++ /dev/null @@ -1,64 +0,0 @@ -############################################################## -# -# Xilinx Core Generator version J.40 -# Date: Mon Feb 25 18:49:53 2008 -# -############################################################## -# -# This file contains the customisation parameters for a -# Xilinx CORE Generator IP GUI. It is strongly recommended -# that you do not manually alter this file as it may cause -# unexpected and unsupported behavior. -# -############################################################## -# -# BEGIN Project Options -SET addpads = False -SET asysymbol = True -SET busformat = BusFormatAngleBracketNotRipped -SET createndf = False -SET designentry = VHDL -SET device = xc3s500e -SET devicefamily = spartan3e -SET flowvendor = Foundation_iSE -SET formalverification = False -SET foundationsym = False -SET implementationfiletype = Ngc -SET package = fg320 -SET removerpms = False -SET simulationfiles = Behavioral -SET speedgrade = -4 -SET verilogsim = True -SET vhdlsim = True -# END Project Options -# BEGIN Select -SELECT Single_Port_Block_Memory family Xilinx,_Inc. 6.2 -# END Select -# BEGIN Parameters -CSET active_clock_edge=Rising_Edge_Triggered -CSET additional_output_pipe_stages=0 -CSET coefficient_file=C:\FPGA\mycom\mz-sp5030.coe -CSET component_name=monrom -CSET depth=36864 -CSET disable_warning_messages=true -CSET enable_pin=true -CSET enable_pin_polarity=Active_High -CSET global_init_value=0 -CSET handshaking_pins=false -CSET has_limit_data_pitch=false -CSET init_pin=false -CSET init_value=0 -CSET initialization_pin_polarity=Active_High -CSET limit_data_pitch=18 -CSET load_init_file=true -CSET port_configuration=Read_And_Write -CSET primitive_selection=Optimize_For_Area -CSET register_inputs=false -CSET select_primitive=16kx1 -CSET width=8 -CSET write_enable_polarity=Active_High -CSET write_mode=Read_After_Write -# END Parameters -GENERATE -# CRC: 71eb081a - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/mycom_bench.v b/Sharp - MZ-80K_MiST/rtl/nu/mycom_bench.v deleted file mode 100644 index a3ab4fa8..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/mycom_bench.v +++ /dev/null @@ -1,32 +0,0 @@ -`timescale 1ns/1ns -module mycom_bench; - reg CLK_50MHZ; - reg BTN_NORTH,BTN_EAST,BTN_SOUTH,BTN_WEST; - reg [3:0] SW; - wire [7:0] LED; - wire VGA_RED, VGA_GREEN, VGA_BLUE, VGA_HSYNC, VGA_VSYNC; - reg PS2_CLK, PS2_DATA; - wire TP1; - - mycom mycom_1(CLK_50MHZ, BTN_NORTH,BTN_EAST,BTN_SOUTH,BTN_WEST, - VGA_RED, VGA_GREEN, VGA_BLUE, VGA_HSYNC, VGA_VSYNC, - PS2_CLK, PS2_DATA, - SW, LED, TP1); - - initial begin - CLK_50MHZ <= 0; - BTN_NORTH <= 1; - BTN_EAST <= 0; - BTN_SOUTH <= 0; - BTN_WEST <= 0; - PS2_CLK <= 0; - PS2_DATA <= 0; - SW <= 5; - #400000 - $finish; - end - - always #1 begin - CLK_50MHZ <= ~CLK_50MHZ; - end -endmodule diff --git a/Sharp - MZ-80K_MiST/rtl/nu/ram2.v b/Sharp - MZ-80K_MiST/rtl/nu/ram2.v deleted file mode 100644 index c5cd0367..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/ram2.v +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* -* This file is owned and controlled by Xilinx and must be used * -* solely for design, simulation, implementation and creation of * -* design files limited to Xilinx devices or technologies. Use * -* with non-Xilinx devices or technologies is expressly prohibited * -* and immediately terminates your license. * -* * -* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * -* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * -* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * -* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * -* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * -* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * -* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * -* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * -* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * -* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * -* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * -* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * -* FOR A PARTICULAR PURPOSE. * -* * -* Xilinx products are not intended for use in life support * -* appliances, devices, or systems. Use in such applications are * -* expressly prohibited. * -* * -* (c) Copyright 1995-2007 Xilinx, Inc. * -* All rights reserved. * -*******************************************************************************/ -// The synthesis directives "translate_off/translate_on" specified below are -// supported by Xilinx, Mentor Graphics and Synplicity synthesis -// tools. Ensure they are correct for your synthesis tool(s). - -// You must compile the wrapper file ram2.v when simulating -// the core, ram2. When compiling the wrapper file, be sure to -// reference the XilinxCoreLib Verilog simulation library. For detailed -// instructions, please refer to the "CORE Generator Help". - -`timescale 1ns/1ps - -module ram2( - addr, - clk, - din, - dout, - en, - we); - - -input [10 : 0] addr; -input clk; -input [7 : 0] din; -output [7 : 0] dout; -input en; -input we; - -// synthesis translate_off - - BLKMEMSP_V6_2 #( - .c_addr_width(11), - .c_default_data("0"), - .c_depth(2048), - .c_enable_rlocs(0), - .c_has_default_data(1), - .c_has_din(1), - .c_has_en(1), - .c_has_limit_data_pitch(0), - .c_has_nd(0), - .c_has_rdy(0), - .c_has_rfd(0), - .c_has_sinit(0), - .c_has_we(1), - .c_limit_data_pitch(18), - .c_mem_init_file("mif_file_16_1"), - .c_pipe_stages(0), - .c_reg_inputs(0), - .c_sinit_value("0"), - .c_width(8), - .c_write_mode(0), - .c_ybottom_addr("0"), - .c_yclk_is_rising(1), - .c_yen_is_high(1), - .c_yhierarchy("hierarchy1"), - .c_ymake_bmm(0), - .c_yprimitive_type("16kx1"), - .c_ysinit_is_high(1), - .c_ytop_addr("1024"), - .c_yuse_single_primitive(0), - .c_ywe_is_high(1), - .c_yydisable_warnings(1)) - inst ( - .ADDR(addr), - .CLK(clk), - .DIN(din), - .DOUT(dout), - .EN(en), - .WE(we), - .ND(), - .RFD(), - .RDY(), - .SINIT()); - - -// synthesis translate_on - -// XST black box declaration -// box_type "black_box" -// synthesis attribute box_type of ram2 is "black_box" - -endmodule - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/ram2.vhd b/Sharp - MZ-80K_MiST/rtl/nu/ram2.vhd deleted file mode 100644 index ae14fb79..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/ram2.vhd +++ /dev/null @@ -1,113 +0,0 @@ --------------------------------------------------------------------------------- --- This file is owned and controlled by Xilinx and must be used -- --- solely for design, simulation, implementation and creation of -- --- design files limited to Xilinx devices or technologies. Use -- --- with non-Xilinx devices or technologies is expressly prohibited -- --- and immediately terminates your license. -- --- -- --- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- --- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- --- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- --- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- --- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- --- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- --- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- --- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- --- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- --- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- --- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- --- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- --- FOR A PARTICULAR PURPOSE. -- --- -- --- Xilinx products are not intended for use in life support -- --- appliances, devices, or systems. Use in such applications are -- --- expressly prohibited. -- --- -- --- (c) Copyright 1995-2007 Xilinx, Inc. -- --- All rights reserved. -- --------------------------------------------------------------------------------- --- You must compile the wrapper file ram2.vhd when simulating --- the core, ram2. When compiling the wrapper file, be sure to --- reference the XilinxCoreLib VHDL simulation library. For detailed --- instructions, please refer to the "CORE Generator Help". - --- The synthesis directives "translate_off/translate_on" specified --- below are supported by Xilinx, Mentor Graphics and Synplicity --- synthesis tools. Ensure they are correct for your synthesis tool(s). - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; --- synthesis translate_off -Library XilinxCoreLib; --- synthesis translate_on -ENTITY ram2 IS - port ( - addr: IN std_logic_VECTOR(10 downto 0); - clk: IN std_logic; - din: IN std_logic_VECTOR(7 downto 0); - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic; - we: IN std_logic); -END ram2; - -ARCHITECTURE ram2_a OF ram2 IS --- synthesis translate_off -component wrapped_ram2 - port ( - addr: IN std_logic_VECTOR(10 downto 0); - clk: IN std_logic; - din: IN std_logic_VECTOR(7 downto 0); - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic; - we: IN std_logic); -end component; - --- Configuration specification - for all : wrapped_ram2 use entity XilinxCoreLib.blkmemsp_v6_2(behavioral) - generic map( - c_sinit_value => "0", - c_has_en => 1, - c_reg_inputs => 0, - c_yclk_is_rising => 1, - c_ysinit_is_high => 1, - c_ywe_is_high => 1, - c_yprimitive_type => "16kx1", - c_ytop_addr => "1024", - c_yhierarchy => "hierarchy1", - c_has_limit_data_pitch => 0, - c_has_rdy => 0, - c_write_mode => 0, - c_width => 8, - c_yuse_single_primitive => 0, - c_has_nd => 0, - c_has_we => 1, - c_enable_rlocs => 0, - c_has_rfd => 0, - c_has_din => 1, - c_ybottom_addr => "0", - c_pipe_stages => 0, - c_yen_is_high => 1, - c_depth => 2048, - c_has_default_data => 1, - c_limit_data_pitch => 18, - c_has_sinit => 0, - c_yydisable_warnings => 1, - c_mem_init_file => "mif_file_16_1", - c_default_data => "0", - c_ymake_bmm => 0, - c_addr_width => 11); --- synthesis translate_on -BEGIN --- synthesis translate_off -U0 : wrapped_ram2 - port map ( - addr => addr, - clk => clk, - din => din, - dout => dout, - en => en, - we => we); --- synthesis translate_on - -END ram2_a; - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/ram2.xco b/Sharp - MZ-80K_MiST/rtl/nu/ram2.xco deleted file mode 100644 index 3e011199..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/ram2.xco +++ /dev/null @@ -1,63 +0,0 @@ -############################################################## -# -# Xilinx Core Generator version J.40 -# Date: Sun Feb 24 16:19:11 2008 -# -############################################################## -# -# This file contains the customisation parameters for a -# Xilinx CORE Generator IP GUI. It is strongly recommended -# that you do not manually alter this file as it may cause -# unexpected and unsupported behavior. -# -############################################################## -# -# BEGIN Project Options -SET addpads = False -SET asysymbol = True -SET busformat = BusFormatAngleBracketNotRipped -SET createndf = False -SET designentry = VHDL -SET device = xc3s500e -SET devicefamily = spartan3e -SET flowvendor = Foundation_iSE -SET formalverification = False -SET foundationsym = False -SET implementationfiletype = Ngc -SET package = fg320 -SET removerpms = False -SET simulationfiles = Behavioral -SET speedgrade = -4 -SET verilogsim = True -SET vhdlsim = True -# END Project Options -# BEGIN Select -SELECT Single_Port_Block_Memory family Xilinx,_Inc. 6.2 -# END Select -# BEGIN Parameters -CSET active_clock_edge=Rising_Edge_Triggered -CSET additional_output_pipe_stages=0 -CSET component_name=ram2 -CSET depth=2048 -CSET disable_warning_messages=true -CSET enable_pin=true -CSET enable_pin_polarity=Active_High -CSET global_init_value=0 -CSET handshaking_pins=false -CSET has_limit_data_pitch=false -CSET init_pin=false -CSET init_value=0 -CSET initialization_pin_polarity=Active_High -CSET limit_data_pitch=18 -CSET load_init_file=false -CSET port_configuration=Read_And_Write -CSET primitive_selection=Optimize_For_Area -CSET register_inputs=false -CSET select_primitive=16kx1 -CSET width=8 -CSET write_enable_polarity=Active_High -CSET write_mode=Read_After_Write -# END Parameters -GENERATE -# CRC: 2b8d682f - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/rom.v b/Sharp - MZ-80K_MiST/rtl/nu/rom.v deleted file mode 100644 index 567927e6..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/rom.v +++ /dev/null @@ -1,21 +0,0 @@ -module rom(clk, addr, data); - input clk; - input [10:0] addr; - output [7:0] data; - reg [7:0] data; - always @(posedge clk) begin - case (addr) - 11'h000: data = 8'h21; - 11'h001: data = 8'h00; - 11'h002: data = 8'hd0; - 11'h003: data = 8'h3e; - 11'h004: data = 8'h00; - 11'h005: data = 8'h77; - 11'h006: data = 8'h23; - 11'h007: data = 8'h3c; - 11'h008: data = 8'h18; - 11'h009: data = 8'hfb; - default: data = 8'hXX; - endcase - end -endmodule \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.v b/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.v deleted file mode 100644 index f3a91ecd..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.v +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* -* This file is owned and controlled by Xilinx and must be used * -* solely for design, simulation, implementation and creation of * -* design files limited to Xilinx devices or technologies. Use * -* with non-Xilinx devices or technologies is expressly prohibited * -* and immediately terminates your license. * -* * -* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * -* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * -* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * -* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * -* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * -* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * -* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * -* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * -* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * -* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * -* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * -* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * -* FOR A PARTICULAR PURPOSE. * -* * -* Xilinx products are not intended for use in life support * -* appliances, devices, or systems. Use in such applications are * -* expressly prohibited. * -* * -* (c) Copyright 1995-2007 Xilinx, Inc. * -* All rights reserved. * -*******************************************************************************/ -// The synthesis directives "translate_off/translate_on" specified below are -// supported by Xilinx, Mentor Graphics and Synplicity synthesis -// tools. Ensure they are correct for your synthesis tool(s). - -// You must compile the wrapper file rom_2k.v when simulating -// the core, rom_2k. When compiling the wrapper file, be sure to -// reference the XilinxCoreLib Verilog simulation library. For detailed -// instructions, please refer to the "CORE Generator Help". - -`timescale 1ns/1ps - -module rom_2k( - addr, - clk, - dout, - en); - - -input [10 : 0] addr; -input clk; -output [7 : 0] dout; -input en; - -// synthesis translate_off - - BLKMEMSP_V6_2 #( - .c_addr_width(11), - .c_default_data("0"), - .c_depth(2048), - .c_enable_rlocs(0), - .c_has_default_data(0), - .c_has_din(0), - .c_has_en(1), - .c_has_limit_data_pitch(0), - .c_has_nd(0), - .c_has_rdy(0), - .c_has_rfd(0), - .c_has_sinit(0), - .c_has_we(0), - .c_limit_data_pitch(18), - .c_mem_init_file("rom_2k.mif"), - .c_pipe_stages(0), - .c_reg_inputs(0), - .c_sinit_value("0"), - .c_width(8), - .c_write_mode(0), - .c_ybottom_addr("0"), - .c_yclk_is_rising(1), - .c_yen_is_high(1), - .c_yhierarchy("hierarchy1"), - .c_ymake_bmm(0), - .c_yprimitive_type("16kx1"), - .c_ysinit_is_high(1), - .c_ytop_addr("1024"), - .c_yuse_single_primitive(0), - .c_ywe_is_high(1), - .c_yydisable_warnings(1)) - inst ( - .ADDR(addr), - .CLK(clk), - .DOUT(dout), - .EN(en), - .DIN(), - .ND(), - .RFD(), - .RDY(), - .SINIT(), - .WE()); - - -// synthesis translate_on - -// XST black box declaration -// box_type "black_box" -// synthesis attribute box_type of rom_2k is "black_box" - -endmodule - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.vhd b/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.vhd deleted file mode 100644 index f292dfea..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.vhd +++ /dev/null @@ -1,107 +0,0 @@ --------------------------------------------------------------------------------- --- This file is owned and controlled by Xilinx and must be used -- --- solely for design, simulation, implementation and creation of -- --- design files limited to Xilinx devices or technologies. Use -- --- with non-Xilinx devices or technologies is expressly prohibited -- --- and immediately terminates your license. -- --- -- --- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- --- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- --- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- --- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- --- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- --- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- --- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- --- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- --- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- --- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- --- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- --- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- --- FOR A PARTICULAR PURPOSE. -- --- -- --- Xilinx products are not intended for use in life support -- --- appliances, devices, or systems. Use in such applications are -- --- expressly prohibited. -- --- -- --- (c) Copyright 1995-2007 Xilinx, Inc. -- --- All rights reserved. -- --------------------------------------------------------------------------------- --- You must compile the wrapper file rom_2k.vhd when simulating --- the core, rom_2k. When compiling the wrapper file, be sure to --- reference the XilinxCoreLib VHDL simulation library. For detailed --- instructions, please refer to the "CORE Generator Help". - --- The synthesis directives "translate_off/translate_on" specified --- below are supported by Xilinx, Mentor Graphics and Synplicity --- synthesis tools. Ensure they are correct for your synthesis tool(s). - -LIBRARY ieee; -USE ieee.std_logic_1164.ALL; --- synthesis translate_off -Library XilinxCoreLib; --- synthesis translate_on -ENTITY rom_2k IS - port ( - addr: IN std_logic_VECTOR(10 downto 0); - clk: IN std_logic; - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic); -END rom_2k; - -ARCHITECTURE rom_2k_a OF rom_2k IS --- synthesis translate_off -component wrapped_rom_2k - port ( - addr: IN std_logic_VECTOR(10 downto 0); - clk: IN std_logic; - dout: OUT std_logic_VECTOR(7 downto 0); - en: IN std_logic); -end component; - --- Configuration specification - for all : wrapped_rom_2k use entity XilinxCoreLib.blkmemsp_v6_2(behavioral) - generic map( - c_sinit_value => "0", - c_has_en => 1, - c_reg_inputs => 0, - c_yclk_is_rising => 1, - c_ysinit_is_high => 1, - c_ywe_is_high => 1, - c_yprimitive_type => "16kx1", - c_ytop_addr => "1024", - c_yhierarchy => "hierarchy1", - c_has_limit_data_pitch => 0, - c_has_rdy => 0, - c_write_mode => 0, - c_width => 8, - c_yuse_single_primitive => 0, - c_has_nd => 0, - c_has_we => 0, - c_enable_rlocs => 0, - c_has_rfd => 0, - c_has_din => 0, - c_ybottom_addr => "0", - c_pipe_stages => 0, - c_yen_is_high => 1, - c_depth => 2048, - c_has_default_data => 0, - c_limit_data_pitch => 18, - c_has_sinit => 0, - c_mem_init_file => "rom_2k.mif", - c_yydisable_warnings => 1, - c_default_data => "0", - c_ymake_bmm => 0, - c_addr_width => 11); --- synthesis translate_on -BEGIN --- synthesis translate_off -U0 : wrapped_rom_2k - port map ( - addr => addr, - clk => clk, - dout => dout, - en => en); --- synthesis translate_on - -END rom_2k_a; - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.xco b/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.xco deleted file mode 100644 index c13dca24..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/rom_2k.xco +++ /dev/null @@ -1,64 +0,0 @@ -############################################################## -# -# Xilinx Core Generator version J.40 -# Date: Fri Feb 22 02:27:21 2008 -# -############################################################## -# -# This file contains the customisation parameters for a -# Xilinx CORE Generator IP GUI. It is strongly recommended -# that you do not manually alter this file as it may cause -# unexpected and unsupported behavior. -# -############################################################## -# -# BEGIN Project Options -SET addpads = False -SET asysymbol = True -SET busformat = BusFormatAngleBracketNotRipped -SET createndf = False -SET designentry = VHDL -SET device = xc3s500e -SET devicefamily = spartan3e -SET flowvendor = Foundation_iSE -SET formalverification = False -SET foundationsym = False -SET implementationfiletype = Ngc -SET package = fg320 -SET removerpms = False -SET simulationfiles = Behavioral -SET speedgrade = -4 -SET verilogsim = True -SET vhdlsim = True -# END Project Options -# BEGIN Select -SELECT Single_Port_Block_Memory family Xilinx,_Inc. 6.2 -# END Select -# BEGIN Parameters -CSET active_clock_edge=Rising_Edge_Triggered -CSET additional_output_pipe_stages=0 -CSET coefficient_file=C:\FPGA\mycom\cg_rom.coe -CSET component_name=rom_2k -CSET depth=2048 -CSET disable_warning_messages=true -CSET enable_pin=true -CSET enable_pin_polarity=Active_High -CSET global_init_value=0 -CSET handshaking_pins=false -CSET has_limit_data_pitch=false -CSET init_pin=false -CSET init_value=0 -CSET initialization_pin_polarity=Active_High -CSET limit_data_pitch=18 -CSET load_init_file=true -CSET port_configuration=Read_Only -CSET primitive_selection=Optimize_For_Area -CSET register_inputs=false -CSET select_primitive=16kx1 -CSET width=8 -CSET write_enable_polarity=Active_High -CSET write_mode=Read_After_Write -# END Parameters -GENERATE -# CRC: e5516405 - diff --git a/Sharp - MZ-80K_MiST/rtl/nu/spartan3e.ucf b/Sharp - MZ-80K_MiST/rtl/nu/spartan3e.ucf deleted file mode 100644 index a0c87e43..00000000 --- a/Sharp - MZ-80K_MiST/rtl/nu/spartan3e.ucf +++ /dev/null @@ -1,276 +0,0 @@ -##################################################### -### SPARTAN-3E STARTER KIT BOARD CONSTRAINTS FILE -##################################################### -# ==== Analog-to-Digital Converter (ADC) ==== -# some connections shared with SPI Flash, DAC, ADC, and AMP -NET "AD_CONV" LOC = "P11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -# ==== Programmable Gain Amplifier (AMP) ==== -# some connections shared with SPI Flash, DAC, ADC, and AMP -NET "AMP_CS" LOC = "N7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -NET "AMP_DOUT" LOC = "E18" | IOSTANDARD = LVCMOS33 ; -NET "AMP_SHDN" LOC = "P7" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -# ==== Pushbuttons (BTN) ==== -NET "BTN_EAST" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ; -NET "BTN_NORTH" LOC = "V4" | IOSTANDARD = LVTTL | PULLDOWN ; -NET "BTN_SOUTH" LOC = "K17" | IOSTANDARD = LVTTL | PULLDOWN ; -NET "BTN_WEST" LOC = "D18" | IOSTANDARD = LVTTL | PULLDOWN ; -# ==== Clock inputs (CLK) ==== -NET "CLK_50MHZ" LOC = "C9" | IOSTANDARD = LVCMOS33 ; -# Define clock period for 50 MHz oscillator (40%/60% duty-cycle) -#NET "CLK_50MHZ" PERIOD = 20.0ns HIGH 40%; -NET "CLK_AUX" LOC = "B8" | IOSTANDARD = LVCMOS33 ; -NET "CLK_SMA" LOC = "A10" | IOSTANDARD = LVCMOS33 ; -# ==== Digital-to-Analog Converter (DAC) ==== -# some connections shared with SPI Flash, DAC, ADC, and AMP -NET "DAC_CLR" LOC = "P8" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "DAC_CS" LOC = "N8" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -# ==== 1-Wire Secure EEPROM (DS) -NET "DS_WIRE" LOC = "U4" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -# ==== Ethernet PHY (E) ==== -NET "E_COL" LOC = "U6" | IOSTANDARD = LVCMOS33 ; -NET "E_CRS" LOC = "U13" | IOSTANDARD = LVCMOS33 ; -NET "E_MDC" LOC = "P9" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_MDIO" LOC = "U5" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_RX_CLK" LOC = "V3" | IOSTANDARD = LVCMOS33 ; -NET "E_RX_DV" LOC = "V2" | IOSTANDARD = LVCMOS33 ; -NET "E_RXD<0>" LOC = "V8" | IOSTANDARD = LVCMOS33 ; -NET "E_RXD<1>" LOC = "T11" | IOSTANDARD = LVCMOS33 ; -NET "E_RXD<2>" LOC = "U11" | IOSTANDARD = LVCMOS33 ; -NET "E_RXD<3>" LOC = "V14" | IOSTANDARD = LVCMOS33 ; -NET "E_RXD<4>" LOC = "U14" | IOSTANDARD = LVCMOS33 ; -NET "E_TX_CLK" LOC = "T7" | IOSTANDARD = LVCMOS33 ; -NET "E_TX_EN" LOC = "P15" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_TXD<0>" LOC = "R11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_TXD<1>" LOC = "T15" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_TXD<2>" LOC = "R5" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_TXD<3>" LOC = "T5" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "E_TXD<4>" LOC = "R6" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -# ==== FPGA Configuration Mode, INIT_B Pins (FPGA) ==== -NET "FPGA_M0" LOC = "M10" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "FPGA_M1" LOC = "V11" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "FPGA_M2" LOC = "T10" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 8 ; -NET "FPGA_INIT_B" LOC = "T3" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 4 ; -NET "FPGA_RDWR_B" LOC = "U10" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 4 ; -NET "FPGA_HSWAP" LOC = "B3" | IOSTANDARD = LVCMOS33 ; -# ==== FX2 Connector (FX2) ==== -NET "FX2_CLKIN" LOC = "E10" | IOSTANDARD = LVCMOS33 ; -NET "FX2_CLKIO" LOC = "D9" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_CLKOUT" LOC = "D10" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -# These four connections are shared with the J1 6-pin accessory header -NET "FX2_IO<1>" LOC = "B4" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<2>" LOC = "A4" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<3>" LOC = "D5" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<4>" LOC = "C5" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -# These four connections are shared with the J2 6-pin accessory header -NET "FX2_IO<5>" LOC = "A6" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<6>" LOC = "B6" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<7>" LOC = "E7" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<8>" LOC = "F7" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -# These four connections are shared with the J4 6-pin accessory header -NET "TP1" LOC = "D7" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<10>" LOC = "C7" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<11>" LOC = "F8" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<12>" LOC = "E8" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -# The discrete LEDs are shared with the following 8 FX2 connections -#NET "FX2_IO<13>" LOC = "F9" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<14>" LOC = "E9" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<15>" LOC = "D11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<16>" LOC = "C11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<17>" LOC = "F11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<18>" LOC = "E11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<19>" LOC = "E12" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -#NET "FX2_IO<20>" LOC = "F12" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<21>" LOC = "A13" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<22>" LOC = "B13" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<23>" LOC = "A14" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<24>" LOC = "B14" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<25>" LOC = "C14" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<26>" LOC = "D14" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<27>" LOC = "A16" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<28>" LOC = "B16" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<29>" LOC = "E13" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<30>" LOC = "C4" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<31>" LOC = "B11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<32>" LOC = "A11" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<33>" LOC = "A8" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<34>" LOC = "G9" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IP<35>" LOC = "D12" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IP<36>" LOC = "C12" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IP<37>" LOC = "A15" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IP<38>" LOC = "B15" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IO<39>" LOC = "C3" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -NET "FX2_IP<40>" LOC = "C15" | IOSTANDARD = LVCMOS33 | SLEW = FAST | DRIVE = 8 ; -# ==== 6-pin header J1 ==== -# These are shared connections with the FX2 connector -#NET "J1<0>" LOC = "B4" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J1<1>" LOC = "A4" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J1<2>" LOC = "D5" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J1<3>" LOC = "C5" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -# ==== 6-pin header J2 ==== -# These are shared connections with the FX2 connector -#NET "J2<0>" LOC = "A6" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J2<1>" LOC = "B6" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J2<2>" LOC = "E7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J2<3>" LOC = "F7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -# ==== 6-pin header J4 ==== -# These are shared connections with the FX2 connector -#NET "J4<0>" LOC = "D7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J4<1>" LOC = "C7" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J4<2>" LOC = "F8" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -#NET "J4<3>" LOC = "E8" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 6 ; -# ==== Character LCD (LCD) ==== -NET "LCD_E" LOC = "M18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "LCD_RS" LOC = "L18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "LCD_RW" LOC = "L17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -# LCD data connections are shared with StrataFlash connections SF_D<11:8> -#NET "SF_D<8>" LOC = "R15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -#NET "SF_D<9>" LOC = "R16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -#NET "SF_D<10>" LOC = "P17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -#NET "SF_D<11>" LOC = "M15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -# ==== Discrete LEDs (LED) ==== -# These are shared connections with the FX2 connector -NET "LED<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -NET "LED<7>" LOC = "F9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; -# ==== PS/2 Mouse/Keyboard Port (PS2) ==== -NET "PS2_CLK" LOC = "G14" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW ; -NET "PS2_DATA" LOC = "G13" | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW ; -# ==== Rotary Pushbutton Switch (ROT) ==== -NET "ROT_A" LOC = "K18" | IOSTANDARD = LVTTL | PULLUP ; -NET "ROT_B" LOC = "G18" | IOSTANDARD = LVTTL | PULLUP ; -NET "ROT_CENTER" LOC = "V16" | IOSTANDARD = LVTTL | PULLDOWN ; -# ==== RS-232 Serial Ports (RS232) ==== -NET "RS232_DCE_RXD" LOC = "R7" | IOSTANDARD = LVTTL ; -NET "RS232_DCE_TXD" LOC = "M14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = SLOW ; -NET "RS232_DTE_RXD" LOC = "U8" | IOSTANDARD = LVTTL ; -NET "RS232_DTE_TXD" LOC = "M13" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = SLOW ; -# ==== DDR SDRAM (SD) ==== (I/O Bank 3, VCCO=2.5V) -NET "SD_A<0>" LOC = "T1" | IOSTANDARD = SSTL2_I ; -NET "SD_A<1>" LOC = "R3" | IOSTANDARD = SSTL2_I ; -NET "SD_A<2>" LOC = "R2" | IOSTANDARD = SSTL2_I ; -NET "SD_A<3>" LOC = "P1" | IOSTANDARD = SSTL2_I ; -NET "SD_A<4>" LOC = "F4" | IOSTANDARD = SSTL2_I ; -NET "SD_A<5>" LOC = "H4" | IOSTANDARD = SSTL2_I ; -NET "SD_A<6>" LOC = "H3" | IOSTANDARD = SSTL2_I ; -NET "SD_A<7>" LOC = "H1" | IOSTANDARD = SSTL2_I ; -NET "SD_A<8>" LOC = "H2" | IOSTANDARD = SSTL2_I ; -NET "SD_A<9>" LOC = "N4" | IOSTANDARD = SSTL2_I ; -NET "SD_A<10>" LOC = "T2" | IOSTANDARD = SSTL2_I ; -NET "SD_A<11>" LOC = "N5" | IOSTANDARD = SSTL2_I ; -NET "SD_A<12>" LOC = "P2" | IOSTANDARD = SSTL2_I ; -NET "SD_BA<0>" LOC = "K5" | IOSTANDARD = SSTL2_I ; -NET "SD_BA<1>" LOC = "K6" | IOSTANDARD = SSTL2_I ; -NET "SD_CAS" LOC = "C2" | IOSTANDARD = SSTL2_I ; -NET "SD_CK_N" LOC = "J4" | IOSTANDARD = SSTL2_I ; -NET "SD_CK_P" LOC = "J5" | IOSTANDARD = SSTL2_I ; -NET "SD_CKE" LOC = "K3" | IOSTANDARD = SSTL2_I ; -NET "SD_CS" LOC = "K4" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<0>" LOC = "L2" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<1>" LOC = "L1" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<2>" LOC = "L3" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<3>" LOC = "L4" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<4>" LOC = "M3" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<5>" LOC = "M4" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<6>" LOC = "M5" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<7>" LOC = "M6" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<8>" LOC = "E2" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<9>" LOC = "E1" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<10>" LOC = "F1" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<11>" LOC = "F2" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<12>" LOC = "G6" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<13>" LOC = "G5" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<14>" LOC = "H6" | IOSTANDARD = SSTL2_I ; -NET "SD_DQ<15>" LOC = "H5" | IOSTANDARD = SSTL2_I ; -NET "SD_LDM" LOC = "J2" | IOSTANDARD = SSTL2_I ; -NET "SD_LDQS" LOC = "L6" | IOSTANDARD = SSTL2_I ; -NET "SD_RAS" LOC = "C1" | IOSTANDARD = SSTL2_I ; -NET "SD_UDM" LOC = "J1" | IOSTANDARD = SSTL2_I ; -NET "SD_UDQS" LOC = "G3" | IOSTANDARD = SSTL2_I ; -NET "SD_WE" LOC = "D1" | IOSTANDARD = SSTL2_I ; -# Path to allow connection to top DCM connection -NET "SD_CK_FB" LOC = "B9" | IOSTANDARD = LVCMOS33 ; -# Prohibit VREF pins -CONFIG PROHIBIT = D2; -CONFIG PROHIBIT = G4; -CONFIG PROHIBIT = J6; -CONFIG PROHIBIT = L5; -CONFIG PROHIBIT = R4; -# ==== Intel StrataFlash Parallel NOR Flash (SF) ==== -NET "SF_A<0>" LOC = "H17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<1>" LOC = "J13" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<2>" LOC = "J12" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<3>" LOC = "J14" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<4>" LOC = "J15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<5>" LOC = "J16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<6>" LOC = "J17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<7>" LOC = "K14" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<8>" LOC = "K15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<9>" LOC = "K12" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<10>" LOC = "K13" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<11>" LOC = "L15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<12>" LOC = "L16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<13>" LOC = "T18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<14>" LOC = "R18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<15>" LOC = "T17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<16>" LOC = "U18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<17>" LOC = "T16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<18>" LOC = "U15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<19>" LOC = "V15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<20>" LOC = "T12" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<21>" LOC = "V13" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<22>" LOC = "V12" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<23>" LOC = "N11" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_A<24>" LOC = "A11" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_BYTE" LOC = "C17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_CE0" LOC = "D16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<1>" LOC = "P10" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<2>" LOC = "R10" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<3>" LOC = "V9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<4>" LOC = "U9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<5>" LOC = "R9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<6>" LOC = "M9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<7>" LOC = "N9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<8>" LOC = "R15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<9>" LOC = "R16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<10>" LOC = "P17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<11>" LOC = "M15" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<12>" LOC = "M16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<13>" LOC = "P6" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<14>" LOC = "R8" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_D<15>" LOC = "T8" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_OE" LOC = "C18" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "SF_STS" LOC = "B18" | IOSTANDARD = LVCMOS33 ; -NET "SF_WE" LOC = "D17" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -# ==== STMicro SPI serial Flash (SPI) ==== -# some connections shared with SPI Flash, DAC, ADC, and AMP -NET "SPI_MISO" LOC = "N10" | IOSTANDARD = LVCMOS33 ; -NET "SPI_MOSI" LOC = "T4" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -NET "SPI_SCK" LOC = "U16" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -NET "SPI_SS_B" LOC = "U3" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -NET "SPI_ALT_CS_JP11" LOC = "R12" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE = 6 ; -# ==== Slide Switches (SW) ==== -NET "SW<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ; -NET "SW<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ; -NET "SW<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ; -NET "SW<3>" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ; -# ==== VGA Port (VGA) ==== -NET "VGA_BLUE" LOC = "G15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ; -NET "VGA_GREEN" LOC = "H15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ; -NET "VGA_HSYNC" LOC = "F15" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ; -NET "VGA_RED" LOC = "H14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ; -NET "VGA_VSYNC" LOC = "F14" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ; -# ==== Xilinx CPLD (XC) ==== -NET "XC_CMD<0>" LOC = "P18" | IOSTANDARD = LVTTL | DRIVE = 4 | SLEW = SLOW ; -NET "XC_CMD<1>" LOC = "N18" | IOSTANDARD = LVTTL | DRIVE = 4 | SLEW = SLOW ; -NET "XC_CPLD_EN" LOC = "B10" | IOSTANDARD = LVTTL ; -NET "XC_D<0>" LOC = "G16" | IOSTANDARD = LVTTL | DRIVE = 4 | SLEW = SLOW ; -NET "XC_D<1>" LOC = "F18" | IOSTANDARD = LVTTL | DRIVE = 4 | SLEW = SLOW ; -NET "XC_D<2>" LOC = "F17" | IOSTANDARD = LVTTL | DRIVE = 4 | SLEW = SLOW ; -NET "XC_TRIG" LOC = "R17" | IOSTANDARD = LVCMOS33 ; -NET "XC_GCK0" LOC = "H16" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; -NET "GCLK10" LOC = "C9" | IOSTANDARD = LVCMOS33 | DRIVE = 4 | SLEW = SLOW ; \ No newline at end of file diff --git a/Sharp - MZ-80K_MiST/rtl/pll.v b/Sharp - MZ-80K_MiST/rtl/pll.v index 6bb0861c..672bc223 100644 --- a/Sharp - MZ-80K_MiST/rtl/pll.v +++ b/Sharp - MZ-80K_MiST/rtl/pll.v @@ -14,11 +14,11 @@ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // -// 13.1.4 Build 182 03/12/2014 SJ Web Edition +// 13.0.1 Build 232 06/12/2013 SP 1 SJ Full Version // ************************************************************ -//Copyright (C) 1991-2014 Altera Corporation +//Copyright (C) 1991-2013 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files from any of the foregoing @@ -41,12 +41,16 @@ module pll ( inclk0, c0, c1, + c2, + c3, locked); input areset; input inclk0; output c0; output c1; + output c2; + output c3; output locked; `ifndef ALTERA_RESERVED_QIS // synopsys translate_off @@ -57,21 +61,25 @@ module pll ( `endif wire [4:0] sub_wire0; - wire sub_wire2; - wire [0:0] sub_wire6 = 1'h0; - wire [0:0] sub_wire3 = sub_wire0[0:0]; + wire sub_wire3; + wire [0:0] sub_wire8 = 1'h0; + wire [2:2] sub_wire5 = sub_wire0[2:2]; + wire [0:0] sub_wire4 = sub_wire0[0:0]; + wire [3:3] sub_wire2 = sub_wire0[3:3]; wire [1:1] sub_wire1 = sub_wire0[1:1]; wire c1 = sub_wire1; - wire locked = sub_wire2; - wire c0 = sub_wire3; - wire sub_wire4 = inclk0; - wire [1:0] sub_wire5 = {sub_wire6, sub_wire4}; + wire c3 = sub_wire2; + wire locked = sub_wire3; + wire c0 = sub_wire4; + wire c2 = sub_wire5; + wire sub_wire6 = inclk0; + wire [1:0] sub_wire7 = {sub_wire8, sub_wire6}; altpll altpll_component ( .areset (areset), - .inclk (sub_wire5), + .inclk (sub_wire7), .clk (sub_wire0), - .locked (sub_wire2), + .locked (sub_wire3), .activeclock (), .clkbad (), .clkena ({6{1'b1}}), @@ -111,10 +119,18 @@ module pll ( altpll_component.clk0_duty_cycle = 50, altpll_component.clk0_multiply_by = 50, altpll_component.clk0_phase_shift = "0", - altpll_component.clk1_divide_by = 54, + altpll_component.clk1_divide_by = 27, altpll_component.clk1_duty_cycle = 50, altpll_component.clk1_multiply_by = 25, altpll_component.clk1_phase_shift = "0", + altpll_component.clk2_divide_by = 54, + altpll_component.clk2_duty_cycle = 50, + altpll_component.clk2_multiply_by = 25, + altpll_component.clk2_phase_shift = "0", + altpll_component.clk3_divide_by = 108, + altpll_component.clk3_duty_cycle = 50, + altpll_component.clk3_multiply_by = 25, + altpll_component.clk3_phase_shift = "0", altpll_component.compensate_clock = "CLK0", altpll_component.inclk0_input_frequency = 37037, altpll_component.intended_device_family = "Cyclone III", @@ -149,8 +165,8 @@ module pll ( altpll_component.port_scanwrite = "PORT_UNUSED", altpll_component.port_clk0 = "PORT_USED", altpll_component.port_clk1 = "PORT_USED", - altpll_component.port_clk2 = "PORT_UNUSED", - altpll_component.port_clk3 = "PORT_UNUSED", + altpll_component.port_clk2 = "PORT_USED", + altpll_component.port_clk3 = "PORT_USED", altpll_component.port_clk4 = "PORT_UNUSED", altpll_component.port_clk5 = "PORT_UNUSED", altpll_component.port_clkena0 = "PORT_UNUSED", @@ -189,11 +205,17 @@ endmodule // Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0" // Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" // Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "27" -// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "54" +// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "27" +// Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "54" +// Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "108" // Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" // Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" +// Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" +// Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" // Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "50.000000" -// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "12.500000" +// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "25.000000" +// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "12.500000" +// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "6.250000" // Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" // Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" // Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" @@ -215,25 +237,41 @@ endmodule // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg" +// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT2 STRING "ps" +// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT3 STRING "ps" // Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any" // Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" // Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" +// Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0" +// Retrieval info: PRIVATE: MIRROR_CLK3 STRING "0" // Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "50" // Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "25" +// Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "25" +// Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "25" // Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" // Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "50.00000000" -// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "12.50000000" +// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "25.00000000" +// Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "12.50000000" +// Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "6.25000000" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" +// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0" +// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE3 STRING "0" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" +// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT2 STRING "MHz" +// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT3 STRING "MHz" // Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "1" // Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000" +// Retrieval info: PRIVATE: PHASE_SHIFT2 STRING "0.00000000" +// Retrieval info: PRIVATE: PHASE_SHIFT3 STRING "0.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg" +// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT2 STRING "deg" +// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT3 STRING "deg" // Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0" // Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "1" // Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" @@ -257,13 +295,19 @@ endmodule // Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" // Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" // Retrieval info: PRIVATE: STICKY_CLK1 STRING "1" +// Retrieval info: PRIVATE: STICKY_CLK2 STRING "1" +// Retrieval info: PRIVATE: STICKY_CLK3 STRING "1" // Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" // Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "1" // Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" // Retrieval info: PRIVATE: USE_CLK0 STRING "1" // Retrieval info: PRIVATE: USE_CLK1 STRING "1" +// Retrieval info: PRIVATE: USE_CLK2 STRING "1" +// Retrieval info: PRIVATE: USE_CLK3 STRING "1" // Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" // Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" +// Retrieval info: PRIVATE: USE_CLKENA2 STRING "0" +// Retrieval info: PRIVATE: USE_CLKENA3 STRING "0" // Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0" // Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all @@ -272,10 +316,18 @@ endmodule // Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "50" // Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" -// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "54" +// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "27" // Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "25" // Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" +// Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "54" +// Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" +// Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "25" +// Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" +// Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "108" +// Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" +// Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "25" +// Retrieval info: CONSTANT: CLK3_PHASE_SHIFT STRING "0" // Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" // Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "37037" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" @@ -309,8 +361,8 @@ endmodule // Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED" // Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED" // Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED" -// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED" -// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED" +// Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_USED" +// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_USED" // Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED" // Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED" // Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED" @@ -329,6 +381,8 @@ endmodule // Retrieval info: USED_PORT: areset 0 0 0 0 INPUT GND "areset" // Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0" // Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1" +// Retrieval info: USED_PORT: c2 0 0 0 0 OUTPUT_CLK_EXT VCC "c2" +// Retrieval info: USED_PORT: c3 0 0 0 0 OUTPUT_CLK_EXT VCC "c3" // Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0" // Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked" // Retrieval info: CONNECT: @areset 0 0 0 0 areset 0 0 0 0 @@ -336,6 +390,8 @@ endmodule // Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 // Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 // Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1 +// Retrieval info: CONNECT: c2 0 0 0 0 @clk 0 0 1 2 +// Retrieval info: CONNECT: c3 0 0 0 0 @clk 0 0 1 3 // Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0 // Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE diff --git a/Sharp - MZ-80K_MiST/rtl/spram.vhd b/Sharp - MZ-80K_MiST/rtl/spram.vhd new file mode 100644 index 00000000..d9a003ee --- /dev/null +++ b/Sharp - MZ-80K_MiST/rtl/spram.vhd @@ -0,0 +1,89 @@ +------------------------------------------------------------------------------- +-- +-- Copyright (c) 2016, Fabio Belavenuto (belavenuto@gmail.com) +-- +-- All rights reserved +-- +-- Redistribution and use in source and synthezised forms, with or without +-- modification, are permitted provided that the following conditions are met: +-- +-- Redistributions of source code must retain the above copyright notice, +-- this list of conditions and the following disclaimer. +-- +-- Redistributions in synthesized form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- +-- Neither the name of the author nor the names of other contributors may +-- be used to endorse or promote products derived from this software without +-- specific prior written permission. +-- +-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +-- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +-- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +-- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE +-- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +-- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +-- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +-- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +-- POSSIBILITY OF SUCH DAMAGE. +-- +-- Please report bugs to the author, but before you do so, please +-- make sure that this is not a derivative work and that +-- you have the latest version of this file. +-- +------------------------------------------------------------------------------- +-- +-- Generic single port RAM. +-- +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; + +entity spram is + generic ( + addr_width_g : integer := 14; + data_width_g : integer := 8 + ); + port ( + clk_i : in std_logic; + we_i : in std_logic; + addr_i : in std_logic_vector(addr_width_g-1 downto 0); + data_i : in std_logic_vector(data_width_g-1 downto 0); + data_o : out std_logic_vector(data_width_g-1 downto 0) + ); + +end spram; + +library ieee; +use ieee.numeric_std.all; + +architecture rtl of spram is + + type ram_t is array (natural range 2**addr_width_g-1 downto 0) of std_logic_vector(data_width_g-1 downto 0); + signal ram_q : ram_t + -- pragma translate_off + := (others => (others => '0')) + -- pragma translate_on + ; + signal read_addr_q : unsigned(addr_width_g-1 downto 0); + +begin + + process (clk_i) + begin + if rising_edge(clk_i) then + if we_i = '1' then + ram_q(to_integer(unsigned(addr_i))) <= data_i; + end if; + + read_addr_q <= unsigned(addr_i); + end if; + end process; + + data_o <= ram_q(to_integer(read_addr_q)); + +end rtl; diff --git a/Sharp - MZ-80K_MiST/rtl/vga.v b/Sharp - MZ-80K_MiST/rtl/vga.v index 862b9316..f0e8441e 100644 --- a/Sharp - MZ-80K_MiST/rtl/vga.v +++ b/Sharp - MZ-80K_MiST/rtl/vga.v @@ -20,9 +20,12 @@ ////////////////////////////////////////////////////////////////////////////////// module vga( input CLK_50MHZ, - output VGA_RED, - output VGA_GREEN, - output VGA_BLUE, + input [1:0] color, + input RD_n, + input WR_n, + output [1:0] VGA_RED, + output [1:0] VGA_GREEN, + output [1:0] VGA_BLUE, output VGA_HSYNC, output VGA_VSYNC, output VGA_VBLANK, @@ -66,19 +69,39 @@ module vga( .clken(1'b1) ); +wire [1:0] R, G, B; + Color_Card Color_Card( + .CLK(CLK_50MHZ), + .CSX_n(), + .WR_n(WR_n), + .CSD_n(), + .Sync(), + .RD_n(RD_n), + .Video(video), + .Din(VGA_DATA), + .Dout(), + .Addr(VGA_ADDR[11:0]), + .CSDo(), + .Synco_n(), + .R(R), + .G(G), + .B(B) +); wire [5:0] cx, cy; //(0,0)-(79,24) assign cx = gx >> 4; assign cy = gy >> 4; assign VGA_ADDR = (cy * 40) + cx; assign cgrom_addr = {VGA_DATA, gy[3:1]}; - + wire video = display & (y[0] & 1) ? cgrom_data[7-(((gx+15)>>1) & 7)] : 0; // assign BUS_REQ = ( (96+48-8) <= x & x < (96+48+640) ) & ( ( 2+29+40) <= y & y < (2+29+40+400)); assign BUS_REQ = ( (96+48-16) <= x & x < (96+48+640) ) & ( ( 2+29+40) <= y & y < (2+29+40+400)); assign display =( (96+48) <= x & x < (96+48+640) ) & ( ( 2+29+40) <= y & y < (2+29+40+400)); - assign VGA_RED = 0; //display ? (cgrom_data[7-((gx>>1) & 7)]) : 0; - assign VGA_GREEN = display & (y[0] & 1) ? cgrom_data[7-(((gx+15)>>1) & 7)] : 0; - assign VGA_BLUE = 0; //display ? (cgrom_data[7-((gx>>1) & 7)]) : 0; + + assign VGA_RED = color[1] ? R : color[0] ? 2'b00 : {video,video}; + assign VGA_GREEN = color[1] ? G : {video,video}; + assign VGA_BLUE = color[1] ? B : color[0] ? 2'b00 : {video,video}; + assign VGA_HSYNC = x < 96 ? 0 : 1; assign VGA_VSYNC = y < 2 ? 0 : 1; assign VGA_VBLANK = (x == 639 & y == 499) ? 1 : 0;