From fd0561ae0ea490996f82f137904c43b077be4c00 Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Tue, 7 Jan 2020 19:26:42 +0100 Subject: [PATCH] Phoenix HW: clocking fixes (Blending looks good now), common inputs --- .../Capitol_MIST/rtl/Capitol_MiST.sv | 95 +++++++-------- .../Capitol_MIST/rtl/phoenix.vhd | 12 +- .../Phoenix_MIST/rtl/Phoenix_MiST.sv | 92 +++++++------- .../Phoenix_MIST/rtl/phoenix.vhd | 12 +- .../Pleiads_MIST/rtl/Pleiads_MiST.sv | 95 +++++++-------- .../Pleiads_MIST/rtl/phoenix.vhd | 12 +- .../{Survival_mist.sdc => Survival_MiST.sdc} | 0 .../Survival_MIST/rtl/Survival_MiST.sv | 115 ++++++++---------- .../Survival_MIST/rtl/phoenix.vhd | 47 ++++--- .../Survival_MIST/rtl/pll.vhd | 64 +++------- 10 files changed, 251 insertions(+), 293 deletions(-) rename Arcade_MiST/Phoenix Hardware/Survival_MIST/{Survival_mist.sdc => Survival_MiST.sdc} (100%) diff --git a/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/Capitol_MiST.sv b/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/Capitol_MiST.sv index bbd271d5..7403aa6b 100644 --- a/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/Capitol_MiST.sv +++ b/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/Capitol_MiST.sv @@ -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 \ No newline at end of file +endmodule diff --git a/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/phoenix.vhd b/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/phoenix.vhd index af5ed868..a26ae2a8 100644 --- a/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/phoenix.vhd +++ b/Arcade_MiST/Phoenix Hardware/Capitol_MIST/rtl/phoenix.vhd @@ -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', diff --git a/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/Phoenix_MiST.sv b/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/Phoenix_MiST.sv index 6269aac0..918496b9 100644 --- a/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/Phoenix_MiST.sv +++ b/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/Phoenix_MiST.sv @@ -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 \ No newline at end of file +endmodule diff --git a/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/phoenix.vhd b/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/phoenix.vhd index de232aa0..843b2801 100644 --- a/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/phoenix.vhd +++ b/Arcade_MiST/Phoenix Hardware/Phoenix_MIST/rtl/phoenix.vhd @@ -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', diff --git a/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/Pleiads_MiST.sv b/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/Pleiads_MiST.sv index 29fb40a6..19316834 100644 --- a/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/Pleiads_MiST.sv +++ b/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/Pleiads_MiST.sv @@ -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 \ No newline at end of file diff --git a/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/phoenix.vhd b/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/phoenix.vhd index 292caaee..0e0af44c 100644 --- a/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/phoenix.vhd +++ b/Arcade_MiST/Phoenix Hardware/Pleiads_MIST/rtl/phoenix.vhd @@ -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', diff --git a/Arcade_MiST/Phoenix Hardware/Survival_MIST/Survival_mist.sdc b/Arcade_MiST/Phoenix Hardware/Survival_MIST/Survival_MiST.sdc similarity index 100% rename from Arcade_MiST/Phoenix Hardware/Survival_MIST/Survival_mist.sdc rename to Arcade_MiST/Phoenix Hardware/Survival_MIST/Survival_MiST.sdc diff --git a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/Survival_MiST.sv b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/Survival_MiST.sv index c7a94478..96c2c4d3 100644 --- a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/Survival_MiST.sv +++ b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/Survival_MiST.sv @@ -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 \ No newline at end of file diff --git a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/phoenix.vhd b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/phoenix.vhd index 77e024e0..309044b9 100644 --- a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/phoenix.vhd +++ b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/phoenix.vhd @@ -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; diff --git a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/pll.vhd b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/pll.vhd index e39588dc..252dd030 100644 --- a/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/pll.vhd +++ b/Arcade_MiST/Phoenix Hardware/Survival_MIST/rtl/pll.vhd @@ -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