From 795ca6b38275f5603574902ceab34b7f69e7b7fe Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 28 Mar 2021 11:07:17 +0000 Subject: [PATCH] - added git-svn-id: http://moon:8086/svn/vhdl/trunk@1544 cc03376c-175c-47c8-b038-4cd826a8556b --- .../mips_sys/ghdl/hello_sim.elf.flash.bin | Bin 0 -> 31296 bytes projects/mips_sys/ghdl/tb_mips_sys.gtkw | 0 projects/mips_sys/ghdl/tb_mips_sys.make | 109 ++++++++++++++++++ projects/mips_sys/src/mips_sys_sim.vhd | 22 +++- projects/mips_sys/src/tb_mips_sys.vhd | 12 +- 5 files changed, 137 insertions(+), 6 deletions(-) create mode 100644 projects/mips_sys/ghdl/hello_sim.elf.flash.bin create mode 100644 projects/mips_sys/ghdl/tb_mips_sys.gtkw create mode 100644 projects/mips_sys/ghdl/tb_mips_sys.make diff --git a/projects/mips_sys/ghdl/hello_sim.elf.flash.bin b/projects/mips_sys/ghdl/hello_sim.elf.flash.bin new file mode 100644 index 0000000000000000000000000000000000000000..de625dc51e5b362cd29ab0742847e8e6b5523675 GIT binary patch literal 31296 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 B3rhe1 literal 0 HcmV?d00001 diff --git a/projects/mips_sys/ghdl/tb_mips_sys.gtkw b/projects/mips_sys/ghdl/tb_mips_sys.gtkw new file mode 100644 index 0000000..e69de29 diff --git a/projects/mips_sys/ghdl/tb_mips_sys.make b/projects/mips_sys/ghdl/tb_mips_sys.make new file mode 100644 index 0000000..4738f64 --- /dev/null +++ b/projects/mips_sys/ghdl/tb_mips_sys.make @@ -0,0 +1,109 @@ +# ----------------------------------------------------------- +include $(VHDL_HOME)/make/defs.mk +# ----------------------------------------------------------- +include $(LIB_PATH)/CPUs/MIPS/ghdl/mips_core.inc +include $(LIB_PATH)/FIFO/ghdl/fifo_sync.inc +include $(LIB_PATH)/FIFO/ghdl/fifo_async.inc +include $(LIB_PATH)/emac/ghdl/emac_jbus.inc + +# Configs +SRCS += $(LIB_PATH)/misc/utils_pkg.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_const.vhd +SRCS += $(LIB_PATH)/models/memory/sdram/mt46v16m16/mt46v16m16.vhd +SRCS += ../src/sdram_config_sim.vhd + +# Clock Generator +SRCS += ../src/clockgen.vhd + +# UART +SRCS += $(LIB_PATH)/uart/src/uart_types.vhd +SRCS += $(LIB_PATH)/uart/src/sim/uart.vhd +SRCS += $(LIB_PATH)/uart/src/uart_wb.vhd + +# MIPS +SRCS += $(MIPS_CORE_SRCS) + +# ROM +#vcom -explicit -93 "Z:/work/repos/mips/src/bootloader/test.ROM.vhd" +SRCS += ../src/bootloader_flash.ROM.vhd +SRCS += $(LIB_PATH)/JBUS/memory/src/rom_wb.vhd + +# RAMS +SRCS += $(LIB_PATH)/rams/sim/src/dpram_1w1r2c_ro.vhd + +# VGA +SRCS += $(LIB_PATH)/VGA_ctrl/src/fonts/char_rom_c64.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/vga_types.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/char_gen.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/vga_sync.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/vga_timing.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/vga_backend.vhd +SRCS += $(LIB_PATH)/VGA_ctrl/src/vga_frontend64.vhd + +# UART +SRCS += $(LIB_PATH)/uart/src/uart_types.vhd +SRCS += $(LIB_PATH)/uart/src/sim/uart.vhd +SRCS += $(LIB_PATH)/uart/src/uart_wb.vhd + +# PS2 +SRCS += $(LIB_PATH)/ps2_port/src/debounce.vhd +SRCS += $(LIB_PATH)/ps2_port/src/ps2_core.vhd +SRCS += $(LIB_PATH)/ps2_port/src/ps2_phy_virtex.vhd +SRCS += $(LIB_PATH)/ps2_port/src/ps2_wb.vhd + +# GPIO +SRCS += $(LIB_PATH)/JBUS/gpio/src/gpio_wb.vhd + +# LCD +SRCS += $(LIB_PATH)/misc/lcd_port.vhd + +# Flash and USB +SRCS += $(LIB_PATH)/JBUS/async_port/src/async_types.vhd +SRCS += $(LIB_PATH)/JBUS/async_port/src/async_port_wb.vhd +SRCS += $(LIB_PATH)/JBUS/flash_port/src/flash_port_wb.vhd +SRCS += ../src/async_defs_sim.vhd + +# Sync SRAM +SRCS += $(LIB_PATH)/SSRAM/src/package_utility.vhd +SRCS += $(LIB_PATH)/SSRAM/src/CY7C1354B.vhd +SRCS += $(LIB_PATH)/SSRAM/src/ssram_port_wb.vhd + +# SDRAM +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_types.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/ddr_clk_virtex4.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/ddr_phy_virtex4.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_cmd.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl_top.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl_frontend_wb64.vhd +SRCS += $(LIB_PATH)/SDRAM/ddr_sdr_v1_5/src/ctrl_ddr_wb64.vhd + +# AC-97 +SRCS += $(LIB_PATH)/misc/singleshot.vhd +SRCS += $(LIB_PATH)/ac97_ctrl/src/core/ac_out.vhd +SRCS += $(LIB_PATH)/ac97_ctrl/src/core/ac_in.vhd +SRCS += $(LIB_PATH)/ac97_ctrl/src/core/ac_io.vhd +SRCS += $(LIB_PATH)/ac97_ctrl/src/core/ac97_wb.vhd + +# Ethernet MAC +SRCS += $(EMAC_JBUS_SRCS) + +# Async port +SRCS += $(LIB_PATH)/JBUS/async_port/src/async_types.vhd +SRCS += $(LIB_PATH)/JBUS/async_port/src/async_port_wb.vhd +SRCS += ../src/async_defs.vhd + +# Top and TB +SRCS += ../src/mips_sys_sim.vhd +SRCS += ../src/tb_mips_sys.vhd + +# Compile +TARGET := tb_mips_sys +ENTITY = tb_mips_sys +RUN_TIME := 10ms +WITH_VCD := y + +GHDL_OPTS := -P$(ROOT_PATH)/Common/sim/build/unisim/unisim -fsynopsys -fexplicit + +include $(VHDL_HOME)/make/ghdl.mk + diff --git a/projects/mips_sys/src/mips_sys_sim.vhd b/projects/mips_sys/src/mips_sys_sim.vhd index 58f9a65..f6c5444 100644 --- a/projects/mips_sys/src/mips_sys_sim.vhd +++ b/projects/mips_sys/src/mips_sys_sim.vhd @@ -193,7 +193,8 @@ ARCHITECTURE behavior OF mips_sys IS signal ps2_data_rx : std_logic; signal ps2_clk_tx : std_logic; signal ps2_data_tx : std_logic; - + signal gmii_clk : std_logic; + -- Arbiter constant ARB_MAX_MASTER : natural := 2; signal arb_idx : natural range 0 to ARB_MAX_MASTER-1; @@ -369,7 +370,7 @@ BEGIN sys_flash_ac97_rstn <= ac97_rstn and flash_rstn; vga_ce <= not vga_rst; - + sys_phy_gtx_clk <= gmii_clk; sys_flash_ssram_out: process(CLK_O) begin @@ -838,6 +839,21 @@ inst_clocken_vga : entity work.clockgen clk_out => vga_clk ); +inst_clockgen_gmii : entity work.clockgen + GENERIC MAP + ( + clk_in_freq => sys_freq_in, + clk_out_freq => 125.0 + ) + PORT MAP + ( + -- Clocks and Reset + rst_in => rst_in, + clk_in => sys_clk_in, + rst_out => open, + clk_out => gmii_clk + ); + inst_sdram_ctrl_wb64 : entity work.ctrl_ddr_wb64 GENERIC MAP ( @@ -1022,7 +1038,7 @@ inst_emac_jb : entity work.emac_top_jb mii_tx_en => sys_phy_tx_en, mii_tx_er => sys_phy_tx_er, mii_tx => sys_phy_tx, - mii_gtx_clk => sys_phy_gtx_clk, + mii_gtx_clk => gmii_clk, mii_crs => sys_phy_crs, mii_col => sys_phy_col diff --git a/projects/mips_sys/src/tb_mips_sys.vhd b/projects/mips_sys/src/tb_mips_sys.vhd index 93c2acf..8a45d78 100644 --- a/projects/mips_sys/src/tb_mips_sys.vhd +++ b/projects/mips_sys/src/tb_mips_sys.vhd @@ -139,7 +139,10 @@ ARCHITECTURE behavior OF tb_mips_sys IS signal ac_left : unsigned(17 downto 0) := X"0000" & "00"; signal ac_right : unsigned(17 downto 0) := X"0000" & "01"; signal ac_synced : std_logic; - + + signal slv_flash_ssram_d : STD_LOGIC_VECTOR(sys_flash_ssram_d'left downto sys_flash_ssram_d'right); + signal slv_ssram_dp : STD_LOGIC_VECTOR(sys_ssram_dp'left downto sys_ssram_dp'right); + BEGIN uut: entity work.mips_sys @@ -243,11 +246,14 @@ uut: entity work.mips_sys sys_phy_crs <= '0'; sys_phy_col <= '0'; + slv_flash_ssram_d <= STD_LOGIC_VECTOR(sys_flash_ssram_d); + slv_ssram_dp <= STD_LOGIC_VECTOR(sys_ssram_dp); + inst_ssram : entity work.cy7c1354 PORT MAP ( - Dq => STD_LOGIC_VECTOR(sys_flash_ssram_d), -- Data I/O - Dpq => STD_LOGIC_VECTOR(sys_ssram_dp), -- Data I/O + Dq => slv_flash_ssram_d, -- Data I/O + Dpq => slv_ssram_dp, -- Data I/O Addr => STD_LOGIC_VECTOR(sys_flash_ssram_a(18 downto 1)), -- Address Mode => sys_ssram_mode, -- Burst Mode Clk => sys_ssram_clk, -- Clk