⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg_bank.vhd

📁 Plasma IP Core 你可以利用这个组件在FPGA中设计MIPS结构的CPU
💻 VHD
📖 第 1 页 / 共 2 页
字号:
            DPRA3 => addr_read2(3),    -- Port B address[3] input bit            DPO   => data_out2B(i),    -- Port B 1-bit data output            SPO   => open              -- Port A 1-bit data output         );      end generate; --reg_loop      data_out1 <= data_out1A when addr_read1(4)='0' else data_out1B;      data_out2 <= data_out2A when addr_read2(4)='0' else data_out2B;   end generate; --xilinx_16x1d   -- Option #4   -- Altera LPM_RAM_DP   -- Xilinx users may need to comment out this section!!!   altera_mem:   if memory_type = "ALTERA_LPM" generate      lpm_ram_dp_component1 : lpm_ram_dp      GENERIC MAP (         lpm_width => 32,         lpm_widthad => 5,         rden_used => "FALSE",         intended_device_family => "UNUSED",         lpm_indata => "REGISTERED",         lpm_wraddress_control => "REGISTERED",         lpm_rdaddress_control => "UNREGISTERED",         lpm_outdata => "UNREGISTERED",         use_eab => "ON",         lpm_type => "LPM_RAM_DP"      )      PORT MAP (         wren => write_enable,         wrclock => clk,         data => reg_dest_new,         rdaddress => addr_read1,         wraddress => addr_write,         q => data_out1      );      lpm_ram_dp_component2 : lpm_ram_dp      GENERIC MAP (         lpm_width => 32,         lpm_widthad => 5,         rden_used => "FALSE",         intended_device_family => "UNUSED",         lpm_indata => "REGISTERED",         lpm_wraddress_control => "REGISTERED",         lpm_rdaddress_control => "UNREGISTERED",         lpm_outdata => "UNREGISTERED",         use_eab => "ON",         lpm_type => "LPM_RAM_DP"      )      PORT MAP (         wren => write_enable,         wrclock => clk,         data => reg_dest_new,         rdaddress => addr_read2,         wraddress => addr_write,         q => data_out2      );   end generate; --altera_mem   -- Option #5--   dual_port_mem_coregen:--   if memory_type = "DUAL_PORT_XILINX" generate--      reg_file_dp_ram_1: reg_file_dp_ram--        port map (--          addra => addr_read1,--          addrb => addr_write,--          clka  => clk,--          clkb  => clk,--          dinb  => reg_dest_new,--          douta => data_out1,--          web   => write_enable);----      reg_file_dp_ram_2: reg_file_dp_ram--        port map (--          addra => addr_read2,--          addrb => addr_write,--          clka  => clk,--          clkb  => clk,--          dinb  => reg_dest_new,--          douta => data_out2,--          web   => write_enable);--   end generate; --dual_port_mem--   dual_port_mem_xc4000xla: if memory_type = "DUAL_PORT_XILINX_XC4000XLA" generate--     reg_file_dp_ram_1: reg_file_dp_ram_xc4000xla--       port map (--         A      => addr_write,--         DI     => reg_dest_new,--         WR_EN  => write_enable,--         WR_CLK => clk,--         DPRA   => addr_read1,--         SPO    => open,--         DPO    => data_out1);--     --     reg_file_dp_ram_2: reg_file_dp_ram_xc4000xla--       port map (--         A      => addr_write,--         DI     => reg_dest_new,--         WR_EN  => write_enable,--         WR_CLK => clk,--         DPRA   => addr_read2,--         SPO    => open,--         DPO    => data_out2);--   end generate; --dual_port_mem   -- Option #6   -- Generic Two-Port Synchronous RAM   -- generic_tpram can be obtained from:   -- http://www.opencores.org/cvsweb.shtml/generic_memories/   -- Supports ASICs (Artisan, Avant, and Virage) and Xilinx FPGA--   generic_mem:--   if memory_type = "OPENCORES_MEM" generate--      bank1 : generic_tpram port map (--         clk_a  => clk,--         rst_a  => '0',--         ce_a   => '1',--         we_a   => '0',--         oe_a   => '1',--         addr_a => addr_read1,--         di_a   => ZERO,--         do_a   => data_out1,----         clk_b  => clk,--         rst_b  => '0',--         ce_b   => '1',--         we_b   => write_enable,--         oe_b   => '0',--         addr_b => addr_write,--         di_a   => reg_dest_new);----      bank2 : generic_tpram port map (--         clk_a  => clk,--         rst_a  => '0',--         ce_a   => '1',--         we_a   => '0',--         oe_a   => '1',--         addr_a => addr_read2,--         di_a   => ZERO,--         do_a   => data_out2,----         clk_b  => clk,--         rst_b  => '0',--         ce_b   => '1',--         we_b   => write_enable,--         oe_b   => '0',--         addr_b => addr_write,--         di_a   => reg_dest_new);--   end generate; --generic_mem   -- Option #7   -- Xilinx mode using four 16x16 banks--   xilinx_mem:--   if memory_type = "XILINX" generate--      bank1_high: ramb4_s16_s16 port map (--         clka  => clk,--         rsta  => sig_false,--         addra => addr_read1,--         dia   => zero_sig,--         ena   => sig_true,--         wea   => sig_false,--         doa   => data_out1(31 downto 16),----         clkb  => clk,--         rstb  => sig_false,--         addrb => addr_write,--         dib   => reg_dest_new(31 downto 16),--         enb   => sig_true,--         web   => write_enable);----      bank1_low: ramb4_s16_s16 port map (--         clka  => clk,--         rsta  => sig_false,--         addra => addr_read1,--         dia   => zero_sig,--         ena   => sig_true,--         wea   => sig_false,--         doa   => data_out1(15 downto 0),----         clkb  => clk,--         rstb  => sig_false,--         addrb => addr_write,--         dib   => reg_dest_new(15 downto 0),--         enb   => sig_true,--         web   => write_enable);----      bank2_high: ramb4_s16_s16 port map (--         clka  => clk,--         rsta  => sig_false,--         addra => addr_read2,--         dia   => zero_sig,--         ena   => sig_true,--         wea   => sig_false,--         doa   => data_out2(31 downto 16),----         clkb  => clk,--         rstb  => sig_false,--         addrb => addr_write,--         dib   => reg_dest_new(31 downto 16),--         enb   => sig_true,--         web   => write_enable);----      bank2_low: ramb4_s16_s16 port map (--         clka  => clk,--         rsta  => sig_false,--         addra => addr_read2,--         dia   => zero_sig,--         ena   => sig_true,--         wea   => sig_false,--         doa   => data_out2(15 downto 0),----         clkb  => clk,--         rstb  => sig_false,--         addrb => addr_write,--         dib   => reg_dest_new(15 downto 0),--         enb   => sig_true,--         web   => write_enable);--   end generate; --xilinx_memend; --architecture ram_block

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -