finally fixed multiple drivers problem

This commit is contained in:
Markus Fröschle
2016-07-28 11:48:10 +00:00
parent 69d3f17a8b
commit 3cddba74a6
9 changed files with 760 additions and 907 deletions

View File

@@ -1,73 +1,47 @@
-- WARNING: Do NOT edit the input and output ports in this file in a text
-- editor if you plan to continue editing the block that represents it in
-- the Block Editor! File corruption is VERY likely to occur.
-- Copyright (C) 1991-2008 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
-- (including device programming or simulation files), and any
-- associated documentation or information are expressly subject
-- to the terms and conditions of the Altera Program License
-- Subscription Agreement, Altera MegaCore Function License
-- Agreement, or other applicable license agreement, including,
-- without limitation, that your use is for the sole purpose of
-- programming logic devices manufactured by Altera and sold by
-- Altera or its authorized distributors. Please refer to the
-- applicable agreement for further details.
-- Generated by Quartus II Version 8.1 (Build Build 163 10/28/2008)
-- Created on Fri Oct 16 15:40:59 2009
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity blitter is
-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
PORT
port
(
nRSTO : IN std_logic;
MAIN_CLK : IN std_logic;
FB_ALE : IN std_logic;
nFB_WR : IN std_logic;
nFB_OE : IN std_logic;
FB_SIZE0 : IN std_logic;
FB_SIZE1 : IN std_logic;
VIDEO_RAM_CTR : IN std_logic_vector(15 DOWNTO 0);
BLITTER_ON : IN std_logic;
FB_ADR : IN std_logic_vector(31 DOWNTO 0);
nFB_CS1 : IN std_logic;
nFB_CS2 : IN std_logic;
nFB_CS3 : IN std_logic;
DDRCLK0 : IN std_logic;
BLITTER_DIN : IN std_logic_vector(127 DOWNTO 0);
BLITTER_DACK : IN std_logic_vector(4 DOWNTO 0);
SR_BLITTER_DACK : IN std_logic;
BLITTER_RUN : OUT std_logic;
BLITTER_DOUT : OUT std_logic_vector(127 DOWNTO 0);
BLITTER_ADR : OUT std_logic_vector(31 DOWNTO 0);
BLITTER_SIG : OUT std_logic;
BLITTER_WR : OUT std_logic;
blitter_ta : OUT std_logic;
fb_ad_in : in std_logic_vector(31 DOWNTO 0);
nRSTO : in std_logic;
MAIN_CLK : in std_logic;
FB_ALE : in std_logic;
nFB_WR : in std_logic;
nFB_OE : in std_logic;
FB_SIZE0 : in std_logic;
FB_SIZE1 : in std_logic;
VIDEO_RAM_CTR : in std_logic_vector(15 downto 0);
BLITTER_ON : in std_logic;
FB_ADR : in std_logic_vector(31 downto 0);
nFB_CS1 : in std_logic;
nFB_CS2 : in std_logic;
nFB_CS3 : in std_logic;
DDRCLK0 : in std_logic;
BLITTER_DIN : in std_logic_vector(127 downto 0);
BLITTER_DACK : in std_logic_vector(4 downto 0);
SR_BLITTER_DACK : in std_logic;
blitter_run : out std_logic;
blitter_dout : out std_logic_vector(127 downto 0);
blitter_adr : out std_logic_vector(31 downto 0);
blitter_sig : out std_logic;
blitter_wr : out std_logic;
blitter_ta : out std_logic;
fb_ad_in : in std_logic_vector(31 downto 0);
fb_ad_out : out std_logic_vector(31 downto 0)
);
-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
END BLITTER;
end BLITTER;
ARCHITECTURE rtl OF blitter IS
architecture rtl of blitter is
BEGIN
BLITTER_RUN <= '0';
BLITTER_DOUT <= x"FEDCBA9876543210F0F0F0F0F0F0F0F0";
BLITTER_ADR <= x"76543210";
BLITTER_SIG <= '0';
BLITTER_WR <= '0';
begin
blitter_run <= '0';
blitter_dout <= x"FEDCBA9876543210F0F0F0F0F0F0F0F0";
blitter_adr <= x"76543210";
blitter_sig <= '0';
blitter_wr <= '0';
blitter_ta <= '0';
END rtl;
fb_ad_out <= (others => 'Z');
end rtl;

View File

@@ -1384,17 +1384,25 @@ begin
"00000" & video_act_adr(26 downto 24) when video_cnt_h and not nfb_oe else
(others => 'Z');
u0_data <= (sizeIt(VIDEO_BASE_L,8) and VIDEO_BASE_L_D_q) or
(sizeIt(VIDEO_BASE_M,8) and VIDEO_BASE_M_D_q) or
(sizeIt(VIDEO_BASE_H,8) and VIDEO_BASE_H_D_q) or
(sizeIt(VIDEO_CNT_L,8) and VIDEO_ACT_ADR(7 downto 0)) or
(sizeIt(VIDEO_CNT_M,8) and VIDEO_ACT_ADR(15 downto 8)) or
(sizeIt(VIDEO_CNT_H,8) and VIDEO_ACT_ADR(23 downto 16));
u0_enabledt <= (VIDEO_BASE_L or VIDEO_BASE_M or VIDEO_BASE_H or VIDEO_CNT_L
or VIDEO_CNT_M or VIDEO_CNT_H) and (not nFB_OE);
fb_ad_out(23 downto 16) <= u0_tridata when u0_enabledt;
-- u0_data <= (sizeIt(VIDEO_BASE_L,8) and VIDEO_BASE_L_D_q) or
-- (sizeIt(VIDEO_BASE_M,8) and VIDEO_BASE_M_D_q) or
-- (sizeIt(VIDEO_BASE_H,8) and VIDEO_BASE_H_D_q) or
-- (sizeIt(VIDEO_CNT_L,8) and VIDEO_ACT_ADR(7 downto 0)) or
-- (sizeIt(VIDEO_CNT_M,8) and VIDEO_ACT_ADR(15 downto 8)) or
-- (sizeIt(VIDEO_CNT_H,8) and VIDEO_ACT_ADR(23 downto 16));
-- u0_enabledt <= (VIDEO_BASE_L or VIDEO_BASE_M or VIDEO_BASE_H or VIDEO_CNT_L
-- or VIDEO_CNT_M or VIDEO_CNT_H) and (not nFB_OE);
-- fb_ad_out(23 downto 16) <= u0_tridata when u0_enabledt else (others => 'Z');
fb_ad_out(23 downto 16) <= video_base_l_d_q when video_base_l and not nfb_oe else
video_base_m_d_q when video_base_m and not nfb_oe else
video_base_h_d_q when video_base_h and not nfb_oe else
video_act_adr(7 downto 0) when video_cnt_l and not nfb_oe else
video_act_adr(15 downto 8) when video_cnt_m and not nfb_oe else
video_act_adr(23 downto 16) when video_cnt_h and not nfb_oe else
(others => 'Z');
fb_ad_out(15 downto 0) <= (others => 'Z');
-- Assignments added to explicitly combine the
-- effects of multiple drivers in the source
FIFO_BANK_OK_d <= FIFO_BANK_OK_d_1 or FIFO_BANK_OK_d_2;

File diff suppressed because it is too large Load Diff

View File

@@ -1131,7 +1131,7 @@ begin
-- 10 VGA
-- 11 TV
-- $8006/2
sys_ctr_cs <= '1' when nFB_CS1 = '0' and f_addr_cmp_w(fb_adR, 20x"f8006") = '1';
sys_ctr_cs <= '1' when nFB_CS1 = '0' and f_addr_cmp_w(fb_adR, 20x"f8006") = '1' else '0';
-- fb_adR(19 downto 1) = std_logic_vector'(20x"f8006")(19 downto 1) else '0';
-- sys_ctr_CS <= to_std_logic(((not nFB_CS1) = '1') and fb_adR(19 downto 1) = "1111100000000000011");
@@ -1284,32 +1284,32 @@ begin
-- (sizeIt(VIDEO_PLL_RECONFIG_CS,16) and std_logic_vector'(vr_busy & "0000" & vr_wr_q & vr_rd & video_reconfig_q & "11111010"));
fb_ad_out(31 downto 16) <= "000000" & st_shift_mode_q & "00000000" when st_shift_mode_cs = '1' else
"100000000" & sys_ctr_q(6 downto 4) & (not blitter_run) & sys_ctr_q(2 downto 0) when sys_ctr_cs = '1' else
lwd_q when lof_cs = '1' and lwd_cs = '1' else
"0000" & hbe_q when hbe_cs = '1' else
"0000" & hdb_q when hdb_cs = '1' else
"0000" & hde_q when hde_cs = '1' else
"0000" & hbb_q when hbb_cs = '1' else
"0000" & hss_q when hss_cs = '1' else
"0000" & hht_q when hht_cs = '1' else
"00000" & vbe_q when vbe_cs = '1' else
"00000" & vdb_q when vdb_cs = '1' else
"00000" & vde_q when vde_cs = '1' else
"00000" & vbb_q when vbb_cs = '1' else
"00000" & vss_q when vss_cs = '1' else
"00000" & vft_q when vft_cs = '1' else
"0000000" & vco_q when vco_cs = '1' else
"000000000000" & vcntrl_q when vcntrl_cs = '1' else
acp_vctr_q(31 downto 16) when acp_vctr_cs = '1' else
atari_hh_q(31 downto 16) when atari_hh_cs = '1' else
atari_vh_q(31 downto 16) when atari_vh_cs = '1' else
atari_hl_q(31 downto 16) when atari_hl_cs = '1' else
atari_vl_q(31 downto 16) when atari_vl_cs = '1' else
"00000000" & border_color_q(23 downto 16) when border_color_cs = '1' else
"0000000" & vr_dout_q when video_pll_config_cs = '1' else
vr_busy & "0000" & vr_wr_q & vr_rd & video_reconfig_q & "11111010" when video_pll_reconfig_cs = '1' else
(others => 'Z');
"100000000" & sys_ctr_q(6 downto 4) & (not blitter_run) & sys_ctr_q(2 downto 0) when sys_ctr_cs = '1' else
lwd_q when lof_cs = '1' and lwd_cs = '1' else
"0000" & hbe_q when hbe_cs = '1' else
"0000" & hdb_q when hdb_cs = '1' else
"0000" & hde_q when hde_cs = '1' else
"0000" & hbb_q when hbb_cs = '1' else
"0000" & hss_q when hss_cs = '1' else
"0000" & hht_q when hht_cs = '1' else
"00000" & vbe_q when vbe_cs = '1' else
"00000" & vdb_q when vdb_cs = '1' else
"00000" & vde_q when vde_cs = '1' else
"00000" & vbb_q when vbb_cs = '1' else
"00000" & vss_q when vss_cs = '1' else
"00000" & vft_q when vft_cs = '1' else
"0000000" & vco_q when vco_cs = '1' else
"000000000000" & vcntrl_q when vcntrl_cs = '1' else
acp_vctr_q(31 downto 16) when acp_vctr_cs = '1' else
atari_hh_q(31 downto 16) when atari_hh_cs = '1' else
atari_vh_q(31 downto 16) when atari_vh_cs = '1' else
atari_hl_q(31 downto 16) when atari_hl_cs = '1' else
atari_vl_q(31 downto 16) when atari_vl_cs = '1' else
"00000000" & border_color_q(23 downto 16) when border_color_cs = '1' else
"0000000" & vr_dout_q when video_pll_config_cs = '1' else
vr_busy & "0000" & vr_wr_q & vr_rd & video_reconfig_q & "11111010" when video_pll_reconfig_cs = '1' else
(others => 'Z');
-- u0_enabledt <= (st_shift_mode_CS or falcon_shift_mode_CS or acp_vctr_CS or border_color_CS or sys_ctr_CS or lof_CS or lwd_CS or HBE_CS or HDB_CS or
-- hde_CS or HBB_CS or HSS_CS or HHT_CS or atari_hh_CS or atari_vh_CS or atari_hl_CS or ATARI_VL_CS or VIDEO_PLL_CONFIG_CS or
-- VIDEO_PLL_RECONFIG_CS or VBE_CS or VDB_CS or VDE_CS or VBB_CS or VSS_CS or VFT_CS or VCO_CS or vcntrl_cs) and (not nFB_OE);
@@ -1326,16 +1326,38 @@ begin
-- fb_ad(15 downto 0) <= u1_tridata;
fb_ad_out(15 downto 0) <= acp_vctr_q(15 downto 0) when acp_vctr_cs = '1' else
atari_hh_q(15 downto 0) when atari_hh_cs = '1' else
atari_vh_q(15 downto 0) when atari_vh_cs = '1' else
atari_hl_q(15 downto 0) when atari_hl_cs = '1' else
atari_vl_q(15 downto 0) when atari_vl_cs = '1' else
border_color_q(15 downto 0) when border_color_cs = '1' else
(others => 'Z');
atari_hh_q(15 downto 0) when atari_hh_cs = '1' else
atari_vh_q(15 downto 0) when atari_vh_cs = '1' else
atari_hl_q(15 downto 0) when atari_hl_cs = '1' else
atari_vl_q(15 downto 0) when atari_vl_cs = '1' else
border_color_q(15 downto 0) when border_color_cs = '1' else
(others => 'Z');
video_mod_ta <= clut_ta_q or st_shift_mode_CS or falcon_shift_mode_CS or acp_vctr_CS or sys_ctr_CS or lof_CS or lwd_CS or HBE_CS or HDB_CS or
hde_CS or HBB_CS or HSS_CS or HHT_CS or atari_hh_CS or atari_vh_CS or atari_hl_CS or ATARI_VL_CS or VBE_CS or VDB_CS or VDE_CS or VBB_CS or
VSS_CS or VFT_CS or VCO_CS or vcntrl_cs;
video_mod_ta <= clut_ta_q or
st_shift_mode_cs or
falcon_shift_mode_cs or
acp_vctr_cs or
sys_ctr_cs or
lof_cs or
lwd_cs or
hbe_cs or
hdb_cs or
hde_cs or
hbb_cs or
hss_cs or
hht_cs or
atari_hh_cs or
atari_vh_cs or
atari_hl_cs or
atari_vl_cs or
vbe_cs or
vdb_cs or
vde_cs or
vbb_cs or
vss_cs or
vft_cs or
vco_cs or
vcntrl_cs;
-- VIDEO AUSGABE SETZEN
CLK17M_d <= not CLK17M_q;