diff --git a/projects/mips_sys/sim/tb_mips_sys_emac.fdo b/projects/mips_sys/sim/tb_mips_sys_emac.fdo new file mode 100644 index 0000000..a55a471 --- /dev/null +++ b/projects/mips_sys/sim/tb_mips_sys_emac.fdo @@ -0,0 +1,116 @@ +## NOTE: Do not edit this file. +## +vlib work +# Configs +vcom -explicit -93 "../src/sdram_config_sim.vhd" + +# Packages +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_types.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_instr.vhd" +vcom -explicit -93 "../../../lib/FIFO/src/fifo_ctrl_pkg.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/sdram_types.vhd" +vcom -explicit -93 "../../../lib/misc/utils_pkg.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/mt46v16m16.vhd" + +# RAMs +vcom -explicit -93 "../../../lib/misc/dpram_2w2r.vhd" +vcom -explicit -93 "../../../lib/misc/dpram_1w1r.vhd" + +# FIFOS +vcom -explicit -93 "../../../lib/FIFO/src/gray_counter.vhd" +vcom -explicit -93 "../../../lib/FIFO/src/fifo_sync_ctrl.vhd" +vcom -explicit -93 "../../../lib/FIFO/src/fifo_sync.vhd" +vcom -explicit -93 "../../../lib/FIFO/src/fifo_async_ctrl.vhd" +vcom -explicit -93 "../../../lib/FIFO/src/fifo_async.vhd" + +# CPU +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_reg.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_shifter.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_alu.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_bcu.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_pipeline.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_muldiv.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_cop.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_dcache.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_icache.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_biu.vhd" +vcom -explicit -93 "../../../lib/CPUs/MIPS/src/core/mips_top.vhd" +vcom -explicit -93 "../src/bootloader.ROM.vhd" +vcom -explicit -93 "../../../lib/misc/rom_wb.vhd" + +# VGA +vcom -explicit -93 "../../../lib/VGA_ctrl/src/fonts/char_rom_c64.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/vga_types.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/char_gen.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/vga_sync.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/vga_timing.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/vga_backend.vhd" +vcom -explicit -93 "../../../lib/VGA_ctrl/src/vga_frontend64.vhd" + +# UART +vcom -explicit -93 "../../../lib/uart/bbfifo_16x8.vhd" +vcom -explicit -93 "../../../lib/uart/kcuart_rx.vhd" +vcom -explicit -93 "../../../lib/uart/kcuart_tx.vhd" +vcom -explicit -93 "../../../lib/uart/uart_rx.vhd" +vcom -explicit -93 "../../../lib/uart/uart_tx.vhd" +vcom -explicit -93 "../../../lib/uart/uart_wb.vhd" + +# PS2 +vcom -explicit -93 "../../../lib/ps2_port/src/debounce.vhd" +vcom -explicit -93 "../../../lib/ps2_port/src/ps2_core.vhd" +vcom -explicit -93 "../../../lib/ps2_port/src/ps2_phy_virtex.vhd" +vcom -explicit -93 "../../../lib/ps2_port/src/ps2_wb.vhd" + +# GPIO +vcom -explicit -93 "../../../lib/misc/gpio_wb.vhd" + +# LCD +vcom -explicit -93 "../../../lib/misc/lcd_port.vhd" + +# Flash and USB +vcom -explicit -93 "../../../lib/misc/async_types.vhd" +vcom -explicit -93 "../../../lib/misc/async_port_wb.vhd" +vcom -explicit -93 "../../../lib/misc/flash_port_wb.vhd" +vcom -explicit -93 "../src/async_defs_sim.vhd" + +# Sync SRAM +vcom -explicit -93 "../../../lib/SSRAM/src/package_utility.vhd" +vcom -explicit -93 "../../../lib/SSRAM/src/CY7C1354B.vhd" +vcom -explicit -93 "../../../lib/SSRAM/src/ssram_port_wb.vhd" + +# SDRAM +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/sdram_cmd.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/ddr_phy_virtex4.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl_top.vhd" +vcom -explicit -93 "../../../lib/SDRAM/ddr_sdr_v1_5/src/sdram_ctrl_frontend64_wb.vhd" + +# AC-97 +vcom -explicit -93 "../../../lib/misc/singleshot.vhd" +vcom -explicit -93 "../../../lib/ac97_ctrl/src/core/ac_out.vhd" +vcom -explicit -93 "../../../lib/ac97_ctrl/src/core/ac_in.vhd" +vcom -explicit -93 "../../../lib/ac97_ctrl/src/core/ac_io.vhd" +vcom -explicit -93 "../../../lib/ac97_ctrl/src/core/ac97_wb.vhd" + +# Ethernet MAC +vcom -explicit -93 "../../../lib/emac/src/emac_types.vhd" +vcom -explicit -93 "../../../lib/emac/src/piso.vhd" +vcom -explicit -93 "../../../lib/emac/src/sipo.vhd" +vcom -explicit -93 "../../../lib/emac/src/crc32.vhd" +vcom -explicit -93 "../../../lib/emac/src/emac_rx.vhd" +vcom -explicit -93 "../../../lib/emac/src/emac_tx.vhd" +vcom -explicit -93 "../../../lib/emac/src/emac_top_jb.vhd" + +# Clock Generator +vcom -explicit -93 "../src/clockgen_virtex4.vhd" + +# Top and TB +vcom -explicit -93 "../src/mips_sys_sim.vhd" +vcom -explicit -93 "../src/tb_mips_sys.vhd" + +vsim -t 1ps -lib work tb_mips_sys +do {tb_mips_sys_emac.wdo} +view wave +view structure +view signals +run 40 ms diff --git a/projects/mips_sys/sim/tb_mips_sys_emac.wdo b/projects/mips_sys/sim/tb_mips_sys_emac.wdo new file mode 100644 index 0000000..3a549c2 --- /dev/null +++ b/projects/mips_sys/sim/tb_mips_sys_emac.wdo @@ -0,0 +1,185 @@ +onerror {resume} +quietly WaveActivateNextPane {} 0 +add wave -noupdate -divider UUT +add wave -noupdate -format Logic /tb_mips_sys/uut/rst_o +add wave -noupdate -format Logic /tb_mips_sys/uut/nmi +add wave -noupdate -format Logic /tb_mips_sys/uut/rst_in +add wave -noupdate -format Logic /tb_mips_sys/sys_rst_n_in +add wave -noupdate -format Logic /tb_mips_sys/sys_clk_in +add wave -noupdate -format Literal /tb_mips_sys/dip +add wave -noupdate -format Literal /tb_mips_sys/btn +add wave -noupdate -format Literal /tb_mips_sys/led +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_rstn +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_mdc +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_mdio +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_int +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_rx_clk +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_rx_dv +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_rx_er +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_phy_rx +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_tx_clk +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_tx_en +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_tx_er +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_phy_tx +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_gtx_clk +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_crs +add wave -noupdate -format Logic /tb_mips_sys/sys_phy_col +add wave -noupdate -format Logic /tb_mips_sys/sys_ps2_clk +add wave -noupdate -format Logic /tb_mips_sys/sys_ps2_data +add wave -noupdate -format Logic /tb_mips_sys/sys_rx +add wave -noupdate -format Logic /tb_mips_sys/sys_tx +add wave -noupdate -format Literal /tb_mips_sys/sys_lcd_d +add wave -noupdate -format Logic /tb_mips_sys/sys_lcd_e +add wave -noupdate -format Logic /tb_mips_sys/sys_lcd_rs +add wave -noupdate -format Logic /tb_mips_sys/sys_lcd_rw +add wave -noupdate -format Logic /tb_mips_sys/refresh +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_clk_fb +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_clk_p +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_clk_n +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_cke_q +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_cs_qn +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_ras_qn +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_cas_qn +add wave -noupdate -format Logic /tb_mips_sys/sys_sdr_we_qn +add wave -noupdate -format Literal /tb_mips_sys/sys_sdr_dqs_q +add wave -noupdate -format Literal /tb_mips_sys/sys_sdr_ba_q +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_sdr_a_q +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_sdr_data +add wave -noupdate -format Literal /tb_mips_sys/sys_sdr_dm_q +add wave -noupdate -format Literal /tb_mips_sys/sys_error +add wave -noupdate -format Logic /tb_mips_sys/uut/clk_o +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/addr_o +add wave -noupdate -format Literal /tb_mips_sys/uut/sel_o +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/mdat_i +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/mdat_o +add wave -noupdate -format Logic /tb_mips_sys/uut/we_o +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_o +add wave -noupdate -format Logic /tb_mips_sys/uut/stb_o +add wave -noupdate -format Logic /tb_mips_sys/uut/ack_i +add wave -noupdate -format Logic /tb_mips_sys/uut/srdy_i +add wave -noupdate -format Logic /tb_mips_sys/uut/mrdy_o +add wave -noupdate -format Literal /tb_mips_sys/uut/mem_area +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_flash +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_usb +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_sdram +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_rom +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_gpio +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_uart0 +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_uart1 +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_uart2 +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_vga +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_ssram +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_ac97 +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_i_ps2 +add wave -noupdate -format Logic /tb_mips_sys/uut/clk_o +add wave -noupdate -divider {Clock Gen} +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/rst_in +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/clk_in +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sys_clk_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/cpu_clk_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/vga_clk_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr0_clk_fb_in +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr0_clk0_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr0_clk270_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr1_clk0_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr1_clk270_out +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sys_rst_out +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_clockgen/reset_cnt +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_clockgen/reset_pipe0 +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_clockgen/reset_pipe1 +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/vga_fx_lock +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sys_fx_lock +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr0_lock +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/sdr1_lock +add wave -noupdate -divider Arbiter +add wave -noupdate -format Literal /tb_mips_sys/uut/arb_idx +add wave -noupdate -format Literal /tb_mips_sys/uut/arb_req +add wave -noupdate -format Literal /tb_mips_sys/uut/arb_gnt +add wave -noupdate -divider {Ethernet MAC} +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/eth_tx_reg +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/clk_i +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/rst_i +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/int_o +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/cyc_i +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/stb_i +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_emac_jb/sel_i +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/we_i +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/ack_o +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/srdy_o +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/mrdy_i +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/addr_i +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/dat_i +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/dat_o +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/rx_int_en +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/tx_int_en +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/irq_rx +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/irq_tx +add wave -noupdate -divider {EMAC TX} +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/inst_emac_tx/din_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_tx/din +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_tx/ctrl_in +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_tx/ctrl_out +add wave -noupdate -divider {EMAC RX} +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_emac_jb/inst_emac_rx/dout_vld +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_rx/dout +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_rx/ctrl_in +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/inst_emac_jb/inst_emac_rx/ctrl_out +add wave -noupdate -divider {CPU Master} +add wave -noupdate -format Logic /tb_mips_sys/uut/clk_o +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/mdat_i +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/mdat_o_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/mrdy_o_cpu +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/addr_o_cpu +add wave -noupdate -format Literal /tb_mips_sys/uut/sel_o_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/we_o_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/cyc_o_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/stb_o_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/srdy_i_cpu +add wave -noupdate -format Logic /tb_mips_sys/uut/ack_i_cpu +add wave -noupdate -divider Flash +add wave -noupdate -format Logic /tb_mips_sys/uut/sys_flash_ac97_rstn +add wave -noupdate -format Logic /tb_mips_sys/uut/clk_o +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_flash_port/as +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_flash_port/s +add wave -noupdate -format Logic /tb_mips_sys/uut/sys_flash_ssram_we_n +add wave -noupdate -format Logic /tb_mips_sys/uut/sys_flash_ssram_oe_n +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_flash_ssram_d +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/sys_flash_ssram_a +add wave -noupdate -format Logic /tb_mips_sys/sys_flash_ce +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/flash_a +add wave -noupdate -format Literal -radix hexadecimal /tb_mips_sys/uut/flash_do +add wave -noupdate -format Logic /tb_mips_sys/uut/flash_oe_n +add wave -noupdate -format Logic /tb_mips_sys/uut/flash_we_n +add wave -noupdate -format Logic /tb_mips_sys/uut/flash_d_drv +add wave -noupdate -format Logic /tb_mips_sys/uut/flash_bsy +add wave -noupdate -divider {MIPS TOP} +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_mips_top/inst_pipeline/dmem_addr +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_mips_top/inst_pipeline/dmem_din +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_mips_top/inst_pipeline/dmem_dout +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_mips_top/inst_pipeline/pc +add wave -noupdate -format Logic /tb_mips_sys/uut/clk_o +add wave -noupdate -format Literal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/hdu +add wave -noupdate -format Literal /tb_mips_sys/uut/inst_mips_top/inst_pipeline/sdu +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_mips_top/inst_pipeline/cpu_run +add wave -noupdate -format Literal -radix hexadecimal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/inst_reg_dual/reg_mem +add wave -noupdate -format Logic /tb_mips_sys/uut/inst_clockgen/cpu_clk_out +add wave -noupdate -format Literal -radix hexadecimal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/id_stage +add wave -noupdate -format Literal -radix hexadecimal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/ex_stage +add wave -noupdate -format Literal -radix hexadecimal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/mem_stage +add wave -noupdate -format Literal -radix hexadecimal -expand /tb_mips_sys/uut/inst_mips_top/inst_pipeline/wb_stage +TreeUpdate [SetDefaultTree] +WaveRestoreCursors {{Cursor 2} {2312967085 ps} 0} {{Cursor 100} {4871595869 ps} 0} {{Cursor 3} {4495154370 ps} 0} {{Cursor 7} {6077658830 ps} 0} +configure wave -namecolwidth 187 +configure wave -valuecolwidth 64 +configure wave -justifyvalue left +configure wave -signalnamewidth 1 +configure wave -snapdistance 10 +configure wave -datasetprefix 0 +configure wave -rowmargin 4 +configure wave -childrowmargin 2 +configure wave -gridoffset 0 +configure wave -gridperiod 100 +configure wave -griddelta 40 +configure wave -timeline 1 +update +WaveRestoreZoom {0 ps} {41227735500 ps}