mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-20 01:34:38 +00:00
Defender HW: single RBF
This commit is contained in:
parent
4adec34f5b
commit
ab5003701b
@ -119,8 +119,8 @@ set_clock_groups -asynchronous -group [get_clocks $sdram_clk] -group [get_clocks
|
||||
|
||||
set_multicycle_path -from [get_clocks $game_clk] -to [get_clocks $sdram_clk] -setup 2
|
||||
set_multicycle_path -from [get_clocks $game_clk] -to [get_clocks $sdram_clk] -hold 1
|
||||
set_multicycle_path -to {VGA_*[*]} -setup 2
|
||||
set_multicycle_path -to {VGA_*[*]} -hold 1
|
||||
set_multicycle_path -to {VGA_*[*]} -setup 3
|
||||
set_multicycle_path -to {VGA_*[*]} -hold 2
|
||||
|
||||
#**************************************************************
|
||||
# Set Maximum Delay
|
||||
|
||||
@ -3,6 +3,16 @@
|
||||
-- Arcade: Defender port to MiST by Gehstock
|
||||
-- 11 June 2019
|
||||
--
|
||||
--
|
||||
-- Usage:
|
||||
-- - Create ROM and ARC files from the MRA files in the meta directory
|
||||
-- using the MRA utility.
|
||||
-- Example: mra -A -z /path/to/mame/roms Defender.mra
|
||||
-- - Copy the ROM files to the root of the SD Card
|
||||
-- - Copy the RBF and ARC files to the same folder on the SD Card
|
||||
--
|
||||
-- MRA utility: https://github.com/sebdel/mra-tools-c/
|
||||
--
|
||||
---------------------------------------------------------------------------------
|
||||
-- A simulation model of Williams 6809 hardware
|
||||
-- by Dar (darfpga@aol.fr)
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
<misterromdescription>
|
||||
<name>Colony 7 (set 1)</name>
|
||||
<mameversion>0216</mameversion>
|
||||
<setname>colony7</setname>
|
||||
<mratimestamp>201911270000</mratimestamp>
|
||||
<year>1981</year>
|
||||
<manufacturer>Taito</manufacturer>
|
||||
<category>Space / Shooter</category>
|
||||
<rbf>defender</rbf>
|
||||
|
||||
<rom index="1"><part>1</part></rom>
|
||||
|
||||
<switches>
|
||||
<dip bits="10" name="Lives" ids="2,3"/>
|
||||
<dip bits="11" name="Bonus" ids="20k/40k(30k/50k),30k/50k(40k/70k)"/>
|
||||
</switches>
|
||||
|
||||
<rom index="0" zip="colony7.zip" md5="a7d3286ded800538d379816ade2c0d12" type="merged|nonmerged">
|
||||
<part name="cs03.bin"/>
|
||||
<part name="cs02.bin"/>
|
||||
<part name="cs01.bin"/>
|
||||
<part name="cs06.bin"/>
|
||||
<part name="cs04.bin"/>
|
||||
<part name="cs07.bin"/>
|
||||
<part name="cs05.bin"/>
|
||||
<part name="cs08.bin" repeat="4"/>
|
||||
|
||||
<part name="cs10.bin"/>
|
||||
<part name="decoder.3"/>
|
||||
|
||||
<part name="cs11.bin"/>
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -0,0 +1,37 @@
|
||||
<misterromdescription>
|
||||
<name>Defender (Red label)</name>
|
||||
<mameversion>0216</mameversion>
|
||||
<mratimestamp>201911270000</mratimestamp>
|
||||
<year>1980</year>
|
||||
<manufacturer>Williams</manufacturer>
|
||||
<category>Space / Defender</category>
|
||||
<rbf>defender</rbf>
|
||||
|
||||
<rom index="1"><part>0</part></rom>
|
||||
|
||||
<switches>
|
||||
<dip bits="7" name="Auto up" ids="Off,On"/>
|
||||
<dip bits="8" name="Advance"/>
|
||||
<dip bits="9" name="HS Reset"/>
|
||||
</switches>
|
||||
|
||||
<rom index="0" zip="defender.zip" md5="2173eef0c95ff44752cd36981c909c6d" type="merged|nonmerged">
|
||||
<part name="defend.1"/>
|
||||
<part name="defend.4"/>
|
||||
<part name="defend.2"/>
|
||||
<part name="defend.3"/>
|
||||
<part name="defend.9"/>
|
||||
<part name="defend.12"/>
|
||||
<part name="defend.8"/>
|
||||
<part name="defend.11"/>
|
||||
<part name="defend.7"/>
|
||||
<part name="defend.10"/>
|
||||
<part name="defend.6"/>
|
||||
<part name="defend.6"/>
|
||||
|
||||
<part name="decoder.2"/>
|
||||
<part name="decoder.3"/>
|
||||
|
||||
<part name="defend.snd"/>
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -0,0 +1,29 @@
|
||||
<misterromdescription>
|
||||
<name>Jin</name>
|
||||
<mameversion>0216</mameversion>
|
||||
<setname>jin</setname>
|
||||
<mratimestamp>201911270000</mratimestamp>
|
||||
<year>1982</year>
|
||||
<manufacturer>Falcon</manufacturer>
|
||||
<category>Maze / Qix</category>
|
||||
<rbf>defender</rbf>
|
||||
|
||||
<rom index="1"><part>3</part></rom>
|
||||
|
||||
<switches>
|
||||
<dip bits="10" name="Lives" ids="3,4"/>
|
||||
<dip bits="11,12" name="Level complete" ids="85%,75%,65%,55%"/>
|
||||
</switches>
|
||||
|
||||
<rom index="0" zip="jin.zip" md5="9dd8c4ad8ed7f3c9f392d1790c61e4a8" type="merged|nonmerged">
|
||||
<part name="jin11.6c"/>
|
||||
<part name="jin12.7c"/>
|
||||
<part name="jin13.6d"/>
|
||||
<part name="jin14.4c" repeat=4/>
|
||||
|
||||
<part name="jin.1a"/>
|
||||
<part name="jin.1l"/>
|
||||
|
||||
<part name="jin15.3f"/>
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -0,0 +1,93 @@
|
||||
<misterromdescription>
|
||||
<name>Mayday (set 1)</name>
|
||||
<mameversion>0216</mameversion>
|
||||
<setname>mayday</setname>
|
||||
<mratimestamp>201911270000</mratimestamp>
|
||||
<year>1980</year>
|
||||
<manufacturer>Hoei</manufacturer>
|
||||
<category>Space / Defender</category>
|
||||
<rbf>defender</rbf>
|
||||
|
||||
<rom index="1"><part>2</part></rom>
|
||||
|
||||
<rom index="0" zip="mayday.zip" md5="732cf6e3f85c3ff6e37a8e6c84fad349" type="merged|nonmerged">
|
||||
<part name="ic03-3.bin"/>
|
||||
<part name="ic02-2.bin"/>
|
||||
<part name="ic01-1.bin"/>
|
||||
<part name="ic04-4.bin"/>
|
||||
<part name="ic05-5.bin"/>
|
||||
<part name="ic06-6.bin"/>
|
||||
<part name="ic07-7d.bin"/>
|
||||
<part>
|
||||
00 40 80 01 41 81 02 42 82 03 43 83 04 44 84 05
|
||||
45 85 06 46 86 07 47 87 08 48 88 09 49 89 0a 4a
|
||||
8a 0b 4b 8b 0c 4c 8c 0d 4d 8d 0e 4e 8e 0f 4f 8f
|
||||
10 50 90 11 51 91 12 52 92 13 53 93 14 54 94 15
|
||||
55 95 16 56 96 17 57 97 18 58 98 19 59 99 1a 5a
|
||||
9a 1b 5b 9b 1c 5c 9c 1d 5d 9d 1e 5e 9e 1f 5f 9f
|
||||
20 60 a0 21 61 a1 22 62 a2 23 63 a3 24 64 a4 25
|
||||
65 a5 26 66 a6 27 67 a7 28 68 a8 29 69 a9 2a 6a
|
||||
aa 2b 6b ab 2c 6c ac 2d 6d ad 2e 6e ae 2f 6f af
|
||||
30 70 b0 31 71 b1 32 72 b2 33 73 b3 34 74 b4 35
|
||||
75 b5 36 76 b6 37 77 b7 38 78 b8 39 79 b9 3a 7a
|
||||
ba 3b 7b bb 3c 7c bc 3d 7d bd 3e 7e be 3f 7f bf
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 40 80 01 41 72 32 b1 71 31 b0 70 30 af 6f 2f
|
||||
ae 6e 2e ad 6d 2d ac 6c 2c ab 6b 2b aa 6a 2a a9
|
||||
69 29 a8 68 28 a7 67 27 a6 66 26 a5 65 25 a4 64
|
||||
24 a3 63 23 a2 62 22 a1 61 21 a0 60 20 9f 5f 1f
|
||||
9e 5e 1e 9d 5d 1d 9c 5c 1c 9b 5b 1b 9a 5a 1a 99
|
||||
59 19 98 58 18 97 57 17 96 56 16 95 55 15 94 54
|
||||
14 93 53 13 92 52 12 91 51 11 90 50 10 8f 4f 0f
|
||||
8e 4e 0e 8d 4d 0d 8c 4c 0c 8b 4b 0b 8a 4a 0a 89
|
||||
49 09 88 48 08 87 47 07 86 46 06 85 45 05 84 44
|
||||
04 83 43 03 82 42 02 81 b2 33 73 b3 34 74 b4 35
|
||||
75 b5 36 76 b6 37 77 b7 38 78 b8 39 79 b9 3a 7a
|
||||
ba 3b 7b bb 3c 7c bc 3d 7d bd 3e 7e be 3f 7f bf
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
</part>
|
||||
<part>
|
||||
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
|
||||
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
|
||||
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
|
||||
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
|
||||
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
|
||||
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
|
||||
60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
|
||||
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
|
||||
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
|
||||
90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
|
||||
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
|
||||
b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
|
||||
c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
|
||||
d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
|
||||
e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
|
||||
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
|
||||
fb fa f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 ef ee ed ec
|
||||
eb ea e9 e8 e7 e6 e5 e4 e3 e2 e1 e0 df de dd dc
|
||||
db da d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 cf ce cd cc
|
||||
cb ca c9 c8 c7 c6 c5 c4 c3 c2 c1 c0 bf be bd bc
|
||||
bb ba b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 af ae ad ac
|
||||
ab aa a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 9f 9e 9d 9c
|
||||
9b 9a 99 98 97 96 95 94 93 92 91 90 8f 8e 8d 8c
|
||||
8b 8a 89 88 87 86 85 84 83 82 81 80 7f 7e 7d 7c
|
||||
7b 7a 79 78 77 76 75 74 73 72 71 70 6f 6e 6d 6c
|
||||
6b 6a 69 68 67 66 65 64 63 62 61 60 5f 5e 5d 5c
|
||||
5b 5a 59 58 57 56 55 54 53 52 51 50 4f 4e 4d 4c
|
||||
4b 4a 49 48 47 46 45 44 43 42 41 40 3f 3e 3d 3c
|
||||
3b 3a 39 38 37 36 35 34 33 32 31 30 2f 2e 2d 2c
|
||||
2b 2a 29 28 27 26 25 24 23 22 21 20 1f 1e 1d 1c
|
||||
1b 1a 19 18 17 16 15 14 13 12 11 10 0f 0e 0d 0c
|
||||
0b 0a 09 08 07 06 05 04 03 02 01 00 fc fd fe ff
|
||||
</part>
|
||||
|
||||
<part name="ic28-8.bin"/>
|
||||
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -34,21 +34,31 @@ module Defender_MiST(
|
||||
|
||||
`include "rtl/build_id.v"
|
||||
|
||||
//`define CORE_NAME "DEFENDER"
|
||||
//`define CORE_NAME "COLONY7"
|
||||
//`define CORE_NAME "MAYDAY"
|
||||
`define CORE_NAME "JIN"
|
||||
`define CORE_NAME "DEFENDER"
|
||||
|
||||
localparam CONF_STR = {
|
||||
`CORE_NAME,";ROM;",
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"DIP;",
|
||||
"T0,Reset;",
|
||||
"V,v1.2.",`BUILD_DATE
|
||||
};
|
||||
|
||||
wire rotate = status[2];
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
wire autoup = status[7];
|
||||
wire adv = status[8];
|
||||
wire hsr = status[9];
|
||||
|
||||
wire advance, hsreset;
|
||||
trigger adv_button(clk_sys, adv, advance);
|
||||
trigger hsr_button(clk_sys, hsr, hsreset);
|
||||
|
||||
wire [6:0] core_mod;
|
||||
reg [8*8-1:0] core_name;
|
||||
reg [7:0] input0;
|
||||
reg [7:0] input1;
|
||||
reg [7:0] input2;
|
||||
@ -61,7 +71,10 @@ always @(*) begin
|
||||
input1 = 0;
|
||||
input2 = 0;
|
||||
orientation = 2'b10;
|
||||
if (`CORE_NAME == "DEFENDER") begin
|
||||
|
||||
case (core_mod)
|
||||
7'h0: // DEFENDER
|
||||
begin
|
||||
/*
|
||||
-- pia rom board port a - input0
|
||||
-- bit 0 Auto Up / manual Down
|
||||
@ -73,7 +86,7 @@ always @(*) begin
|
||||
-- bit 6 led 2 (output)
|
||||
-- bit 7 led 1 (output)
|
||||
*/
|
||||
input0 = { 3'b000, m_coin1, 1'b0/*btn_score_reset*/, 1'b0, m_fireF, m_fireE };
|
||||
input0 = { 3'b000, m_coin1, /*btn_score_reset*/hsreset, 1'b0, advance, autoup };
|
||||
/*
|
||||
-- pia io port a - input1
|
||||
-- bit 0 Fire
|
||||
@ -93,36 +106,45 @@ always @(*) begin
|
||||
-- other <= GND
|
||||
*/
|
||||
input2 = { 7'b000000, m_up };
|
||||
end else if (`CORE_NAME == "COLONY7") begin
|
||||
end
|
||||
7'h1: // COLONY7
|
||||
begin
|
||||
orientation = 2'b01;
|
||||
input0 = { 3'b000, m_coin1, 4'b0001 };
|
||||
input0 = { 3'b000, m_coin1, 2'b00, /*bonus at*/status[11], /*lives23*/status[10] };
|
||||
input1 = { m_fireB, m_fireA, m_one_player, m_two_players, m_up, m_left, m_right, m_down };
|
||||
input2 = { 7'b000000, m_fireC };
|
||||
end else if (`CORE_NAME == "MAYDAY") begin
|
||||
end
|
||||
7'h2: // MAYDAY
|
||||
begin
|
||||
mayday = 1;
|
||||
input0 = { 2'b00, m_coin2, m_coin1, 1'b0, 1'b0/*service*/, m_fireF, m_fireE };
|
||||
input0 = { 2'b00, m_coin2, m_coin1, 1'b0, hsreset, advance, autoup };
|
||||
input1 = { m_down, 1'b0, m_one_player, m_two_players, m_fireB, m_fireC, m_right, m_fireA };
|
||||
input2 = { 7'b000000, m_up };
|
||||
end else if (`CORE_NAME == "JIN") begin
|
||||
end
|
||||
7'h3: // JIN
|
||||
begin
|
||||
orientation = 2'b11;
|
||||
input0 = { 3'b000, m_coin2, m_coin1, 3'b000 };
|
||||
input1 = { m_fireB, m_fireA, m_one_player, m_two_players, m_right, m_left, m_down, m_up };
|
||||
//unknown/Level completed/Level completed/unknown/Lives/Coinage/Coinage/Coinage
|
||||
input2 = 0;
|
||||
input2 = { 1'b0, ~status[12:11], 1'b0, status[10], 3'b000 };
|
||||
end
|
||||
default: ;
|
||||
endcase
|
||||
|
||||
end
|
||||
|
||||
assign LED = ~ioctl_downl;
|
||||
assign SDRAM_CLK = clk_sys;
|
||||
assign SDRAM_CLK = clk_mem;
|
||||
assign SDRAM_CKE = 1;
|
||||
|
||||
wire clk_sys, clk_6, clk_0p89;
|
||||
wire clk_sys, clk_vid, clk_mem = clk_vid, clk_0p89;
|
||||
wire pll_locked;
|
||||
pll_mist pll(
|
||||
.inclk0(CLOCK_27),
|
||||
.areset(0),
|
||||
.c0(clk_sys),//54
|
||||
.c1(clk_6),//6
|
||||
.c0(clk_vid),//72
|
||||
.c1(clk_sys),//6
|
||||
.c2(clk_0p89),//0.89
|
||||
.locked(pll_locked)
|
||||
);
|
||||
@ -134,15 +156,34 @@ wire [7:0] joystick_0;
|
||||
wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
wire [7:0] audio;
|
||||
wire hs, vs;
|
||||
wire blankn;
|
||||
wire [2:0] r,g;
|
||||
wire [1:0] b;
|
||||
wire no_csync;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
user_io #(
|
||||
.STRLEN($size(CONF_STR)>>3))
|
||||
user_io(
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
.SPI_MISO (SPI_DO ),
|
||||
.SPI_MOSI (SPI_DI ),
|
||||
.buttons (buttons ),
|
||||
.switches (switches ),
|
||||
.scandoubler_disable (scandoublerD ),
|
||||
.ypbpr (ypbpr ),
|
||||
.no_csync (no_csync ),
|
||||
.core_mod (core_mod ),
|
||||
.key_strobe (key_strobe ),
|
||||
.key_pressed (key_pressed ),
|
||||
.key_code (key_code ),
|
||||
.joystick_0 (joystick_0 ),
|
||||
.joystick_1 (joystick_1 ),
|
||||
.status (status )
|
||||
);
|
||||
|
||||
wire ioctl_downl;
|
||||
wire [7:0] ioctl_index;
|
||||
wire ioctl_wr;
|
||||
@ -179,7 +220,7 @@ wire [15:0] snd_do;
|
||||
sdram #(.MHZ(54)) sdram(
|
||||
.*,
|
||||
.init_n ( pll_locked ),
|
||||
.clk ( clk_sys ),
|
||||
.clk ( clk_mem ),
|
||||
|
||||
// port1 used for main CPU
|
||||
.port1_req ( port1_req ),
|
||||
@ -231,8 +272,14 @@ always @(posedge clk_sys) begin
|
||||
reset <= status[0] | buttons[1] | ioctl_downl | ~rom_loaded;
|
||||
end
|
||||
|
||||
wire [7:0] audio;
|
||||
wire hs, vs;
|
||||
wire blankn;
|
||||
wire [2:0] r,g;
|
||||
wire [1:0] b;
|
||||
|
||||
defender defender (
|
||||
.clock_6 ( clk_6 ),
|
||||
.clock_6 ( clk_sys ),
|
||||
.clk_0p89 ( clk_0p89 ),
|
||||
.reset ( reset ),
|
||||
.video_r ( r ),
|
||||
@ -263,7 +310,7 @@ defender defender (
|
||||
);
|
||||
|
||||
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(11)) mist_video(
|
||||
.clk_sys ( clk_sys ),
|
||||
.clk_sys ( clk_vid ),
|
||||
.SPI_SCK ( SPI_SCK ),
|
||||
.SPI_SS3 ( SPI_SS3 ),
|
||||
.SPI_DI ( SPI_DI ),
|
||||
@ -279,42 +326,22 @@ mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(11)) mist_video(
|
||||
.VGA_HS ( VGA_HS ),
|
||||
.rotate ( {orientation[1],rotate} ),
|
||||
.scandoubler_disable( scandoublerD ),
|
||||
.scanlines ( status[4:3] ),
|
||||
.blend ( status[5] ),
|
||||
.no_csync ( no_csync ),
|
||||
.scanlines ( scanlines ),
|
||||
.blend ( blend ),
|
||||
.ypbpr ( ypbpr )
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
.SPI_MISO (SPI_DO ),
|
||||
.SPI_MOSI (SPI_DI ),
|
||||
.buttons (buttons ),
|
||||
.switches (switches ),
|
||||
.scandoubler_disable (scandoublerD ),
|
||||
.ypbpr (ypbpr ),
|
||||
.key_strobe (key_strobe ),
|
||||
.key_pressed (key_pressed ),
|
||||
.key_code (key_code ),
|
||||
.joystick_0 (joystick_0 ),
|
||||
.joystick_1 (joystick_1 ),
|
||||
.status (status )
|
||||
);
|
||||
|
||||
wire dac_o;
|
||||
assign AUDIO_L = dac_o;
|
||||
assign AUDIO_R = dac_o;
|
||||
|
||||
dac #(
|
||||
.C_bits(8))
|
||||
.C_bits(11))
|
||||
dac(
|
||||
.clk_i(clk_0p89),
|
||||
.res_n_i(1),
|
||||
.dac_i(audio),
|
||||
.dac_i({3'b000, audio}), // silence by 9dB
|
||||
.dac_o(dac_o)
|
||||
);
|
||||
|
||||
@ -338,4 +365,24 @@ arcade_inputs inputs (
|
||||
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
|
||||
);
|
||||
|
||||
endmodule
|
||||
endmodule
|
||||
|
||||
module trigger (
|
||||
input clk,
|
||||
input btn,
|
||||
output trigger
|
||||
);
|
||||
|
||||
reg [23:0] counter;
|
||||
assign trigger = (counter != 0);
|
||||
|
||||
always @(posedge clk) begin
|
||||
reg btn_d;
|
||||
|
||||
btn_d <= btn;
|
||||
if (~btn_d & btn) counter <= 24'hfffff;
|
||||
if (counter != 0) counter <= counter - 1'd1;
|
||||
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
@ -156,9 +156,9 @@ BEGIN
|
||||
altpll_component : altpll
|
||||
GENERIC MAP (
|
||||
bandwidth_type => "AUTO",
|
||||
clk0_divide_by => 1,
|
||||
clk0_divide_by => 3,
|
||||
clk0_duty_cycle => 50,
|
||||
clk0_multiply_by => 2,
|
||||
clk0_multiply_by => 8,
|
||||
clk0_phase_shift => "0",
|
||||
clk1_divide_by => 9,
|
||||
clk1_duty_cycle => 50,
|
||||
@ -255,7 +255,7 @@ END SYN;
|
||||
-- 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: EFF_OUTPUT_FREQ_VALUE0 STRING "54.000000"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "72.000000"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "6.000000"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "0.890110"
|
||||
-- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
|
||||
@ -284,14 +284,14 @@ END SYN;
|
||||
-- Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
|
||||
-- Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0"
|
||||
-- Retrieval info: PRIVATE: MIRROR_CLK2 STRING "0"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "6"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "4"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "2"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "3"
|
||||
-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "36.00000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "72.00000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "6.00000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "0.89000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "0"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
|
||||
@ -343,9 +343,9 @@ END SYN;
|
||||
-- Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
|
||||
-- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
-- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "AUTO"
|
||||
-- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "1"
|
||||
-- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "3"
|
||||
-- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
|
||||
-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "2"
|
||||
-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "8"
|
||||
-- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
|
||||
-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "9"
|
||||
-- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user