From f087dcd7187c7227dc1d6b0960ecc2a5f149bc9d Mon Sep 17 00:00:00 2001 From: astoria-d Date: Sat, 21 Sep 2013 12:28:50 +0900 Subject: [PATCH] modelsim env setup ok!! now rtl level simulation goes ok. --- de1_nes/.gitignore | 10 +- de1_nes/cpu/decoder.vhd | 4 + de1_nes/de1_nes.pin | 254 ++++++++++----------- de1_nes/de1_nes.qsf | 1 + de1_nes/de1_nes.qws | 33 +++ de1_nes/de1_nes.vhd | 2 +- .../modelsim/de1_nes_run_msim_gate_vhdl.do | 17 ++ .../modelsim/de1_nes_run_msim_rtl_vhdl.do | 53 +++++ 8 files changed, 245 insertions(+), 129 deletions(-) create mode 100644 de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do create mode 100644 de1_nes/simulation/modelsim/de1_nes_run_msim_rtl_vhdl.do diff --git a/de1_nes/.gitignore b/de1_nes/.gitignore index 686a976..1b61416 100644 --- a/de1_nes/.gitignore +++ b/de1_nes/.gitignore @@ -8,7 +8,15 @@ *.html db/* no-need/* -simulation/* +simulation/modelsim/gate_work/* +simulation/modelsim/rtl_work/* +simulation/modelsim/*.do.bak* +simulation/modelsim/msim_transcript +simulation/modelsim/*.vho +simulation/modelsim/*.xrf +simulation/modelsim/*.sdo +simulation/modelsim/modelsim.ini +simulation/modelsim/vsim.wlf undo_redo.txt *.work *.nes diff --git a/de1_nes/cpu/decoder.vhd b/de1_nes/cpu/decoder.vhd index c87be34..8603144 100644 --- a/de1_nes/cpu/decoder.vhd +++ b/de1_nes/cpu/decoder.vhd @@ -1013,6 +1013,10 @@ end procedure; -- end if; if (res_n = '0') then + --pc l/h is reset vector. + pcl_cmd <= "1110"; + pch_cmd <= "1110"; + next_cycle <= R0; elsif (set_clk'event and set_clk = '1' and res_n = '1') then d_print(string'("-")); diff --git a/de1_nes/de1_nes.pin b/de1_nes/de1_nes.pin index 71d4d14..878180a 100644 --- a/de1_nes/de1_nes.pin +++ b/de1_nes/de1_nes.pin @@ -75,23 +75,23 @@ Pin Name/Usage : Location : Dir. : I/O Standard : Voltage ------------------------------------------------------------------------------------------------------------- GND : A1 : gnd : : : : VCCIO3 : A2 : power : : 3.3V : 3 : -r[0] : A3 : output : 3.3-V LVTTL : : 3 : N +GND* : A3 : : : : 3 : GND* : A4 : : : : 3 : GND* : A5 : : : : 3 : GND* : A6 : : : : 3 : GND* : A7 : : : : 3 : -GND* : A8 : : : : 3 : +dbg_d_io[3] : A8 : output : 3.3-V LVTTL : : 3 : N GND* : A9 : : : : 3 : GND* : A10 : : : : 3 : -vga_clk : A11 : output : 3.3-V LVTTL : : 3 : N +GND* : A11 : : : : 3 : GND+ : A12 : : : : 4 : GND* : A13 : : : : 4 : GND* : A14 : : : : 4 : -GND* : A15 : : : : 4 : -dbg_ppu_clk : A16 : output : 3.3-V LVTTL : : 4 : N +dbg_addr[15] : A15 : output : 3.3-V LVTTL : : 4 : N +GND* : A16 : : : : 4 : GND* : A17 : : : : 4 : GND* : A18 : : : : 4 : -GND* : A19 : : : : 4 : +r[0] : A19 : output : 3.3-V LVTTL : : 4 : N GND* : A20 : : : : 4 : VCCIO4 : A21 : power : : 3.3V : 4 : GND : A22 : gnd : : : : @@ -99,86 +99,86 @@ VCCIO1 : AA1 : power : : 3.3V GND : AA2 : gnd : : : : GND* : AA3 : : : : 8 : GND* : AA4 : : : : 8 : -g[0] : AA5 : output : 3.3-V LVTTL : : 8 : N -g[3] : AA6 : output : 3.3-V LVTTL : : 8 : N -GND* : AA7 : : : : 8 : -dbg_addr[3] : AA8 : output : 3.3-V LVTTL : : 8 : N +GND* : AA5 : : : : 8 : +GND* : AA6 : : : : 8 : +dbg_vram_ad[4] : AA7 : output : 3.3-V LVTTL : : 8 : N +GND* : AA8 : : : : 8 : GND* : AA9 : : : : 8 : GND* : AA10 : : : : 8 : -joypad2[3] : AA11 : input : 3.3-V LVTTL : : 8 : N -joypad1[2] : AA12 : input : 3.3-V LVTTL : : 7 : N +GND* : AA11 : : : : 8 : +GND* : AA12 : : : : 7 : GND* : AA13 : : : : 7 : GND* : AA14 : : : : 7 : -h_sync_n : AA15 : output : 3.3-V LVTTL : : 7 : N -GND* : AA16 : : : : 7 : -dbg_addr[11] : AA17 : output : 3.3-V LVTTL : : 7 : N +GND* : AA15 : : : : 7 : +b[0] : AA16 : output : 3.3-V LVTTL : : 7 : N +joypad1[2] : AA17 : input : 3.3-V LVTTL : : 7 : N GND* : AA18 : : : : 7 : -joypad2[6] : AA19 : input : 3.3-V LVTTL : : 7 : N +dbg_addr[5] : AA19 : output : 3.3-V LVTTL : : 7 : N GND* : AA20 : : : : 7 : GND : AA21 : gnd : : : : VCCIO6 : AA22 : power : : 3.3V : 6 : GND : AB1 : gnd : : : : VCCIO8 : AB2 : power : : 3.3V : 8 : -joypad1[3] : AB3 : input : 3.3-V LVTTL : : 8 : N -GND* : AB4 : : : : 8 : +GND* : AB3 : : : : 8 : +h_sync_n : AB4 : output : 3.3-V LVTTL : : 8 : N GND* : AB5 : : : : 8 : -joypad1[5] : AB6 : input : 3.3-V LVTTL : : 8 : N -dbg_d_io[3] : AB7 : output : 3.3-V LVTTL : : 8 : N +GND* : AB6 : : : : 8 : +GND* : AB7 : : : : 8 : GND* : AB8 : : : : 8 : -dbg_vram_ad[3] : AB9 : output : 3.3-V LVTTL : : 8 : N +GND* : AB9 : : : : 8 : GND* : AB10 : : : : 8 : GND* : AB11 : : : : 8 : -dbg_d_io[5] : AB12 : output : 3.3-V LVTTL : : 7 : N -joypad1[0] : AB13 : input : 3.3-V LVTTL : : 7 : N +GND* : AB12 : : : : 7 : +GND* : AB13 : : : : 7 : GND* : AB14 : : : : 7 : GND* : AB15 : : : : 7 : -dbg_addr[4] : AB16 : output : 3.3-V LVTTL : : 7 : N +GND* : AB16 : : : : 7 : GND* : AB17 : : : : 7 : -joypad2[5] : AB18 : input : 3.3-V LVTTL : : 7 : N +g[2] : AB18 : output : 3.3-V LVTTL : : 7 : N GND* : AB19 : : : : 7 : GND* : AB20 : : : : 7 : VCCIO7 : AB21 : power : : 3.3V : 7 : GND : AB22 : gnd : : : : VCCIO2 : B1 : power : : 3.3V : 2 : GND : B2 : gnd : : : : -GND* : B3 : : : : 3 : -r[3] : B4 : output : 3.3-V LVTTL : : 3 : N +dbg_addr[2] : B3 : output : 3.3-V LVTTL : : 3 : N +GND* : B4 : : : : 3 : GND* : B5 : : : : 3 : GND* : B6 : : : : 3 : -dbg_vram_a[9] : B7 : output : 3.3-V LVTTL : : 3 : N +GND* : B7 : : : : 3 : GND* : B8 : : : : 3 : -dbg_vram_ad[2] : B9 : output : 3.3-V LVTTL : : 3 : N +GND* : B9 : : : : 3 : GND* : B10 : : : : 3 : -GND* : B11 : : : : 3 : +joypad2[6] : B11 : input : 3.3-V LVTTL : : 3 : N GND+ : B12 : : : : 4 : GND* : B13 : : : : 4 : GND* : B14 : : : : 4 : GND* : B15 : : : : 4 : -dbg_cpu_clk : B16 : output : 3.3-V LVTTL : : 4 : N +GND* : B16 : : : : 4 : GND* : B17 : : : : 4 : -GND* : B18 : : : : 4 : +joypad1[0] : B18 : input : 3.3-V LVTTL : : 4 : N GND* : B19 : : : : 4 : GND* : B20 : : : : 4 : GND : B21 : gnd : : : : VCCIO5 : B22 : power : : 3.3V : 5 : -dbg_addr[7] : C1 : output : 3.3-V LVTTL : : 2 : N -GND* : C2 : : : : 2 : +GND* : C1 : : : : 2 : +dbg_vram_a[9] : C2 : output : 3.3-V LVTTL : : 2 : N ~nCSO~ / RESERVED_INPUT_WITH_WEAK_PULLUP : C3 : input : 3.3-V LVTTL : : 2 : N ~ASDO~ / RESERVED_INPUT_WITH_WEAK_PULLUP : C4 : input : 3.3-V LVTTL : : 2 : N GND : C5 : gnd : : : : VCCIO3 : C6 : power : : 3.3V : 3 : -b[2] : C7 : output : 3.3-V LVTTL : : 3 : N +GND* : C7 : : : : 3 : GND : C8 : gnd : : : : GND* : C9 : : : : 3 : -GND* : C10 : : : : 3 : +g[1] : C10 : output : 3.3-V LVTTL : : 3 : N VCCIO3 : C11 : power : : 3.3V : 3 : VCCIO4 : C12 : power : : 3.3V : 4 : -dbg_vram_a[13] : C13 : output : 3.3-V LVTTL : : 4 : N +GND* : C13 : : : : 4 : GND* : C14 : : : : 4 : GND : C15 : gnd : : : : GND* : C16 : : : : 4 : -GND* : C17 : : : : 4 : -GND* : C18 : : : : 4 : +b[2] : C17 : output : 3.3-V LVTTL : : 4 : N +joypad2[0] : C18 : input : 3.3-V LVTTL : : 4 : N GND* : C19 : : : : 5 : GND* : C20 : : : : 5 : GND* : C21 : : : : 5 : @@ -186,17 +186,17 @@ GND* : C22 : : : GND* : D1 : : : : 2 : GND* : D2 : : : : 2 : GND* : D3 : : : : 2 : -g[2] : D4 : output : 3.3-V LVTTL : : 2 : N -GND* : D5 : : : : 2 : -GND* : D6 : : : : 2 : +GND* : D4 : : : : 2 : +joypad1[4] : D5 : input : 3.3-V LVTTL : : 2 : N +r[2] : D6 : output : 3.3-V LVTTL : : 2 : N GND* : D7 : : : : 3 : GND* : D8 : : : : 3 : -dbg_d_io[7] : D9 : output : 3.3-V LVTTL : : 3 : N +GND* : D9 : : : : 3 : GND : D10 : gnd : : : : GND* : D11 : : : : 3 : base_clk : D12 : input : 3.3-V LVTTL : : 3 : Y GND : D13 : gnd : : : : -joypad1[6] : D14 : input : 3.3-V LVTTL : : 4 : N +GND* : D14 : : : : 4 : GND* : D15 : : : : 4 : GND* : D16 : : : : 4 : VCCIO4 : D17 : power : : 3.3V : 4 : @@ -205,21 +205,21 @@ GND* : D19 : : : GND* : D20 : : : : 5 : GND* : D21 : : : : 5 : GND* : D22 : : : : 5 : -GND* : E1 : : : : 2 : +vga_clk : E1 : output : 3.3-V LVTTL : : 2 : N GND* : E2 : : : : 2 : -dbg_addr[1] : E3 : output : 3.3-V LVTTL : : 2 : N -joypad1[7] : E4 : input : 3.3-V LVTTL : : 2 : N +dbg_vram_ad[7] : E3 : output : 3.3-V LVTTL : : 2 : N +GND* : E4 : : : : 2 : VCCD_PLL3 : E5 : power : : 1.2V : : VCCA_PLL3 : E6 : power : : 1.2V : : GND* : E7 : : : : 3 : GND* : E8 : : : : 3 : -dbg_vram_ad[1] : E9 : output : 3.3-V LVTTL : : 3 : N +dbg_addr[12] : E9 : output : 3.3-V LVTTL : : 3 : N VCCIO3 : E10 : power : : 3.3V : 3 : -dbg_d_io[6] : E11 : output : 3.3-V LVTTL : : 3 : N +dbg_d_io[4] : E11 : output : 3.3-V LVTTL : : 3 : N GND+ : E12 : : : : 3 : VCCIO4 : E13 : power : : 3.3V : 4 : -joypad2[0] : E14 : input : 3.3-V LVTTL : : 4 : N -GND* : E15 : : : : 4 : +GND* : E14 : : : : 4 : +dbg_vram_a[13] : E15 : output : 3.3-V LVTTL : : 4 : N GNDA_PLL2 : E16 : gnd : : : : GND_PLL2 : E17 : gnd : : : : GND* : E18 : : : : 5 : @@ -227,8 +227,8 @@ GND* : E19 : : : GND* : E20 : : : : 5 : GND* : E21 : : : : 5 : GND* : E22 : : : : 5 : -GND* : F1 : : : : 2 : -dbg_addr[8] : F2 : output : 3.3-V LVTTL : : 2 : N +r[1] : F1 : output : 3.3-V LVTTL : : 2 : N +GND* : F2 : : : : 2 : GND* : F3 : : : : 2 : GND* : F4 : : : : 2 : GND_PLL3 : F5 : gnd : : : : @@ -237,16 +237,16 @@ GNDA_PLL3 : F7 : gnd : : GND* : F8 : : : : 3 : GND* : F9 : : : : 3 : GND* : F10 : : : : 3 : -dbg_vram_a[8] : F11 : output : 3.3-V LVTTL : : 3 : N +GND* : F11 : : : : 3 : GND* : F12 : : : : 4 : -GND* : F13 : : : : 4 : -GND* : F14 : : : : 4 : -dbg_addr[9] : F15 : output : 3.3-V LVTTL : : 4 : N +dbg_vram_ad[1] : F13 : output : 3.3-V LVTTL : : 4 : N +dbg_addr[10] : F14 : output : 3.3-V LVTTL : : 4 : N +GND* : F15 : : : : 4 : VCCA_PLL2 : F16 : power : : 1.2V : : VCCD_PLL2 : F17 : power : : 1.2V : : GND_PLL2 : F18 : gnd : : : : GND : F19 : gnd : : : : -dbg_addr[15] : F20 : output : 3.3-V LVTTL : : 5 : N +dbg_d_io[0] : F20 : output : 3.3-V LVTTL : : 5 : N GND* : F21 : : : : 5 : GND* : F22 : : : : 5 : NC : G1 : : : : : @@ -259,44 +259,44 @@ GND* : G7 : : : GND* : G8 : : : : 3 : VCCIO3 : G9 : power : : 3.3V : 3 : GND : G10 : gnd : : : : -dbg_addr[14] : G11 : output : 3.3-V LVTTL : : 3 : N +GND* : G11 : : : : 3 : GND* : G12 : : : : 4 : GND : G13 : gnd : : : : VCCIO4 : G14 : power : : 3.3V : 4 : GND* : G15 : : : : 4 : GND* : G16 : : : : 4 : GND* : G17 : : : : 5 : -GND* : G18 : : : : 5 : +joypad1[5] : G18 : input : 3.3-V LVTTL : : 5 : N VCCIO5 : G19 : power : : 3.3V : 5 : GND* : G20 : : : : 5 : GND* : G21 : : : : 5 : GND* : G22 : : : : 5 : -dbg_vram_a[11] : H1 : output : 3.3-V LVTTL : : 2 : N -GND* : H2 : : : : 2 : +GND* : H1 : : : : 2 : +g[3] : H2 : output : 3.3-V LVTTL : : 2 : N GND* : H3 : : : : 2 : -GND* : H4 : : : : 2 : +v_sync_n : H4 : output : 3.3-V LVTTL : : 2 : N GND* : H5 : : : : 2 : GND* : H6 : : : : 2 : -dbg_addr[10] : H7 : output : 3.3-V LVTTL : : 3 : N -dbg_vram_ad[7] : H8 : output : 3.3-V LVTTL : : 3 : N +GND* : H7 : : : : 3 : +GND* : H8 : : : : 3 : GND* : H9 : : : : 3 : -GND* : H10 : : : : 3 : +dbg_vram_a[11] : H10 : output : 3.3-V LVTTL : : 3 : N GND* : H11 : : : : 3 : GND* : H12 : : : : 4 : -dbg_vram_a[10] : H13 : output : 3.3-V LVTTL : : 4 : N -dbg_addr[13] : H14 : output : 3.3-V LVTTL : : 4 : N -dbg_d_io[2] : H15 : output : 3.3-V LVTTL : : 4 : N +GND* : H13 : : : : 4 : +GND* : H14 : : : : 4 : +GND* : H15 : : : : 4 : GND* : H16 : : : : 5 : GND* : H17 : : : : 5 : GND* : H18 : : : : 5 : -GND* : H19 : : : : 5 : +joypad2[3] : H19 : input : 3.3-V LVTTL : : 5 : N GND : H20 : gnd : : : : NC : H21 : : : : : NC : H22 : : : : : GND* : J1 : : : : 2 : GND* : J2 : : : : 2 : NC : J3 : : : : : -GND* : J4 : : : : 2 : +b[3] : J4 : output : 3.3-V LVTTL : : 2 : N NC : J5 : : : : : NC : J6 : : : : : VCCIO2 : J7 : power : : 3.3V : 2 : @@ -307,7 +307,7 @@ VCCINT : J11 : power : : 1.2V VCCINT : J12 : power : : 1.2V : : VCCINT : J13 : power : : 1.2V : : GND* : J14 : : : : 4 : -joypad2[4] : J15 : input : 3.3-V LVTTL : : 5 : N +GND* : J15 : : : : 5 : VCCIO5 : J16 : power : : 3.3V : 5 : GND* : J17 : : : : 5 : GND* : J18 : : : : 5 : @@ -335,7 +335,7 @@ NC : K17 : : : NC : K18 : : : : : GND : K19 : gnd : : : : GND* : K20 : : : : 5 : -dbg_addr[5] : K21 : output : 3.3-V LVTTL : : 5 : N +GND* : K21 : : : : 5 : GND* : K22 : : : : 5 : GND+ : L1 : : : : 2 : GND+ : L2 : : : : 2 : @@ -344,7 +344,7 @@ nCONFIG : L4 : : : TDO : L5 : output : : : 2 : DCLK : L6 : : : : 2 : NC : L7 : : : : : -GND* : L8 : : : : 2 : +b[1] : L8 : output : 3.3-V LVTTL : : 2 : N VCCINT : L9 : power : : 1.2V : : GND : L10 : gnd : : : : GND : L11 : gnd : : : : @@ -355,7 +355,7 @@ NC : L15 : : : NC : L16 : : : : : NC : L17 : : : : : GND* : L18 : : : : 5 : -dbg_vram_ad[6] : L19 : output : 3.3-V LVTTL : : 5 : N +GND* : L19 : : : : 5 : VCCIO5 : L20 : power : : 3.3V : 5 : GND+ : L21 : : : : 5 : GND+ : L22 : : : : 5 : @@ -363,7 +363,7 @@ GND+ : M1 : : : GND+ : M2 : : : : 1 : VCCIO1 : M3 : power : : 3.3V : 1 : GND : M4 : gnd : : : : -GND* : M5 : : : : 1 : +dbg_addr[0] : M5 : output : 3.3-V LVTTL : : 1 : N GND* : M6 : : : : 1 : NC : M7 : : : : : NC : M8 : : : : : @@ -377,12 +377,12 @@ NC : M15 : : : NC : M16 : : : : : MSEL0 : M17 : : : : 6 : GND* : M18 : : : : 6 : -b[0] : M19 : output : 3.3-V LVTTL : : 6 : N +GND* : M19 : : : : 6 : VCCIO6 : M20 : power : : 3.3V : 6 : GND+ : M21 : : : : 6 : GND+ : M22 : : : : 6 : GND* : N1 : : : : 1 : -GND* : N2 : : : : 1 : +dbg_addr[6] : N2 : output : 3.3-V LVTTL : : 1 : N GND* : N3 : : : : 1 : GND* : N4 : : : : 1 : NC : N5 : : : : : @@ -401,14 +401,14 @@ MSEL1 : N17 : : : CONF_DONE : N18 : : : : 6 : GND : N19 : gnd : : : : nSTATUS : N20 : : : : 6 : -dbg_d_io[0] : N21 : output : 3.3-V LVTTL : : 6 : N +GND* : N21 : : : : 6 : GND* : N22 : : : : 6 : -dbg_addr[0] : P1 : output : 3.3-V LVTTL : : 1 : N +dbg_addr[8] : P1 : output : 3.3-V LVTTL : : 1 : N GND* : P2 : : : : 1 : -GND* : P3 : : : : 1 : +dbg_cpu_clk : P3 : output : 3.3-V LVTTL : : 1 : N NC : P4 : : : : : -GND* : P5 : : : : 1 : -GND* : P6 : : : : 1 : +dbg_d_io[6] : P5 : output : 3.3-V LVTTL : : 1 : N +dbg_vram_ad[0] : P6 : output : 3.3-V LVTTL : : 1 : N VCCIO1 : P7 : power : : 3.3V : 1 : GND* : P8 : : : : 8 : GND* : P9 : : : : 8 : @@ -420,65 +420,65 @@ NC : P14 : : : GND* : P15 : : : : 6 : VCCIO6 : P16 : power : : 3.3V : 6 : GND* : P17 : : : : 6 : -dbg_vram_ad[5] : P18 : output : 3.3-V LVTTL : : 6 : N +GND* : P18 : : : : 6 : NC : P19 : : : : : NC : P20 : : : : : NC : P21 : : : : : NC : P22 : : : : : -GND* : R1 : : : : 1 : +dbg_vram_ad[2] : R1 : output : 3.3-V LVTTL : : 1 : N GND* : R2 : : : : 1 : GND : R3 : gnd : : : : NC : R4 : : : : : -GND* : R5 : : : : 1 : -GND* : R6 : : : : 1 : +dbg_addr[1] : R5 : output : 3.3-V LVTTL : : 1 : N +dbg_addr[3] : R6 : output : 3.3-V LVTTL : : 1 : N GND* : R7 : : : : 1 : -GND* : R8 : : : : 1 : +dbg_d_io[2] : R8 : output : 3.3-V LVTTL : : 1 : N GND* : R9 : : : : 8 : GND* : R10 : : : : 8 : -r[1] : R11 : output : 3.3-V LVTTL : : 8 : N +dbg_vram_a[8] : R11 : output : 3.3-V LVTTL : : 8 : N GND* : R12 : : : : 7 : -b[1] : R13 : output : 3.3-V LVTTL : : 7 : N -joypad1[4] : R14 : input : 3.3-V LVTTL : : 7 : N -GND* : R15 : : : : 7 : +GND* : R13 : : : : 7 : +GND* : R14 : : : : 7 : +r[3] : R15 : output : 3.3-V LVTTL : : 7 : N GND* : R16 : : : : 7 : -GND* : R17 : : : : 6 : +joypad2[2] : R17 : input : 3.3-V LVTTL : : 6 : N GND* : R18 : : : : 6 : GND* : R19 : : : : 6 : GND* : R20 : : : : 6 : GND* : R21 : : : : 6 : rst_n : R22 : input : 3.3-V LVTTL : : 6 : Y -GND* : T1 : : : : 1 : +dbg_vram_ad[6] : T1 : output : 3.3-V LVTTL : : 1 : N GND* : T2 : : : : 1 : GND* : T3 : : : : 1 : VCCIO1 : T4 : power : : 3.3V : 1 : -GND* : T5 : : : : 1 : -GND* : T6 : : : : 1 : -GND* : T7 : : : : 8 : +dbg_addr[9] : T5 : output : 3.3-V LVTTL : : 1 : N +dbg_addr[11] : T6 : output : 3.3-V LVTTL : : 1 : N +dbg_addr[13] : T7 : output : 3.3-V LVTTL : : 8 : N GND* : T8 : : : : 8 : VCCIO8 : T9 : power : : 3.3V : 8 : GND : T10 : gnd : : : : -joypad2[7] : T11 : input : 3.3-V LVTTL : : 8 : N +GND* : T11 : : : : 8 : GND* : T12 : : : : 7 : GND : T13 : gnd : : : : VCCIO7 : T14 : power : : 3.3V : 7 : GND* : T15 : : : : 7 : GND* : T16 : : : : 7 : GND_PLL4 : T17 : gnd : : : : -dbg_addr[2] : T18 : output : 3.3-V LVTTL : : 6 : N +GND* : T18 : : : : 6 : VCCIO6 : T19 : power : : 3.3V : 6 : GND : T20 : gnd : : : : GND* : T21 : : : : 6 : -dbg_d_io[1] : T22 : output : 3.3-V LVTTL : : 6 : N +GND* : T22 : : : : 6 : GND* : U1 : : : : 1 : -joypad1[1] : U2 : input : 3.3-V LVTTL : : 1 : N -dbg_vram_ad[4] : U3 : output : 3.3-V LVTTL : : 1 : N +GND* : U2 : : : : 1 : +dbg_vram_a[12] : U3 : output : 3.3-V LVTTL : : 1 : N GND* : U4 : : : : 1 : GND_PLL1 : U5 : gnd : : : : VCCD_PLL1 : U6 : power : : 1.2V : : VCCA_PLL1 : U7 : power : : 1.2V : : -joypad2[1] : U8 : input : 3.3-V LVTTL : : 8 : N +GND* : U8 : : : : 8 : GND* : U9 : : : : 8 : -b[3] : U10 : output : 3.3-V LVTTL : : 8 : N +GND* : U10 : : : : 8 : GND+ : U11 : : : : 8 : GND+ : U12 : : : : 8 : GND* : U13 : : : : 7 : @@ -487,19 +487,19 @@ GND* : U15 : : : VCCA_PLL4 : U16 : power : : 1.2V : : VCCD_PLL4 : U17 : power : : 1.2V : : GND* : U18 : : : : 6 : -GND* : U19 : : : : 6 : +joypad1[6] : U19 : input : 3.3-V LVTTL : : 6 : N GND* : U20 : : : : 6 : GND* : U21 : : : : 6 : GND* : U22 : : : : 6 : GND* : V1 : : : : 1 : -dbg_vram_ad[0] : V2 : output : 3.3-V LVTTL : : 1 : N +GND* : V2 : : : : 1 : GND : V3 : gnd : : : : -GND* : V4 : : : : 1 : +dbg_vram_a[10] : V4 : output : 3.3-V LVTTL : : 1 : N GND_PLL1 : V5 : gnd : : : : GND : V6 : gnd : : : : GNDA_PLL1 : V7 : gnd : : : : -GND* : V8 : : : : 8 : -dbg_addr[12] : V9 : output : 3.3-V LVTTL : : 8 : N +dbg_d_io[7] : V8 : output : 3.3-V LVTTL : : 8 : N +dbg_addr[7] : V9 : output : 3.3-V LVTTL : : 8 : N VCCIO8 : V10 : power : : 3.3V : 8 : GND* : V11 : : : : 8 : GND+ : V12 : : : : 7 : @@ -509,24 +509,24 @@ GND* : V15 : : : GNDA_PLL4 : V16 : gnd : : : : GND : V17 : gnd : : : : GND_PLL4 : V18 : gnd : : : : -g[1] : V19 : output : 3.3-V LVTTL : : 6 : N -GND* : V20 : : : : 6 : -GND* : V21 : : : : 6 : -GND* : V22 : : : : 6 : +joypad1[1] : V19 : input : 3.3-V LVTTL : : 6 : N +joypad1[7] : V20 : input : 3.3-V LVTTL : : 6 : N +joypad2[5] : V21 : input : 3.3-V LVTTL : : 6 : N +dbg_addr[14] : V22 : output : 3.3-V LVTTL : : 6 : N GND* : W1 : : : : 1 : -GND* : W2 : : : : 1 : +dbg_d_io[1] : W2 : output : 3.3-V LVTTL : : 1 : N GND* : W3 : : : : 1 : GND* : W4 : : : : 1 : GND* : W5 : : : : 1 : VCCIO8 : W6 : power : : 3.3V : 8 : -dbg_d_io[4] : W7 : output : 3.3-V LVTTL : : 8 : N -GND* : W8 : : : : 8 : +GND* : W7 : : : : 8 : +joypad1[3] : W8 : input : 3.3-V LVTTL : : 8 : N GND* : W9 : : : : 8 : GND : W10 : gnd : : : : -r[2] : W11 : output : 3.3-V LVTTL : : 8 : N +g[0] : W11 : output : 3.3-V LVTTL : : 8 : N GND+ : W12 : : : : 7 : GND : W13 : gnd : : : : -joypad2[2] : W14 : input : 3.3-V LVTTL : : 7 : N +dbg_vram_ad[5] : W14 : output : 3.3-V LVTTL : : 7 : N GND* : W15 : : : : 7 : GND* : W16 : : : : 7 : VCCIO7 : W17 : power : : 3.3V : 7 : @@ -534,16 +534,16 @@ NC : W18 : : : GND : W19 : gnd : : : : ~LVDS91p/nCEO~ : W20 : output : 3.3-V LVTTL : : 6 : N GND* : W21 : : : : 6 : -GND* : W22 : : : : 6 : +joypad2[1] : W22 : input : 3.3-V LVTTL : : 6 : N GND* : Y1 : : : : 1 : -GND* : Y2 : : : : 1 : -GND* : Y3 : : : : 1 : +dbg_d_io[5] : Y2 : output : 3.3-V LVTTL : : 1 : N +dbg_vram_ad[3] : Y3 : output : 3.3-V LVTTL : : 1 : N GND* : Y4 : : : : 1 : GND* : Y5 : : : : 8 : -dbg_vram_a[12] : Y6 : output : 3.3-V LVTTL : : 8 : N +GND* : Y6 : : : : 8 : GND* : Y7 : : : : 8 : GND : Y8 : gnd : : : : -v_sync_n : Y9 : output : 3.3-V LVTTL : : 8 : N +GND* : Y9 : : : : 8 : GND* : Y10 : : : : 8 : VCCIO8 : Y11 : power : : 3.3V : 8 : VCCIO7 : Y12 : power : : 3.3V : 7 : @@ -551,9 +551,9 @@ GND* : Y13 : : : GND* : Y14 : : : : 7 : GND : Y15 : gnd : : : : GND* : Y16 : : : : 7 : -dbg_addr[6] : Y17 : output : 3.3-V LVTTL : : 7 : N -GND* : Y18 : : : : 6 : +dbg_addr[4] : Y17 : output : 3.3-V LVTTL : : 7 : N +joypad2[7] : Y18 : input : 3.3-V LVTTL : : 6 : N GND* : Y19 : : : : 6 : -GND* : Y20 : : : : 6 : +dbg_ppu_clk : Y20 : output : 3.3-V LVTTL : : 6 : N GND* : Y21 : : : : 6 : -GND* : Y22 : : : : 6 : +joypad2[4] : Y22 : input : 3.3-V LVTTL : : 6 : N diff --git a/de1_nes/de1_nes.qsf b/de1_nes/de1_nes.qsf index 423440c..a1a8567 100644 --- a/de1_nes/de1_nes.qsf +++ b/de1_nes/de1_nes.qsf @@ -68,5 +68,6 @@ set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench_motones_sim -se set_global_assignment -name EDA_TEST_BENCH_NAME testbench_clock_divider -section_id eda_simulation set_global_assignment -name EDA_DESIGN_INSTANCE_NAME dut -section_id testbench_clock_divider set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench_clock_divider -section_id testbench_clock_divider +set_global_assignment -name EDA_TEST_BENCH_RUN_SIM_FOR "100 us" -section_id testbench_motones_sim set_global_assignment -name EDA_TEST_BENCH_FILE testbench_motones_sim.vhd -section_id testbench_motones_sim set_global_assignment -name EDA_TEST_BENCH_FILE testbench_clock_divider.vhd -section_id testbench_clock_divider \ No newline at end of file diff --git a/de1_nes/de1_nes.qws b/de1_nes/de1_nes.qws index 1da70f6..7e40565 100644 --- a/de1_nes/de1_nes.qws +++ b/de1_nes/de1_nes.qws @@ -6,6 +6,9 @@ ptn_Child1=ChildFrames ptn_Child1=Document-0 ptn_Child2=Document-1 ptn_Child3=Document-2 +ptn_Child4=Document-3 +ptn_Child5=Document-4 +ptn_Child6=Document-5 [ProjectWorkspace.Frames.ChildFrames.Document-1] ptn_Child1=ViewFrame-0 [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0] @@ -16,3 +19,33 @@ IsActiveChildFrame=False ptn_Child1=StateMap [ProjectWorkspace.Frames.ChildFrames.Document-1.ViewFrame-0.StateMap] AFC_IN_REPORT=False +[ProjectWorkspace.Frames.ChildFrames.Document-2] +ptn_Child1=ViewFrame-0 +[ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0] +DocPathName=cpu/mos6502.vhd +DocumentCLSID={ca385d57-a4c7-11d1-a098-0020affa43f2} +IsChildFrameDetached=False +IsActiveChildFrame=False +ptn_Child1=StateMap +[ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0.StateMap] +AFC_IN_REPORT=False +[ProjectWorkspace.Frames.ChildFrames.Document-3] +ptn_Child1=ViewFrame-0 +[ProjectWorkspace.Frames.ChildFrames.Document-3.ViewFrame-0] +DocPathName=cpu/decoder.vhd +DocumentCLSID={ca385d57-a4c7-11d1-a098-0020affa43f2} +IsChildFrameDetached=False +IsActiveChildFrame=False +ptn_Child1=StateMap +[ProjectWorkspace.Frames.ChildFrames.Document-3.ViewFrame-0.StateMap] +AFC_IN_REPORT=False +[ProjectWorkspace.Frames.ChildFrames.Document-4] +ptn_Child1=ViewFrame-0 +[ProjectWorkspace.Frames.ChildFrames.Document-4.ViewFrame-0] +DocPathName=de1_nes_nativelink_simulation.rpt +DocumentCLSID={0b720e69-67da-11d0-bf4f-0000c08cb0c0} +IsChildFrameDetached=False +IsActiveChildFrame=False +ptn_Child1=StateMap +[ProjectWorkspace.Frames.ChildFrames.Document-4.ViewFrame-0.StateMap] +AFC_IN_REPORT=False diff --git a/de1_nes/de1_nes.vhd b/de1_nes/de1_nes.vhd index 44416a7..59657f4 100644 --- a/de1_nes/de1_nes.vhd +++ b/de1_nes/de1_nes.vhd @@ -170,7 +170,7 @@ begin -- dbg_cpu_clk <= cpu_clk; -- dbg_ppu_clk <= ppu_clk; -- dbg_addr <= addr; - dbg_d_io <= d_io; +-- dbg_d_io <= d_io; -- dbg_vram_ad <= vram_ad ; -- dbg_vram_a <= vram_a ; diff --git a/de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do b/de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do new file mode 100644 index 0000000..c660c10 --- /dev/null +++ b/de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do @@ -0,0 +1,17 @@ +transcript on +if {[file exists gate_work]} { + vdel -lib gate_work -all +} +vlib gate_work +vmap work gate_work + +vcom -93 -work work {de1_nes.vho} + +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/testbench_motones_sim.vhd} + +vsim -t 1ps +transport_int_delays +transport_path_delays -sdftyp /sim_board=de1_nes_vhd.sdo -L cycloneii -L gate_work -L work testbench_motones_sim + +add wave * +view structure +view signals +run -all diff --git a/de1_nes/simulation/modelsim/de1_nes_run_msim_rtl_vhdl.do b/de1_nes/simulation/modelsim/de1_nes_run_msim_rtl_vhdl.do new file mode 100644 index 0000000..7eb15d0 --- /dev/null +++ b/de1_nes/simulation/modelsim/de1_nes_run_msim_rtl_vhdl.do @@ -0,0 +1,53 @@ +transcript on +if {[file exists rtl_work]} { + vdel -lib rtl_work -all +} +vlib rtl_work +vmap work rtl_work + +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/motonesfpga_common.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/mem/ram.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/ppu/ppu_registers.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/cpu/cpu_registers.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/clock/clock_divider.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/apu/apu.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/cpu/mos6502.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/address_decoder.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/de1_nes.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/mem/prg_rom.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/mem/chr_rom.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/ppu/ppu.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/ppu/render.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/cpu/decoder.vhd} +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/cpu/alu.vhd} + +vcom -93 -work work {D:/daisuke/nes/repo/motonesfpga/de1_nes/testbench_motones_sim.vhd} + +vsim -t 1ps -L lpm -L altera -L altera_mf -L sgate -L cycloneii -L rtl_work -L work testbench_motones_sim + +##add wave sim:/testbench_motones_sim/sim_board/ppu_clk + +add wave sim:/testbench_motones_sim/sim_board/rst_n +add wave sim:/testbench_motones_sim/sim_board/r_nw +add wave sim:/testbench_motones_sim/sim_board/cpu_clk + +add wave -radix hex sim:/testbench_motones_sim/sim_board/addr +add wave -radix hex sim:/testbench_motones_sim/sim_board/d_io + +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/instruction +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/int_d_bus + +add wave -divider regs + +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/acc/q +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/sp/q +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/status_register/status_val +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/x/q +add wave -radix hex sim:/testbench_motones_sim/sim_board/cpu_inst/y/q + + +###add wave sim:/testbench_motones_sim/sim_board/cpu_inst/* + +view structure +view signals +run 100 us -- 2.11.0