220 lines
7.6 KiB
Coq
220 lines
7.6 KiB
Coq
//+FHDR--------------------------------------------------------------------------------------------------------
|
|
// Company:
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// File Name : qbmcu.v
|
|
// Department :
|
|
// Author : PWY
|
|
// Author's Tel :
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Relese History
|
|
// Version Date Author Description
|
|
// 0.1 2024-03-13 PWY The files to include all the macro undefs
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Keywords :
|
|
//
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Parameter
|
|
//
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Purpose :
|
|
//
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Target Device:
|
|
// Tool versions:
|
|
//-----------------------------------------------------------------------------------------------------------------
|
|
// Reuse Issues
|
|
// Reset Strategy:
|
|
// Clock Domains:
|
|
// Critical Timing:
|
|
// Asynchronous I/F:
|
|
// Synthesizable (y/n):
|
|
// Other:
|
|
//-FHDR--------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////// ISA relevant macro
|
|
//
|
|
//system address width
|
|
`undef QBMCU_ADDR_SIZE
|
|
|
|
//PC width
|
|
`undef QBMCU_PC_SIZE
|
|
|
|
//system data width
|
|
`undef QBMCU_XLEN
|
|
//system instruction width
|
|
`undef QBMCU_INSTR_SIZE
|
|
|
|
//register array index bit width
|
|
`undef QBMCU_RFIDX_WIDTH
|
|
//number of register arrays
|
|
`undef QBMCU_RFREG_NUM
|
|
|
|
//base address of instruction memory
|
|
//initial value of the program counter (PC) -> 0x0000_0000
|
|
`undef QBMCU_DTCM_ADDR_BASE
|
|
//base address of data memory
|
|
`undef QBMCU_ITCM_ADDR_BASE
|
|
|
|
//data memory address width
|
|
`undef QBMCU_DTCM_ADDR_SIZE
|
|
|
|
//instruction memory address width
|
|
`undef QBMCU_ITCM_ADDR_SIZE
|
|
|
|
//BUS memory address width
|
|
`undef QBMCU_BUS_ADDR_SIZE
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////// ALU relevant macro
|
|
//
|
|
|
|
`undef QBMCU_ALU_ADDER_WIDTH
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////// Decode relevant macro
|
|
//
|
|
`undef QBMCU_DECINFO_GRP_WIDTH
|
|
`undef QBMCU_DECINFO_GRP_ALU
|
|
`undef QBMCU_DECINFO_GRP_AGU
|
|
`undef QBMCU_DECINFO_GRP_BJP
|
|
`undef QBMCU_DECINFO_GRP_EXT
|
|
|
|
|
|
`undef QBMCU_DECINFO_GRP_LSB
|
|
`undef QBMCU_DECINFO_GRP_MSB
|
|
`undef QBMCU_DECINFO_GRP
|
|
`undef QBMCU_DECINFO_RV32_LSB
|
|
`undef QBMCU_DECINFO_RV32_MSB
|
|
`undef QBMCU_DECINFO_RV32
|
|
|
|
`undef QBMCU_DECINFO_SUBDECINFO_LSB
|
|
|
|
// ALU group
|
|
`undef QBMCU_DECINFO_ALU_ADD_LSB
|
|
`undef QBMCU_DECINFO_ALU_ADD_MSB
|
|
`undef QBMCU_DECINFO_ALU_ADD
|
|
`undef QBMCU_DECINFO_ALU_SUB_LSB
|
|
`undef QBMCU_DECINFO_ALU_SUB_MSB
|
|
`undef QBMCU_DECINFO_ALU_SUB
|
|
`undef QBMCU_DECINFO_ALU_XOR_LSB
|
|
`undef QBMCU_DECINFO_ALU_XOR_MSB
|
|
`undef QBMCU_DECINFO_ALU_XOR
|
|
`undef QBMCU_DECINFO_ALU_SLL_LSB
|
|
`undef QBMCU_DECINFO_ALU_SLL_MSB
|
|
`undef QBMCU_DECINFO_ALU_SLL
|
|
`undef QBMCU_DECINFO_ALU_SRL_LSB
|
|
`undef QBMCU_DECINFO_ALU_SRL_MSB
|
|
`undef QBMCU_DECINFO_ALU_SRL
|
|
`undef QBMCU_DECINFO_ALU_SRA_LSB
|
|
`undef QBMCU_DECINFO_ALU_SRA_MSB
|
|
`undef QBMCU_DECINFO_ALU_SRA
|
|
`undef QBMCU_DECINFO_ALU_OR_LSB
|
|
`undef QBMCU_DECINFO_ALU_OR_MSB
|
|
`undef QBMCU_DECINFO_ALU_OR
|
|
`undef QBMCU_DECINFO_ALU_AND_LSB
|
|
`undef QBMCU_DECINFO_ALU_AND_MSB
|
|
`undef QBMCU_DECINFO_ALU_AND
|
|
`undef QBMCU_DECINFO_ALU_SLT_LSB
|
|
`undef QBMCU_DECINFO_ALU_SLT_MSB
|
|
`undef QBMCU_DECINFO_ALU_SLT
|
|
`undef QBMCU_DECINFO_ALU_SLTU_LSB
|
|
`undef QBMCU_DECINFO_ALU_SLTU_MSB
|
|
`undef QBMCU_DECINFO_ALU_SLTU
|
|
`undef QBMCU_DECINFO_ALU_LUI_LSB
|
|
`undef QBMCU_DECINFO_ALU_LUI_MSB
|
|
`undef QBMCU_DECINFO_ALU_LUI
|
|
`undef QBMCU_DECINFO_ALU_OP2IMM_LSB
|
|
`undef QBMCU_DECINFO_ALU_OP2IMM_MSB
|
|
`undef QBMCU_DECINFO_ALU_OP2IMM
|
|
`undef QBMCU_DECINFO_ALU_OP1PC_LSB
|
|
`undef QBMCU_DECINFO_ALU_OP1PC_MSB
|
|
`undef QBMCU_DECINFO_ALU_OP1PC
|
|
`undef QBMCU_DECINFO_ALU_NOP_LSB
|
|
`undef QBMCU_DECINFO_ALU_NOP_MSB
|
|
`undef QBMCU_DECINFO_ALU_NOP
|
|
`undef QBMCU_DECINFO_ALU_WIDTH
|
|
|
|
//AGU group
|
|
`undef QBMCU_DECINFO_AGU_LOAD_LSB
|
|
`undef QBMCU_DECINFO_AGU_LOAD_MSB
|
|
`undef QBMCU_DECINFO_AGU_LOAD
|
|
`undef QBMCU_DECINFO_AGU_STORE_LSB
|
|
`undef QBMCU_DECINFO_AGU_STORE_MSB
|
|
`undef QBMCU_DECINFO_AGU_STORE
|
|
`undef QBMCU_DECINFO_AGU_SIZE_LSB
|
|
`undef QBMCU_DECINFO_AGU_SIZE_MSB
|
|
`undef QBMCU_DECINFO_AGU_SIZE
|
|
`undef QBMCU_DECINFO_AGU_USIGN_LSB
|
|
`undef QBMCU_DECINFO_AGU_USIGN_MSB
|
|
`undef QBMCU_DECINFO_AGU_USIGN
|
|
`undef QBMCU_DECINFO_AGU_OP2IMM_LSB
|
|
`undef QBMCU_DECINFO_AGU_OP2IMM_MSB
|
|
`undef QBMCU_DECINFO_AGU_OP2IMM
|
|
`undef QBMCU_DECINFO_AGU_WIDTH
|
|
|
|
// Bxx group
|
|
`undef QBMCU_DECINFO_BJP_JUMP_LSB
|
|
`undef QBMCU_DECINFO_BJP_JUMP_MSB
|
|
`undef QBMCU_DECINFO_BJP_JUMP
|
|
`undef QBMCU_DECINFO_BJP_BPRDT_LSB
|
|
`undef QBMCU_DECINFO_BJP_BPRDT_MSB
|
|
`undef QBMCU_DECINFO_BJP_JALR
|
|
`undef QBMCU_DECINFO_BJP_BEQ_LSB
|
|
`undef QBMCU_DECINFO_BJP_BEQ_MSB
|
|
`undef QBMCU_DECINFO_BJP_BEQ
|
|
`undef QBMCU_DECINFO_BJP_BNE_LSB
|
|
`undef QBMCU_DECINFO_BJP_BNE_MSB
|
|
`undef QBMCU_DECINFO_BJP_BNE
|
|
`undef QBMCU_DECINFO_BJP_BLT_LSB
|
|
`undef QBMCU_DECINFO_BJP_BLT_MSB
|
|
`undef QBMCU_DECINFO_BJP_BLT
|
|
`undef QBMCU_DECINFO_BJP_BGT_LSB
|
|
`undef QBMCU_DECINFO_BJP_BGT_MSB
|
|
`undef QBMCU_DECINFO_BJP_BGT
|
|
`undef QBMCU_DECINFO_BJP_BLTU_LSB
|
|
`undef QBMCU_DECINFO_BJP_BLTU_MSB
|
|
`undef QBMCU_DECINFO_BJP_BLTU
|
|
`undef QBMCU_DECINFO_BJP_BGTU_LSB
|
|
`undef QBMCU_DECINFO_BJP_BGTU_MSB
|
|
`undef QBMCU_DECINFO_BJP_BGTU
|
|
`undef QBMCU_DECINFO_BJP_BXX_LSB
|
|
`undef QBMCU_DECINFO_BJP_BXX_MSB
|
|
`undef QBMCU_DECINFO_BJP_BXX
|
|
`undef QBMCU_DECINFO_BJP_WIDTH
|
|
|
|
|
|
// EXT group
|
|
`undef QBMCU_DECINFO_EXT_WAIT_LSB
|
|
`undef QBMCU_DECINFO_EXT_WAIT_MSB
|
|
`undef QBMCU_DECINFO_EXT_WAIT
|
|
`undef QBMCU_DECINFO_EXT_SEND_LSB
|
|
`undef QBMCU_DECINFO_EXT_SEND_MSB
|
|
`undef QBMCU_DECINFO_EXT_SEND
|
|
`undef QBMCU_DECINFO_EXT_SENDC_LSB
|
|
`undef QBMCU_DECINFO_EXT_SENDC_MSB
|
|
`undef QBMCU_DECINFO_EXT_SENDC
|
|
`undef QBMCU_DECINFO_EXT_EXIT_LSB
|
|
`undef QBMCU_DECINFO_EXT_EXIT_MSB
|
|
`undef QBMCU_DECINFO_EXT_EXIT
|
|
`undef QBMCU_DECINFO_EXT_EXITI_LSB
|
|
`undef QBMCU_DECINFO_EXT_EXITI_MSB
|
|
`undef QBMCU_DECINFO_EXT_EXITI
|
|
`undef QBMCU_DECINFO_EXT_OP2IMM_LSB
|
|
`undef QBMCU_DECINFO_EXT_OP2IMM_MSB
|
|
`undef QBMCU_DECINFO_EXT_OP2IMM
|
|
`undef QBMCU_DECINFO_EXT_WIDTH
|
|
|
|
// Choose the longest group as the final DEC info width
|
|
`undef QBMCU_DECINFO_WIDTH
|
|
|