mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-22 18:31:06 +00:00
Phoenix HW: clocking fixes (Blending looks good now), common inputs
This commit is contained in:
parent
1dfea98b61
commit
fd0561ae0e
@ -34,10 +34,14 @@ localparam CONF_STR = {
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"T6,Reset;",
|
||||
"T0,Reset;",
|
||||
"V,v1.21.",`BUILD_DATE
|
||||
};
|
||||
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
|
||||
assign LED = 1;
|
||||
assign AUDIO_R = AUDIO_L;
|
||||
|
||||
@ -58,21 +62,24 @@ wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
reg [11:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire hb1, hb2, vb;
|
||||
wire blankn = ~((hb1 & hb2) | vb);
|
||||
wire hs, vs;
|
||||
wire hs, vs;
|
||||
wire [1:0] r,g,b;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
phoenix phoenix(
|
||||
.clk(clk_sys),
|
||||
.reset(status[0] | status[6] | buttons[1]),
|
||||
.reset(status[0] | buttons[1]),
|
||||
.dip_switch(8'b00001111),
|
||||
.btn_coin(btn_coin),
|
||||
.btn_player_start({btn_two_players,btn_one_player}),
|
||||
.btn_coin(m_coin1 | m_coin2),
|
||||
.btn_player_start({m_two_players,m_one_player}),
|
||||
.btn_left(m_left),
|
||||
.btn_right(m_right),
|
||||
.btn_barrier(m_bomb),
|
||||
.btn_fire(m_fire),
|
||||
.btn_barrier(m_fireB),
|
||||
.btn_fire(m_fireA),
|
||||
.video_r(r),
|
||||
.video_g(g),
|
||||
.video_b(b),
|
||||
@ -85,7 +92,7 @@ phoenix phoenix(
|
||||
.audio(audio)
|
||||
);
|
||||
|
||||
mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
mist_video #(.COLOR_DEPTH(2), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.clk_sys(clk_22),
|
||||
.SPI_SCK(SPI_SCK),
|
||||
.SPI_SS3(SPI_SS3),
|
||||
@ -100,18 +107,18 @@ mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
.VGA_B(VGA_B),
|
||||
.VGA_VS(VGA_VS),
|
||||
.VGA_HS(VGA_HS),
|
||||
.ce_divider(0),
|
||||
.blend(status[5]),
|
||||
.rotate({1'b1,status[2]}),
|
||||
.ce_divider(1'b1),
|
||||
.blend(blend),
|
||||
.rotate({1'b1,rotate}),
|
||||
.scandoubler_disable(scandoublerD),
|
||||
.scanlines(scandoublerD ? 2'b00 : status[4:3]),
|
||||
.scanlines(scanlines),
|
||||
.ypbpr(ypbpr)
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_22 ),
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
@ -133,48 +140,30 @@ user_io(
|
||||
dac #(
|
||||
.C_bits(15))
|
||||
dac(
|
||||
.clk_i(clk_22),
|
||||
.clk_i(clk_sys),
|
||||
.res_n_i(1),
|
||||
.dac_i({audio, 3'b000}),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
// Rotated Normal
|
||||
//wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3];
|
||||
//wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2];
|
||||
wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
|
||||
wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
|
||||
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
|
||||
wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
|
||||
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
reg btn_one_player = 0;
|
||||
reg btn_two_players = 0;
|
||||
reg btn_left = 0;
|
||||
reg btn_right = 0;
|
||||
reg btn_down = 0;
|
||||
reg btn_up = 0;
|
||||
reg btn_fire1 = 0;
|
||||
reg btn_fire2 = 0;
|
||||
reg btn_coin = 0;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
arcade_inputs inputs (
|
||||
.clk ( clk_sys ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( rotate ),
|
||||
.orientation ( 2'b11 ),
|
||||
.joyswap ( 1'b0 ),
|
||||
.oneplayer ( 1'b1 ),
|
||||
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
|
||||
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
|
||||
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
|
||||
);
|
||||
|
||||
|
||||
always @(posedge clk_22) begin
|
||||
if(key_strobe) begin
|
||||
case(key_code)
|
||||
'h75: btn_up <= key_pressed; // up
|
||||
'h72: btn_down <= key_pressed; // down
|
||||
'h6B: btn_left <= key_pressed; // left
|
||||
'h74: btn_right <= key_pressed; // right
|
||||
'h76: btn_coin <= key_pressed; // ESC
|
||||
'h05: btn_one_player <= key_pressed; // F1
|
||||
'h06: btn_two_players <= key_pressed; // F2
|
||||
'h29: btn_fire1 <= key_pressed; // Space
|
||||
'h11: btn_fire2 <= key_pressed; // Alt
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
endmodule
|
||||
endmodule
|
||||
|
||||
@ -60,6 +60,7 @@ architecture struct of phoenix is
|
||||
signal hblank_frgrd : std_logic;
|
||||
signal ce_pix1 : std_logic;
|
||||
|
||||
signal cpu_ce : std_logic;
|
||||
signal cpu_adr : std_logic_vector(15 downto 0);
|
||||
signal cpu_di : std_logic_vector( 7 downto 0);
|
||||
signal cpu_do : std_logic_vector( 7 downto 0);
|
||||
@ -173,7 +174,14 @@ end generate;
|
||||
);
|
||||
reset_n <= not reset;
|
||||
ce_pix <= ce_pix1;
|
||||
|
||||
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
cpu_ce <= not cpu_ce;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- microprocessor 8085
|
||||
cpu8085 : entity work.T8080se
|
||||
generic map
|
||||
@ -184,7 +192,7 @@ generic map
|
||||
port map(
|
||||
RESET_n => reset_n,
|
||||
CLK => clk,
|
||||
CLKEN => '1', -- fixme: use it to make 5.5 MHz clock average
|
||||
CLKEN => cpu_ce,
|
||||
READY => rdy,
|
||||
HOLD => '1',
|
||||
INT => '1',
|
||||
|
||||
@ -34,10 +34,14 @@ localparam CONF_STR = {
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"T6,Reset;",
|
||||
"T0,Reset;",
|
||||
"V,v1.21.",`BUILD_DATE
|
||||
};
|
||||
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
|
||||
assign LED = 1;
|
||||
assign AUDIO_R = AUDIO_L;
|
||||
|
||||
@ -58,21 +62,25 @@ wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
reg [11:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire hb1, hb2, vb;
|
||||
wire blankn = ~((hb1 & hb2) | vb);
|
||||
wire hs, vs;
|
||||
wire hs, vs;
|
||||
wire [1:0] r,g,b;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
|
||||
phoenix phoenix(
|
||||
.clk(clk_sys),
|
||||
.reset(status[0] | status[6] | buttons[1]),
|
||||
.reset(status[0] | buttons[1]),
|
||||
.dip_switch(8'b00001111),
|
||||
.btn_coin(btn_coin),
|
||||
.btn_player_start({btn_two_players,btn_one_player}),
|
||||
.btn_coin(m_coin1 | m_coin2),
|
||||
.btn_player_start({m_two_players,m_one_player}),
|
||||
.btn_left(m_left),
|
||||
.btn_right(m_right),
|
||||
.btn_barrier(m_bomb),
|
||||
.btn_fire(m_fire),
|
||||
.btn_barrier(m_fireB),
|
||||
.btn_fire(m_fireA),
|
||||
.video_r(r),
|
||||
.video_g(g),
|
||||
.video_b(b),
|
||||
@ -85,7 +93,7 @@ phoenix phoenix(
|
||||
.audio(audio)
|
||||
);
|
||||
|
||||
mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
mist_video #(.COLOR_DEPTH(2), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.clk_sys(clk_22),
|
||||
.SPI_SCK(SPI_SCK),
|
||||
.SPI_SS3(SPI_SS3),
|
||||
@ -100,18 +108,18 @@ mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
.VGA_B(VGA_B),
|
||||
.VGA_VS(VGA_VS),
|
||||
.VGA_HS(VGA_HS),
|
||||
.ce_divider(0),
|
||||
.blend(status[5]),
|
||||
.rotate({1'b1,status[2]}),
|
||||
.ce_divider(1'b1),
|
||||
.blend(blend),
|
||||
.rotate({1'b1,rotate}),
|
||||
.scandoubler_disable(scandoublerD),
|
||||
.scanlines(scandoublerD ? 2'b00 : status[4:3]),
|
||||
.scanlines(scanlines),
|
||||
.ypbpr(ypbpr)
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_22 ),
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
@ -137,43 +145,25 @@ dac(
|
||||
.dac_i({audio, 4'b000}),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
// Rotated Normal
|
||||
//wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3];
|
||||
//wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2];
|
||||
wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
|
||||
wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
|
||||
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
|
||||
wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
|
||||
|
||||
reg btn_one_player = 0;
|
||||
reg btn_two_players = 0;
|
||||
reg btn_left = 0;
|
||||
reg btn_right = 0;
|
||||
reg btn_down = 0;
|
||||
reg btn_up = 0;
|
||||
reg btn_fire1 = 0;
|
||||
reg btn_fire2 = 0;
|
||||
reg btn_coin = 0;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
arcade_inputs inputs (
|
||||
.clk ( clk_sys ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( rotate ),
|
||||
.orientation ( 2'b11 ),
|
||||
.joyswap ( 1'b0 ),
|
||||
.oneplayer ( 1'b1 ),
|
||||
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
|
||||
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
|
||||
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
|
||||
);
|
||||
|
||||
always @(posedge clk_sys) begin
|
||||
if(key_strobe) begin
|
||||
case(key_code)
|
||||
'h75: btn_up <= key_pressed; // up
|
||||
'h72: btn_down <= key_pressed; // down
|
||||
'h6B: btn_left <= key_pressed; // left
|
||||
'h74: btn_right <= key_pressed; // right
|
||||
'h76: btn_coin <= key_pressed; // ESC
|
||||
'h05: btn_one_player <= key_pressed; // F1
|
||||
'h06: btn_two_players <= key_pressed; // F2
|
||||
'h29: btn_fire1 <= key_pressed; // Space
|
||||
'h11: btn_fire2 <= key_pressed; // Alt
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
endmodule
|
||||
endmodule
|
||||
|
||||
@ -61,6 +61,7 @@ architecture struct of phoenix is
|
||||
signal ce_pix1 : std_logic;
|
||||
|
||||
signal cpu_adr : std_logic_vector(15 downto 0);
|
||||
signal cpu_ce : std_logic;
|
||||
signal cpu_di : std_logic_vector( 7 downto 0);
|
||||
signal cpu_do : std_logic_vector( 7 downto 0);
|
||||
signal cpu_wr_n : std_logic;
|
||||
@ -173,7 +174,14 @@ end generate;
|
||||
);
|
||||
reset_n <= not reset;
|
||||
ce_pix <= ce_pix1;
|
||||
|
||||
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
cpu_ce <= not cpu_ce;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- microprocessor 8085
|
||||
cpu8085 : entity work.T8080se
|
||||
generic map
|
||||
@ -184,7 +192,7 @@ generic map
|
||||
port map(
|
||||
RESET_n => reset_n,
|
||||
CLK => clk,
|
||||
CLKEN => '1', -- fixme: use it to make 5.5 MHz clock average
|
||||
CLKEN => cpu_ce,
|
||||
READY => rdy,
|
||||
HOLD => '1',
|
||||
INT => '1',
|
||||
|
||||
@ -34,10 +34,14 @@ localparam CONF_STR = {
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"T6,Reset;",
|
||||
"T0,Reset;",
|
||||
"V,v1.21.",`BUILD_DATE
|
||||
};
|
||||
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
|
||||
assign LED = 1;
|
||||
assign AUDIO_R = AUDIO_L;
|
||||
|
||||
@ -57,22 +61,25 @@ wire [7:0] joystick_0;
|
||||
wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
reg [11:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire [11:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire blankn = ~((hb1 & hb2) | vb);
|
||||
wire hs, vs;
|
||||
wire hs, vs;
|
||||
wire [1:0] r,g,b;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
phoenix phoenix(
|
||||
.clk(clk_sys),
|
||||
.reset(status[0] | status[6] | buttons[1]),
|
||||
.reset(status[0] | buttons[1]),
|
||||
.dip_switch(8'b00001111),
|
||||
.btn_coin(btn_coin),
|
||||
.btn_player_start({btn_two_players,btn_one_player}),
|
||||
.btn_coin(m_coin1 | m_coin2),
|
||||
.btn_player_start({m_two_players,m_one_player}),
|
||||
.btn_left(m_left),
|
||||
.btn_right(m_right),
|
||||
.btn_barrier(m_bomb),
|
||||
.btn_fire(m_fire),
|
||||
.btn_barrier(m_fireB),
|
||||
.btn_fire(m_fireA),
|
||||
.video_r(r),
|
||||
.video_g(g),
|
||||
.video_b(b),
|
||||
@ -85,7 +92,7 @@ phoenix phoenix(
|
||||
.audio(audio)
|
||||
);
|
||||
|
||||
mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
mist_video #(.COLOR_DEPTH(2), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.clk_sys(clk_22),
|
||||
.SPI_SCK(SPI_SCK),
|
||||
.SPI_SS3(SPI_SS3),
|
||||
@ -100,18 +107,18 @@ mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
.VGA_B(VGA_B),
|
||||
.VGA_VS(VGA_VS),
|
||||
.VGA_HS(VGA_HS),
|
||||
.ce_divider(0),
|
||||
.blend(status[5]),
|
||||
.rotate({1'b1,status[2]}),
|
||||
.ce_divider(1'b1),
|
||||
.blend(blend),
|
||||
.rotate({1'b1,rotate}),
|
||||
.scandoubler_disable(scandoublerD),
|
||||
.scanlines(scandoublerD ? 2'b00 : status[4:3]),
|
||||
.scanlines(scanlines),
|
||||
.ypbpr(ypbpr)
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_22 ),
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
@ -133,48 +140,30 @@ user_io(
|
||||
dac #(
|
||||
.C_bits(15))
|
||||
dac(
|
||||
.clk_i(clk_22),
|
||||
.clk_i(clk_sys),
|
||||
.res_n_i(1),
|
||||
.dac_i({audio, 3'b000}),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
// Rotated Normal
|
||||
//wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3];
|
||||
//wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2];
|
||||
wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
|
||||
wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
|
||||
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
|
||||
wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
|
||||
|
||||
reg btn_one_player = 0;
|
||||
reg btn_two_players = 0;
|
||||
reg btn_left = 0;
|
||||
reg btn_right = 0;
|
||||
reg btn_down = 0;
|
||||
reg btn_up = 0;
|
||||
reg btn_fire1 = 0;
|
||||
reg btn_fire2 = 0;
|
||||
reg btn_coin = 0;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
|
||||
always @(posedge clk_22) begin
|
||||
if(key_strobe) begin
|
||||
case(key_code)
|
||||
'h75: btn_up <= key_pressed; // up
|
||||
'h72: btn_down <= key_pressed; // down
|
||||
'h6B: btn_left <= key_pressed; // left
|
||||
'h74: btn_right <= key_pressed; // right
|
||||
'h76: btn_coin <= key_pressed; // ESC
|
||||
'h05: btn_one_player <= key_pressed; // F1
|
||||
'h06: btn_two_players <= key_pressed; // F2
|
||||
'h29: btn_fire1 <= key_pressed; // Space
|
||||
'h11: btn_fire2 <= key_pressed; // Alt
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
arcade_inputs inputs (
|
||||
.clk ( clk_sys ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( rotate ),
|
||||
.orientation ( 2'b11 ),
|
||||
.joyswap ( 1'b0 ),
|
||||
.oneplayer ( 1'b1 ),
|
||||
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
|
||||
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
|
||||
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
|
||||
);
|
||||
|
||||
endmodule
|
||||
@ -60,6 +60,7 @@ architecture struct of phoenix is
|
||||
signal hblank_frgrd : std_logic;
|
||||
signal ce_pix1 : std_logic;
|
||||
|
||||
signal cpu_ce : std_logic;
|
||||
signal cpu_adr : std_logic_vector(15 downto 0);
|
||||
signal cpu_di : std_logic_vector( 7 downto 0);
|
||||
signal cpu_do : std_logic_vector( 7 downto 0);
|
||||
@ -173,7 +174,14 @@ end generate;
|
||||
);
|
||||
reset_n <= not reset;
|
||||
ce_pix <= ce_pix1;
|
||||
|
||||
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
cpu_ce <= not cpu_ce;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- microprocessor 8085
|
||||
cpu8085 : entity work.T8080se
|
||||
generic map
|
||||
@ -184,7 +192,7 @@ generic map
|
||||
port map(
|
||||
RESET_n => reset_n,
|
||||
CLK => clk,
|
||||
CLKEN => '1', -- fixme: use it to make 5.5 MHz clock average
|
||||
CLKEN => cpu_ce, -- fixme: use it to make 5.5 MHz clock average
|
||||
READY => rdy,
|
||||
HOLD => '1',
|
||||
INT => '1',
|
||||
|
||||
@ -34,21 +34,24 @@ localparam CONF_STR = {
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scanlines,Off,25%,50%,75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"T6,Reset;",
|
||||
"T0,Reset;",
|
||||
"V,v1.20.",`BUILD_DATE
|
||||
};
|
||||
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
|
||||
assign LED = 1;
|
||||
assign AUDIO_R = AUDIO_L;
|
||||
|
||||
wire clk_sys, clk_28, clk_ay;
|
||||
wire clk_sys, clk_22;
|
||||
wire pll_locked;
|
||||
pll pll(
|
||||
.inclk0(CLOCK_27),
|
||||
.areset(0),
|
||||
.c0(clk_sys),//11
|
||||
.c1(clk_28),//28
|
||||
.c2(clk_ay)//2.75
|
||||
.c1(clk_22)//22
|
||||
);
|
||||
|
||||
wire [31:0] status;
|
||||
@ -58,28 +61,28 @@ wire [7:0] joystick_0;
|
||||
wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
wire [10:0] ps2_key;
|
||||
reg [7:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire [7:0] audio;
|
||||
wire hb1, hb2, vb;
|
||||
wire blankn = ~((hb1 & hb2) | vb);
|
||||
wire ce_pix;
|
||||
wire hs, vs;
|
||||
wire ce_pix;
|
||||
wire hs, vs;
|
||||
wire [1:0] r,g,b;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
phoenix phoenix(
|
||||
.clk(clk_sys),
|
||||
.clk_28(clk_28),
|
||||
.clk_ay(clk_ay),
|
||||
.reset(status[0] | status[6] | buttons[1]),
|
||||
.reset(status[0] | buttons[1]),
|
||||
.dip_switch(8'b00001111),
|
||||
.btn_coin(btn_coin),
|
||||
.btn_player_start1(~btn_coin),
|
||||
.btn_player_start2(~btn_coin),
|
||||
.btn_fire(~m_fire),
|
||||
.btn_le(~m_left),
|
||||
.btn_ri(~m_right),
|
||||
.btn_up(~m_up),
|
||||
.btn_dw(~m_down),
|
||||
.btn_coin(m_coin1 | m_coin2),
|
||||
.btn_player_start1(m_one_player),
|
||||
.btn_player_start2(m_two_players),
|
||||
.btn_fire(m_fireA),
|
||||
.btn_le(m_left),
|
||||
.btn_ri(m_right),
|
||||
.btn_up(m_up),
|
||||
.btn_dw(m_down),
|
||||
.video_r(r),
|
||||
.video_g(g),
|
||||
.video_b(b),
|
||||
@ -91,8 +94,8 @@ phoenix phoenix(
|
||||
.audio(audio)
|
||||
);
|
||||
|
||||
mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
.clk_sys(clk_28),
|
||||
mist_video #(.COLOR_DEPTH(2), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.clk_sys(clk_22),
|
||||
.SPI_SCK(SPI_SCK),
|
||||
.SPI_SS3(SPI_SS3),
|
||||
.SPI_DI(SPI_DI),
|
||||
@ -106,18 +109,18 @@ mist_video #(.COLOR_DEPTH(2)) mist_video(
|
||||
.VGA_B(VGA_B),
|
||||
.VGA_VS(VGA_VS),
|
||||
.VGA_HS(VGA_HS),
|
||||
.ce_divider(0),
|
||||
.blend(status[5]),
|
||||
.rotate({1'b1,status[2]}),
|
||||
.ce_divider(1'b1),
|
||||
.blend(blend),
|
||||
.rotate({1'b1,rotate}),
|
||||
.scandoubler_disable(scandoublerD),
|
||||
.scanlines(scandoublerD ? 2'b00 : status[4:3]),
|
||||
.scanlines(scanlines),
|
||||
.ypbpr(ypbpr)
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_28 ),
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
@ -138,48 +141,30 @@ user_io(
|
||||
dac #(
|
||||
.C_bits(16))
|
||||
dac(
|
||||
.clk_i(clk_28),
|
||||
.clk_i(clk_sys),
|
||||
.res_n_i(1),
|
||||
.dac_i({audio,audio}),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
// Rotated Normal
|
||||
wire m_up = ~status[2] ? btn_left | joystick_0[0] | joystick_1[0] : btn_up | joystick_0[2] | joystick_1[2];
|
||||
wire m_down = ~status[2] ? btn_right | joystick_0[1] | joystick_1[1] : btn_down | joystick_0[3] | joystick_1[3];
|
||||
wire m_left = ~status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
|
||||
wire m_right = ~status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
|
||||
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
|
||||
wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
|
||||
|
||||
reg btn_one_player = 0;
|
||||
reg btn_two_players = 0;
|
||||
reg btn_left = 0;
|
||||
reg btn_right = 0;
|
||||
reg btn_down = 0;
|
||||
reg btn_up = 0;
|
||||
reg btn_fire1 = 0;
|
||||
reg btn_fire2 = 0;
|
||||
reg btn_coin = 0;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
|
||||
always @(posedge clk_28) begin
|
||||
if(key_strobe) begin
|
||||
case(key_code)
|
||||
'h75: btn_up <= key_pressed; // up
|
||||
'h72: btn_down <= key_pressed; // down
|
||||
'h6B: btn_left <= key_pressed; // left
|
||||
'h74: btn_right <= key_pressed; // right
|
||||
'h76: btn_coin <= key_pressed; // ESC
|
||||
'h05: btn_one_player <= key_pressed; // F1
|
||||
'h06: btn_two_players <= key_pressed; // F2
|
||||
'h29: btn_fire1 <= key_pressed; // Space
|
||||
'h11: btn_fire2 <= key_pressed; // Alt
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
arcade_inputs inputs (
|
||||
.clk ( clk_sys ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( rotate ),
|
||||
.orientation ( 2'b11 ),
|
||||
.joyswap ( 1'b0 ),
|
||||
.oneplayer ( 1'b1 ),
|
||||
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
|
||||
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
|
||||
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} )
|
||||
);
|
||||
|
||||
endmodule
|
||||
@ -19,8 +19,6 @@ generic (
|
||||
);
|
||||
port(
|
||||
clk : in std_logic; -- 11 MHz for TV, 25 MHz for VGA
|
||||
clk_28 : in std_logic;
|
||||
clk_ay : in std_logic;
|
||||
reset : in std_logic;
|
||||
ce_pix : out std_logic;
|
||||
dip_switch : in std_logic_vector(7 downto 0);
|
||||
@ -56,6 +54,7 @@ architecture struct of phoenix is
|
||||
signal hblank_frgrd : std_logic;
|
||||
signal ce_pix1 : std_logic;
|
||||
|
||||
signal cpu_ce : std_logic;
|
||||
signal cpu_adr : std_logic_vector(15 downto 0);
|
||||
signal cpu_di : std_logic_vector( 7 downto 0);
|
||||
signal cpu_do : std_logic_vector( 7 downto 0);
|
||||
@ -120,12 +119,12 @@ architecture struct of phoenix is
|
||||
signal mixed : std_logic_vector(11 downto 0) := (others =>'0');
|
||||
signal sound_string : std_logic_vector(31 downto 0);
|
||||
|
||||
signal coin : std_logic;
|
||||
signal player_start : std_logic_vector(1 downto 0);
|
||||
signal buttons : std_logic_vector(3 downto 0);
|
||||
signal R_autofire : std_logic_vector(21 downto 0);
|
||||
|
||||
signal psg_cs : std_logic;
|
||||
signal ay_ena_cnt: std_logic_vector(1 downto 0);
|
||||
signal ay_ena : std_logic;
|
||||
signal ay_do : std_logic_vector( 7 downto 0) := (others =>'0');
|
||||
signal ay_iob_do : std_logic_vector(7 downto 0);
|
||||
@ -153,7 +152,19 @@ begin
|
||||
);
|
||||
reset_n <= not reset;
|
||||
ce_pix <= ce_pix1;
|
||||
|
||||
|
||||
process(clk,reset)
|
||||
begin
|
||||
if reset = '1' then
|
||||
cpu_ce <= '0';
|
||||
ay_ena_cnt <= "00";
|
||||
elsif rising_edge(clk) then
|
||||
ay_ena_cnt <= ay_ena_cnt + 1;
|
||||
cpu_ce <= not cpu_ce;
|
||||
end if;
|
||||
end process;
|
||||
ay_ena <= '1' when ay_ena_cnt = "11" else '0';
|
||||
|
||||
-- microprocessor 8085
|
||||
cpu8085 : entity work.T8080se
|
||||
generic map
|
||||
@ -164,7 +175,7 @@ generic map
|
||||
port map(
|
||||
RESET_n => reset_n,
|
||||
CLK => clk,
|
||||
CLKEN => '1', -- fixme: use it to make 5.5 MHz clock average
|
||||
CLKEN => cpu_ce,
|
||||
READY => rdy,
|
||||
HOLD => '1',
|
||||
INT => '1',
|
||||
@ -183,8 +194,8 @@ port map(
|
||||
cpu_di <= prog_do when cpu_adr(14) = '0' else
|
||||
frgnd_ram_do when cpu_adr(13 downto 10) = 2#00_00# else
|
||||
bkgnd_ram_do when cpu_adr(13 downto 10) = 2#00_10# else
|
||||
ay_do when cpu_adr(13 downto 10) = 2#01_00# else
|
||||
btn_dw & btn_le & btn_ri & btn_up & btn_fire & btn_player_start2 & btn_player_start1 & coin when cpu_adr(13 downto 10) = 2#11_00# else
|
||||
ay_do when psg_cs = '1' else
|
||||
not (btn_dw & btn_le & btn_ri & btn_up & btn_fire & btn_player_start2 & btn_player_start1 & btn_coin) when cpu_adr(13 downto 10) = 2#11_00# else
|
||||
not vblank & dip_switch(6 downto 0) when cpu_adr(13 downto 10) = 2#11_10# else
|
||||
prog_do;
|
||||
|
||||
@ -387,25 +398,27 @@ port map(
|
||||
-- 1 0 : Write
|
||||
-- 1 1 : Address
|
||||
--ay_ioa_di <= not sw2(to_integer(unsigned(ay_iob_do(3 downto 1)))) & "000" & not sw1;
|
||||
--0x6800-68ff - address write
|
||||
--0x6900-69ff - data read/write
|
||||
ay_bdir <= not cpu_wr_n;
|
||||
ay_bc1 <= not (cpu_wr_n xor cpu_adr(8));
|
||||
psg_cs <= '1' when cpu_adr(15 downto 9) = "0110100" else '0';
|
||||
|
||||
ay_bdir <= '1' when cpu_wr_n = '0' else '0';
|
||||
ay_bc1 <= '1' when ((cpu_wr_n = '1' and cpu_adr(0) = '0')) else '0';
|
||||
psg_cs <= '1' when cpu_adr(15 downto 10) = "110100" else '0';--110100000000000
|
||||
ym2149 : entity work.ym2149 --110100100000000
|
||||
ym2149 : entity work.ym2149
|
||||
port map (
|
||||
-- data bus
|
||||
I_DA => cpu_do, --: in std_logic_vector(7 downto 0);
|
||||
O_DA => ay_do, --: out std_logic_vector(7 downto 0);
|
||||
O_DA_OE_L => open, --: out std_logic;
|
||||
-- control
|
||||
I_A9_L => '1', --: in std_logic;
|
||||
I_A8 => '1', --: in std_logic;
|
||||
I_A9_L => '0', --: in std_logic;
|
||||
I_A8 => psg_cs, --: in std_logic;
|
||||
I_BDIR => ay_bdir, --: in std_logic;
|
||||
I_BC2 => '1', --: in std_logic;
|
||||
I_BC1 => ay_bc1, --: in std_logic;
|
||||
I_SEL_L => '1', --: in std_logic;
|
||||
-- audio
|
||||
O_AUDIO => audio, --: out std_logic_vector(7 downto 0);
|
||||
O_AUDIO => audio, --: out std_logic_vector(7 downto 0);
|
||||
-- port a
|
||||
I_IOA => ay_ioa_di, --: in std_logic_vector(7 downto 0);
|
||||
O_IOA => open, --: out std_logic_vector(7 downto 0);
|
||||
@ -415,9 +428,9 @@ port map (
|
||||
O_IOB => ay_iob_do, --: out std_logic_vector(7 downto 0);
|
||||
O_IOB_OE_L => open, --: out std_logic;
|
||||
|
||||
ENA => '1', --: in std_logic; -- clock enable for higher speed operation
|
||||
RESET_L => '1', --: in std_logic;
|
||||
CLK => clk_ay
|
||||
ENA => ay_ena, --: in std_logic; -- clock enable for higher speed operation
|
||||
RESET_L => not reset, --: in std_logic;
|
||||
CLK => clk
|
||||
);
|
||||
|
||||
end struct;
|
||||
|
||||
@ -14,11 +14,11 @@
|
||||
-- ************************************************************
|
||||
-- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
--
|
||||
-- 13.1.0 Build 162 10/23/2013 SJ Web Edition
|
||||
-- 13.1.4 Build 182 03/12/2014 Patches 4.26 SJ Web Edition
|
||||
-- ************************************************************
|
||||
|
||||
|
||||
--Copyright (C) 1991-2013 Altera Corporation
|
||||
--Copyright (C) 1991-2014 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
|
||||
@ -46,7 +46,6 @@ ENTITY pll IS
|
||||
inclk0 : IN STD_LOGIC := '0';
|
||||
c0 : OUT STD_LOGIC ;
|
||||
c1 : OUT STD_LOGIC ;
|
||||
c2 : OUT STD_LOGIC ;
|
||||
c3 : OUT STD_LOGIC
|
||||
);
|
||||
END pll;
|
||||
@ -59,10 +58,9 @@ ARCHITECTURE SYN OF pll IS
|
||||
SIGNAL sub_wire2 : STD_LOGIC ;
|
||||
SIGNAL sub_wire3 : STD_LOGIC ;
|
||||
SIGNAL sub_wire4 : STD_LOGIC ;
|
||||
SIGNAL sub_wire5 : STD_LOGIC ;
|
||||
SIGNAL sub_wire6 : STD_LOGIC_VECTOR (1 DOWNTO 0);
|
||||
SIGNAL sub_wire7_bv : BIT_VECTOR (0 DOWNTO 0);
|
||||
SIGNAL sub_wire7 : STD_LOGIC_VECTOR (0 DOWNTO 0);
|
||||
SIGNAL sub_wire5 : STD_LOGIC_VECTOR (1 DOWNTO 0);
|
||||
SIGNAL sub_wire6_bv : BIT_VECTOR (0 DOWNTO 0);
|
||||
SIGNAL sub_wire6 : STD_LOGIC_VECTOR (0 DOWNTO 0);
|
||||
|
||||
|
||||
|
||||
@ -77,10 +75,6 @@ ARCHITECTURE SYN OF pll IS
|
||||
clk1_duty_cycle : NATURAL;
|
||||
clk1_multiply_by : NATURAL;
|
||||
clk1_phase_shift : STRING;
|
||||
clk2_divide_by : NATURAL;
|
||||
clk2_duty_cycle : NATURAL;
|
||||
clk2_multiply_by : NATURAL;
|
||||
clk2_phase_shift : STRING;
|
||||
clk3_divide_by : NATURAL;
|
||||
clk3_duty_cycle : NATURAL;
|
||||
clk3_multiply_by : NATURAL;
|
||||
@ -143,18 +137,16 @@ ARCHITECTURE SYN OF pll IS
|
||||
END COMPONENT;
|
||||
|
||||
BEGIN
|
||||
sub_wire7_bv(0 DOWNTO 0) <= "0";
|
||||
sub_wire7 <= To_stdlogicvector(sub_wire7_bv);
|
||||
sub_wire4 <= sub_wire0(2);
|
||||
sub_wire6_bv(0 DOWNTO 0) <= "0";
|
||||
sub_wire6 <= To_stdlogicvector(sub_wire6_bv);
|
||||
sub_wire3 <= sub_wire0(0);
|
||||
sub_wire2 <= sub_wire0(3);
|
||||
sub_wire1 <= sub_wire0(1);
|
||||
c1 <= sub_wire1;
|
||||
c3 <= sub_wire2;
|
||||
c0 <= sub_wire3;
|
||||
c2 <= sub_wire4;
|
||||
sub_wire5 <= inclk0;
|
||||
sub_wire6 <= sub_wire7(0 DOWNTO 0) & sub_wire5;
|
||||
sub_wire4 <= inclk0;
|
||||
sub_wire5 <= sub_wire6(0 DOWNTO 0) & sub_wire4;
|
||||
|
||||
altpll_component : altpll
|
||||
GENERIC MAP (
|
||||
@ -163,14 +155,10 @@ BEGIN
|
||||
clk0_duty_cycle => 50,
|
||||
clk0_multiply_by => 57,
|
||||
clk0_phase_shift => "0",
|
||||
clk1_divide_by => 55,
|
||||
clk1_divide_by => 70,
|
||||
clk1_duty_cycle => 50,
|
||||
clk1_multiply_by => 57,
|
||||
clk1_phase_shift => "0",
|
||||
clk2_divide_by => 560,
|
||||
clk2_duty_cycle => 50,
|
||||
clk2_multiply_by => 57,
|
||||
clk2_phase_shift => "0",
|
||||
clk3_divide_by => 35,
|
||||
clk3_duty_cycle => 50,
|
||||
clk3_multiply_by => 57,
|
||||
@ -209,7 +197,7 @@ BEGIN
|
||||
port_scanwrite => "PORT_UNUSED",
|
||||
port_clk0 => "PORT_USED",
|
||||
port_clk1 => "PORT_USED",
|
||||
port_clk2 => "PORT_USED",
|
||||
port_clk2 => "PORT_UNUSED",
|
||||
port_clk3 => "PORT_USED",
|
||||
port_clk4 => "PORT_UNUSED",
|
||||
port_clk5 => "PORT_UNUSED",
|
||||
@ -227,7 +215,7 @@ BEGIN
|
||||
)
|
||||
PORT MAP (
|
||||
areset => areset,
|
||||
inclk => sub_wire6,
|
||||
inclk => sub_wire5,
|
||||
clk => sub_wire0
|
||||
);
|
||||
|
||||
@ -255,16 +243,13 @@ END SYN;
|
||||
-- Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "c0"
|
||||
-- Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
|
||||
-- Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "140"
|
||||
-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "55"
|
||||
-- Retrieval info: PRIVATE: DIV_FACTOR2 NUMERIC "560"
|
||||
-- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "70"
|
||||
-- Retrieval info: PRIVATE: DIV_FACTOR3 NUMERIC "35"
|
||||
-- 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 "10.992857"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "27.981817"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "2.748214"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "21.985714"
|
||||
-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "43.971428"
|
||||
-- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
|
||||
-- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
|
||||
@ -287,40 +272,32 @@ END SYN;
|
||||
-- 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 "ps"
|
||||
-- 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 "57"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "57"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR2 NUMERIC "57"
|
||||
-- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "57"
|
||||
-- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "11.00000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "28.00000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "2.75000000"
|
||||
-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "44.00000000"
|
||||
-- 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"
|
||||
@ -345,18 +322,15 @@ END SYN;
|
||||
-- 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"
|
||||
@ -366,14 +340,10 @@ END SYN;
|
||||
-- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
|
||||
-- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "57"
|
||||
-- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
|
||||
-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "55"
|
||||
-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "70"
|
||||
-- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
|
||||
-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "57"
|
||||
-- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0"
|
||||
-- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "560"
|
||||
-- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50"
|
||||
-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "57"
|
||||
-- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0"
|
||||
-- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "35"
|
||||
-- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50"
|
||||
-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "57"
|
||||
@ -411,7 +381,7 @@ END SYN;
|
||||
-- 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_USED"
|
||||
-- Retrieval info: CONSTANT: PORT_clk2 STRING "PORT_UNUSED"
|
||||
-- Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_USED"
|
||||
-- Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
|
||||
-- Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
|
||||
@ -431,7 +401,6 @@ END SYN;
|
||||
-- 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: CONNECT: @areset 0 0 0 0 areset 0 0 0 0
|
||||
@ -439,7 +408,6 @@ END SYN;
|
||||
-- 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: GEN_FILE: TYPE_NORMAL pll.vhd TRUE
|
||||
-- Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user