Add testbenches
This commit is contained in:
+928
-270
File diff suppressed because it is too large
Load Diff
@@ -33,7 +33,7 @@ module Reg_file (
|
|||||||
// --- Parameters ---
|
// --- Parameters ---
|
||||||
localparam REG_COUNT = 16;
|
localparam REG_COUNT = 16;
|
||||||
localparam [23:0]
|
localparam [23:0]
|
||||||
IDENT = 24'h800000|| 12'b0001_0000_0000, //CPLD3==1,version=1.0.0
|
IDENT = 24'h800000 | 12'b0001_0000_0000, //CPLD3==1,version=1.0.0
|
||||||
STATE_INIT = 24'h800000;
|
STATE_INIT = 24'h800000;
|
||||||
|
|
||||||
// State Machine Definition
|
// State Machine Definition
|
||||||
|
|||||||
+802
-270
File diff suppressed because it is too large
Load Diff
Executable
+62
@@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# CPLD2 RTL Behavioral Simulation Run Script
|
||||||
|
# Project: NewCalBoard DIG
|
||||||
|
# Tool: Lattice Diamond 3.14 / QuestaSim 2024.2
|
||||||
|
# DUT: CPLD2 RelayConTop (RC_F/RC_S/RC_T relay control + OC channels + PMU_OC)
|
||||||
|
#
|
||||||
|
# Usage: ./run_cpld2_sim.sh
|
||||||
|
# Run inside distrobox container: distrobox enter fpga-tools -- ./run_cpld2_sim.sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Environment setup
|
||||||
|
export PATH="/data/lscc/diamond/3.14/questasim/linux_x86_64:$PATH"
|
||||||
|
export LM_LICENSE_FILE="/data/lscc/diamond/3.14/license/license.dat"
|
||||||
|
export MODEL_TECH="/data/lscc/diamond/3.14/questasim/linux_x86_64"
|
||||||
|
|
||||||
|
# Project root
|
||||||
|
PROJECT_ROOT="/home/ly0kos/work/prj/New_CalBoard"
|
||||||
|
CPLD2_DIR="${PROJECT_ROOT}/2.FW/CPLD2"
|
||||||
|
TB_FILE="${CPLD2_DIR}/tb_RelayConTop.sv"
|
||||||
|
|
||||||
|
# Temp directory
|
||||||
|
SIM_DIR="/tmp/cpld2_sim"
|
||||||
|
rm -rf "${SIM_DIR}"
|
||||||
|
mkdir -p "${SIM_DIR}"
|
||||||
|
cd "${SIM_DIR}"
|
||||||
|
|
||||||
|
echo "============================================================="
|
||||||
|
echo " CPLD2 RTL Behavioral Simulation"
|
||||||
|
echo " DUT: RelayConTop (RC_F/RC_S/RC_T + OC + PMU_OC)"
|
||||||
|
echo "============================================================="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Create libraries
|
||||||
|
echo "[1/4] Creating libraries..."
|
||||||
|
vlib work && vmap work work
|
||||||
|
echo " work library created"
|
||||||
|
|
||||||
|
# Compile source files
|
||||||
|
echo "[2/4] Compiling source files..."
|
||||||
|
vlog -work work \
|
||||||
|
"${CPLD2_DIR}/BUS_Con.v" \
|
||||||
|
"${CPLD2_DIR}/Reg_file.v" \
|
||||||
|
"${CPLD2_DIR}/CPLD_Con.v" \
|
||||||
|
"${CPLD2_DIR}/RelayConTop.v"
|
||||||
|
echo " Source files compiled"
|
||||||
|
|
||||||
|
# Compile testbench
|
||||||
|
echo "[3/4] Compiling testbench..."
|
||||||
|
vlog -work work "${TB_FILE}"
|
||||||
|
echo " Testbench compiled"
|
||||||
|
|
||||||
|
# Run simulation
|
||||||
|
echo "[4/4] Running simulation..."
|
||||||
|
echo ""
|
||||||
|
vsim -c -work work tb_RelayConTop -t 1ps +access+r \
|
||||||
|
-do "run -all; quit" 2>&1 | tee transcript.log
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "============================================================="
|
||||||
|
echo " Simulation complete. Results in: ${SIM_DIR}/transcript.log"
|
||||||
|
echo "============================================================="
|
||||||
Executable
+62
@@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# CPLD3 RTL Behavioral Simulation Run Script
|
||||||
|
# Project: NewCalBoard DIG
|
||||||
|
# Tool: Lattice Diamond 3.14 / QuestaSim 2024.2
|
||||||
|
# DUT: CPLD3 RelayConTop (PMU_RC[3:0] only)
|
||||||
|
#
|
||||||
|
# Usage: ./run_cpld3_sim.sh
|
||||||
|
# Run inside distrobox container: distrobox enter fpga-tools -- ./run_cpld3_sim.sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Environment setup
|
||||||
|
export PATH="/data/lscc/diamond/3.14/questasim/linux_x86_64:$PATH"
|
||||||
|
export LM_LICENSE_FILE="/data/lscc/diamond/3.14/license/license.dat"
|
||||||
|
export MODEL_TECH="/data/lscc/diamond/3.14/questasim/linux_x86_64"
|
||||||
|
|
||||||
|
# Project root
|
||||||
|
PROJECT_ROOT="/home/ly0kos/work/prj/New_CalBoard"
|
||||||
|
CPLD3_DIR="${PROJECT_ROOT}/2.FW/CPLD3"
|
||||||
|
TB_FILE="${CPLD3_DIR}/tb_RelayConTop.sv"
|
||||||
|
|
||||||
|
# Temp directory
|
||||||
|
SIM_DIR="/tmp/cpld3_sim"
|
||||||
|
rm -rf "${SIM_DIR}"
|
||||||
|
mkdir -p "${SIM_DIR}"
|
||||||
|
cd "${SIM_DIR}"
|
||||||
|
|
||||||
|
echo "============================================================="
|
||||||
|
echo " CPLD3 RTL Behavioral Simulation"
|
||||||
|
echo " DUT: RelayConTop (PMU_RC[3:0] only)"
|
||||||
|
echo "============================================================="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Create libraries
|
||||||
|
echo "[1/4] Creating libraries..."
|
||||||
|
vlib work && vmap work work
|
||||||
|
echo " work library created"
|
||||||
|
|
||||||
|
# Compile source files
|
||||||
|
echo "[2/4] Compiling source files..."
|
||||||
|
vlog -work work \
|
||||||
|
"${CPLD3_DIR}/BUS_Con.v" \
|
||||||
|
"${CPLD3_DIR}/Reg_file.v" \
|
||||||
|
"${CPLD3_DIR}/CPLD_Con.v" \
|
||||||
|
"${CPLD3_DIR}/RelayConTop.v"
|
||||||
|
echo " Source files compiled"
|
||||||
|
|
||||||
|
# Compile testbench
|
||||||
|
echo "[3/4] Compiling testbench..."
|
||||||
|
vlog -work work "${TB_FILE}"
|
||||||
|
echo " Testbench compiled"
|
||||||
|
|
||||||
|
# Run simulation
|
||||||
|
echo "[4/4] Running simulation..."
|
||||||
|
echo ""
|
||||||
|
vsim -c -work work tb_RelayConTop -t 1ps +access+r \
|
||||||
|
-do "run -all; quit" 2>&1 | tee transcript.log
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "============================================================="
|
||||||
|
echo " Simulation complete. Results in: ${SIM_DIR}/transcript.log"
|
||||||
|
echo "============================================================="
|
||||||
Reference in New Issue
Block a user