📄 system_top.vhd
字号:
end component;
component interface_422 isport ( clk : in std_logic; reset: in std_logic; data_out : out std_logic; dsp_ce0_n : in std_logic; dsp_awe_n : in std_logic; dsp_aoe_n : in std_logic;
dsp_a : in std_logic_vector(21 downto 2);
reg_0 : in std_logic_vector(31 downto 0); reg_1 : in std_logic_vector(31 downto 0); reg_2 : out std_logic_vector(31 downto 0); sram_ce1_n : out std_logic; sram_ce2 : out std_logic; sram_we_n : out std_logic; sram_oe_n : out std_logic; sram_addr : out std_logic_vector(19 downto 0); sram_addr20 : out std_logic; sram_d_in : in std_logic_vector(7 downto 0) );end component;
component comm_top isport ( clk : in std_logic; reset : in std_logic; rx : in std_logic;
dsp_are_n : in std_logic; addr_r : in std_logic_vector(4 downto 0); data_out : out std_logic_vector(7 downto 0); reg : in std_logic_vector(7 downto 0); tx : out std_logic );end component;
signal reg_0 : std_logic_vector(31 downto 0) := (others=>'0');signal reg_1 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_2 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_3 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_4 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_5 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_6 : std_logic_vector(31 downto 0) := (others=>'0');
signal reg_8 : std_logic_vector(31 downto 0) := (others=>'0');
signal vd : std_logic := '0';
signal reset : std_logic := '0';
signal reset_fsm_sdram : std_logic := '0';
signal start_ata : std_logic := '0';
signal ata_irq : std_logic := '0';
signal reset_data_src : std_logic := '0';
signal reset_buf : std_logic := '0';signal ccd_clk : std_logic := '0';signal ccd_data_in : std_logic_vector(15 downto 0) := (others=>'0');
signal fifo2sd_din : std_logic_vector(15 downto 0) := (others=>'0');
signal fifo2sd_wr_en : std_logic := '0';
signal fifo2sd_rd_en : std_logic := '0';
signal fifo2sd_full : std_logic := '0';
signal sd2fifo_en : std_logic := '0';
signal sd2fifo_empty : std_logic := '0';
signal sd2fifo_full : std_logic := '0';
signal fifo2ata_en : std_logic := '0';
signal fifo2ata_clk : std_logic := '0';
signal fifo2ata_d : std_logic_vector(15 downto 0) := (others=>'0');
signal dsp_d_in : std_logic_vector(31 downto 0) := (others=>'0');
signal sd_dq_in : std_logic_vector(15 downto 0) := (others=>'0');
signal sd_dq_out : std_logic_vector(15 downto 0) := (others=>'0');
signal sd_dq_tri : std_logic := '0';
signal sd_ck_tmp : std_logic := '0';
signal dd_in : std_logic_vector(15 downto 0) := (others=>'0');
signal fpga_dd_out : std_logic_vector(15 downto 0) := (others=>'0');
signal dd_tri : std_logic := '0';
signal fpga_diow_n : std_logic := '0';signal fpga_dior_n : std_logic := '0';signal fpga_da : std_logic_vector(2 downto 0) := (others=>'0');signal fpga_cs1_n : std_logic := '0';signal fpga_cs0_n : std_logic := '0';
signal sram_d_in : std_logic_vector(7 downto 0) := (others=>'0');
signal data_out_param : std_logic_vector(7 downto 0) := (others=>'0');
begin
inst_system_reg : system_regport map ( clk => clk,
reset => reset, dsp_a => dsp_a, dsp_ce0_n => dsp_ce0_n, dsp_awe_n => dsp_awe_n, dsp_d_in => dsp_d_in,
reg_0 => reg_0, reg_1 => reg_1,
reg_3 => reg_3, reg_4 => reg_4,
reg_5 => reg_5,
reg_6 => reg_6,
reg_8 => reg_8 );
inst_system_tri_io : system_tri_ioport map ( dsp_a => dsp_a,
dsp_d => dsp_d, dsp_d_in => dsp_d_in,
dsp_ce0_n => dsp_ce0_n, dsp_ce3_n => dsp_ce3_n, dsp_aoe_n => dsp_aoe_n, sd_dq => sd_dq, sd_dq_in => sd_dq_in, sd_dq_out => sd_dq_out, sd_dq_tri => sd_dq_tri, dd => dd, dd_in => dd_in,
fpga_dd_out => fpga_dd_out, reg_3 => reg_3, dd_tri => dd_tri,
sram_d => sram_d, sram_d_in => sram_d_in, reg_2 => reg_2,
data_out_param => data_out_param
);
inst_dsp_peri : dsp_periport map ( fpga_clk_50m => clk,
reset => reset, ata_irq => ata_irq, dsp_a => dsp_a(21 downto 6), dsp_ce0_n => dsp_ce0_n, dsp_ce1_n => dsp_ce1_n, dsp_ce2_n => dsp_ce2_n, dsp_aoe_n => dsp_aoe_n, dsp_awe_n => dsp_awe_n, dsp_gpio_0 => dsp_gpio_0, dsp_gpio_1 => dsp_gpio_1, dsp_gpio_2 => dsp_gpio_2, dsp_gpio_6 => dsp_gpio_6, dsp_gpio_7 => dsp_gpio_7, dsp_int0_n => dsp_int0_n, dsp_int1_n => dsp_int1_n, dsp_int2_n => dsp_int2_n, dsp_int3_n => dsp_int3_n, dsp_nmi_n => dsp_nmi_n, dsp_reset_n => dsp_reset_n, dsp_ardy => dsp_ardy, dsp_hcs_n => dsp_hcs_n, dsp_hold_n => dsp_hold_n, flash_rst_n => flash_rst_n, flash_ce_n => flash_ce_n, flash_oe_n => flash_oe_n, flash_we_n => flash_we_n, flash_wp_n => flash_wp_n, sram_hce1_n => sram_hce1_n, sram_hce2 => sram_hce2, sram_hoe_n => sram_hoe_n, sram_hwe_n => sram_hwe_n, sram_hble_n => sram_hble_n, sram_hbhe_n => sram_hbhe_n, sram_lce1_n => sram_lce1_n, sram_lce2 => sram_lce2, sram_loe_n => sram_loe_n, sram_lwe_n => sram_lwe_n, sram_lble_n => sram_lble_n, sram_lbhe_n => sram_lbhe_n, adv202_reset_n => adv202_reset_n, adv202_cs_n => adv202_cs_n, adv202_wr_n => adv202_wr_n, adv202_rd_n => adv202_rd_n, adv202_dack0_n => adv202_dack0_n, adv202_dack1_n => adv202_dack1_n, adv202_irq_n => adv202_irq_n, adv202_clk => adv202_clk );
inst_syscon : syscon
port map (
clk => clk, vd => vd,
reg_5 => reg_5,
reg_6 => reg_6,
reset => reset, ata_reset_n => ata_reset_n,
start_ata => start_ata, reset_data_src => reset_data_src,
reset_buf => reset_buf, reset_fsm_sdram => reset_fsm_sdram
);
inst_data_src : data_srcport map (
reset => reset_data_src,
clk => clk, vd => vd, ccd_clk => ccd_clk, ccd_data_in => ccd_data_in );
inst_ping_pong_buffer : ping_pong_bufferport map ( reset => reset_buf, reg_4 => reg_4, clka => ccd_clk, clkb => clk, dina => ccd_data_in, doutb => fifo2sd_din, oe => fifo2sd_wr_en );
inst_fifo2sd : fifo2sdport map ( din => fifo2sd_din, rd_clk => clk, rd_en => fifo2sd_rd_en, rst => reset_buf, wr_clk => clk, wr_en => fifo2sd_wr_en, dout => sd_dq_out, empty => open, full => open, prog_empty => open, prog_full => fifo2sd_full );
inst_fsm_sdram : fsm_sdramport map ( sys_clk => clk, sys_rst => reset_fsm_sdram, sys_start => reset_buf, fifo2sd_full => fifo2sd_full, fifo2sd_en => fifo2sd_rd_en, sd2fifo_empty => sd2fifo_empty, sd2fifo_en => sd2fifo_en, dq_tri_en => sd_dq_tri, sd_cke => sd_cke,
sd_ck => sd_ck_tmp, sd_cs_n => sd_cs_n, sd_ras_n => sd_ras_n, sd_cas_n => sd_cas_n, sd_we_n => sd_we_n, sd_dqm => sd_dqm, sd_ba => sd_ba, sd_a => sd_a );
sd_ck <= sd_ck_tmp;
inst_sd2fifo : sd2fifoport map ( din => sd_dq_in, rd_clk => fifo2ata_clk, rd_en => fifo2ata_en, rst => reset, wr_clk => sd_ck_tmp, wr_en => sd2fifo_en, dout => fifo2ata_d, empty => open, full => open, prog_empty => sd2fifo_empty, prog_full => sd2fifo_full );
inst_ata_ctrl : ata_ctrlport map ( -- SYSCON signals clk => clk, reset => reset, start_ata => start_ata, data_rdy => sd2fifo_full, ata_irq => ata_irq, -- DSP signals dsp_ce0_n => dsp_ce0_n, dsp_awe_n => dsp_awe_n, dsp_a => dsp_a, dsp_d_in => dsp_d_in, -- CTRL module data access signals fifo2ata => fifo2ata_d, fifo2ata_clk => fifo2ata_clk, fifo2ata_en => fifo2ata_en, -- ATA interface signals dd_out => fpga_dd_out, dd_in => dd_in, da => fpga_da, cs0_n => fpga_cs0_n, cs1_n => fpga_cs1_n, dior_n => fpga_dior_n, diow_n => fpga_diow_n,
dmack_n => dmack_n, dd_out_en => dd_tri );
inst_ata_mux : ata_muxport map ( dsp_awe_n => dsp_awe_n, dsp_are_n => dsp_are_n, dsp_ce3_n => dsp_ce3_n, dsp_a => dsp_a(6 downto 2), reg_3 => reg_3, fpga_diow_n => fpga_diow_n, fpga_dior_n => fpga_dior_n, fpga_da => fpga_da, fpga_cs1_n => fpga_cs1_n, fpga_cs0_n => fpga_cs0_n, diow_n => diow_n, dior_n => dior_n, da => da, cs1_n => cs1_n, cs0_n => cs0_n );
inst_interface_422 : interface_422port map ( clk => clk, reset => reset, data_out => data_out_422, dsp_ce0_n => dsp_ce0_n, dsp_awe_n => dsp_awe_n, dsp_aoe_n => dsp_aoe_n,
dsp_a => dsp_a,
reg_0 => reg_0, reg_1 => reg_1, reg_2 => reg_2, sram_ce1_n => sram_ce1_n, sram_ce2 => sram_ce2, sram_we_n => sram_we_n, sram_oe_n => sram_oe_n, sram_addr => sram_addr, sram_addr20 => sram_addr20, sram_d_in => sram_d_in );
inst_comm_top : comm_top
port map ( clk => clk, reset => reset, rx => rx,
dsp_are_n => dsp_are_n, addr_r => dsp_a(6 downto 2), data_out => data_out_param, reg => reg_8(7 downto 0), tx => tx );
end Behavioral;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -