6 changed files with 367 additions and 174 deletions
@ -1,100 +1,100 @@ |
|||||||
|
|
||||||
parameter ADDR_MODE_IMPLIED = 0; |
localparam ADDR_MODE_IMPLIED = 0; |
||||||
parameter ADDR_MODE_IMMEDIATE = 1; |
localparam ADDR_MODE_IMMEDIATE = 1; |
||||||
parameter ADDR_MODE_ABSOLUTE = 2; |
localparam ADDR_MODE_ABSOLUTE = 2; |
||||||
parameter ADDR_MODE_ZP = 3; |
localparam ADDR_MODE_ZP = 3; |
||||||
parameter ADDR_MODE_INDEXED_ABSOLUTE = 4; |
localparam ADDR_MODE_INDEXED_ABSOLUTE = 4; |
||||||
parameter ADDR_MODE_INDEXED_ZP = 5; |
localparam ADDR_MODE_INDEXED_ZP = 5; |
||||||
parameter ADDR_MODE_INDIRECT = 6; |
localparam ADDR_MODE_INDIRECT = 6; |
||||||
parameter ADDR_MODE_PREINDEXED_INDIRECT = 7; |
localparam ADDR_MODE_PREINDEXED_INDIRECT = 7; |
||||||
parameter ADDR_MODE_POSTINDEXED_INDIRECT = 8; |
localparam ADDR_MODE_POSTINDEXED_INDIRECT = 8; |
||||||
parameter ADDR_MODE_RELATIVE = 9; |
localparam ADDR_MODE_RELATIVE = 9; |
||||||
|
|
||||||
parameter OP_OR = 0; |
localparam OP_OR = 0; |
||||||
parameter OP_AND = 1; |
localparam OP_AND = 1; |
||||||
parameter OP_EOR = 2; |
localparam OP_EOR = 2; |
||||||
parameter OP_ADC = 3; |
localparam OP_ADC = 3; |
||||||
parameter OP_SUB = 4; |
localparam OP_SUB = 4; |
||||||
parameter OP_ROT = 5; |
localparam OP_ROT = 5; |
||||||
parameter OP_SHF = 6; |
localparam OP_SHF = 6; |
||||||
|
|
||||||
parameter SHIFT_LEFT = 0; |
localparam SHIFT_LEFT = 0; |
||||||
parameter SHIFT_RIGHT = 1; |
localparam SHIFT_RIGHT = 1; |
||||||
|
|
||||||
parameter I_LDA = 0; |
localparam I_LDA = 0; |
||||||
parameter I_LDX = 1; |
localparam I_LDX = 1; |
||||||
parameter I_LDY = 2; |
localparam I_LDY = 2; |
||||||
parameter I_STA = 3; |
localparam I_STA = 3; |
||||||
parameter I_STX = 4; |
localparam I_STX = 4; |
||||||
parameter I_STY = 5; |
localparam I_STY = 5; |
||||||
parameter I_TAX = 6; |
localparam I_TAX = 6; |
||||||
parameter I_TAY = 7; |
localparam I_TAY = 7; |
||||||
parameter I_TXA = 8; |
localparam I_TXA = 8; |
||||||
parameter I_TYA = 9; |
localparam I_TYA = 9; |
||||||
parameter I_TSX = 10; |
localparam I_TSX = 10; |
||||||
parameter I_TXS = 11; |
localparam I_TXS = 11; |
||||||
parameter I_PHA = 12; |
localparam I_PHA = 12; |
||||||
parameter I_PHP = 13; |
localparam I_PHP = 13; |
||||||
parameter I_PLA = 14; |
localparam I_PLA = 14; |
||||||
parameter I_PLP = 15; |
localparam I_PLP = 15; |
||||||
parameter I_AND = 16; |
localparam I_AND = 16; |
||||||
parameter I_EOR = 17; |
localparam I_EOR = 17; |
||||||
parameter I_ORA = 18; |
localparam I_ORA = 18; |
||||||
parameter I_BIT = 19; |
localparam I_BIT = 19; |
||||||
parameter I_ADC = 20; |
localparam I_ADC = 20; |
||||||
parameter I_SBC = 21; |
localparam I_SBC = 21; |
||||||
parameter I_CMP = 22; |
localparam I_CMP = 22; |
||||||
parameter I_CPX = 23; |
localparam I_CPX = 23; |
||||||
parameter I_CPY = 24; |
localparam I_CPY = 24; |
||||||
parameter I_INC = 25; |
localparam I_INC = 25; |
||||||
parameter I_INX = 26; |
localparam I_INX = 26; |
||||||
parameter I_INY = 27; |
localparam I_INY = 27; |
||||||
parameter I_DEC = 28; |
localparam I_DEC = 28; |
||||||
parameter I_DEX = 29; |
localparam I_DEX = 29; |
||||||
parameter I_DEY = 30; |
localparam I_DEY = 30; |
||||||
parameter I_ASL = 31; |
localparam I_ASL = 31; |
||||||
parameter I_LSR = 32; |
localparam I_LSR = 32; |
||||||
parameter I_ROL = 33; |
localparam I_ROL = 33; |
||||||
parameter I_ROR = 34; |
localparam I_ROR = 34; |
||||||
parameter I_JMP = 35; |
localparam I_JMP = 35; |
||||||
parameter I_JSR = 36; |
localparam I_JSR = 36; |
||||||
parameter I_RTS = 37; |
localparam I_RTS = 37; |
||||||
parameter I_BCC = 38; |
localparam I_BCC = 38; |
||||||
parameter I_BCS = 39; |
localparam I_BCS = 39; |
||||||
parameter I_BEQ = 40; |
localparam I_BEQ = 40; |
||||||
parameter I_BMI = 41; |
localparam I_BMI = 41; |
||||||
parameter I_BNE = 42; |
localparam I_BNE = 42; |
||||||
parameter I_BPL = 43; |
localparam I_BPL = 43; |
||||||
parameter I_BVC = 44; |
localparam I_BVC = 44; |
||||||
parameter I_BVS = 45; |
localparam I_BVS = 45; |
||||||
parameter I_CLC = 46; |
localparam I_CLC = 46; |
||||||
parameter I_CLD = 47; |
localparam I_CLD = 47; |
||||||
parameter I_CLI = 48; |
localparam I_CLI = 48; |
||||||
parameter I_CLV = 49; |
localparam I_CLV = 49; |
||||||
parameter I_SEC = 50; |
localparam I_SEC = 50; |
||||||
parameter I_SED = 51; |
localparam I_SED = 51; |
||||||
parameter I_SEI = 52; |
localparam I_SEI = 52; |
||||||
parameter I_BRK = 53; |
localparam I_BRK = 53; |
||||||
parameter I_NOP = 54; |
localparam I_NOP = 54; |
||||||
parameter I_RTI = 55; |
localparam I_RTI = 55; |
||||||
|
|
||||||
// Unofficial opcodes |
// Unofficial opcodes |
||||||
parameter I_STP = 56; |
localparam I_STP = 56; |
||||||
parameter I_SHY = 57; |
localparam I_SHY = 57; |
||||||
|
|
||||||
|
|
||||||
parameter P_N = 8'h80; |
localparam P_N = 7; |
||||||
parameter P_V = 8'h40; |
localparam P_V = 6; |
||||||
parameter P_B = 8'h10; |
localparam P_B = 5; |
||||||
parameter P_D = 8'h08; |
localparam P_D = 3; |
||||||
parameter P_I = 8'h04; |
localparam P_I = 2; |
||||||
parameter P_Z = 8'h02; |
localparam P_Z = 1; |
||||||
parameter P_C = 8'h01; |
localparam P_C = 0; |
||||||
|
|
||||||
|
|
||||||
parameter DMUX_PC = 3'h0; |
localparam DMUX_PC = 3'h0; |
||||||
parameter DMUX_A = 3'h1; |
localparam DMUX_A = 3'h1; |
||||||
parameter DMUX_X = 3'h2; |
localparam DMUX_X = 3'h2; |
||||||
parameter DMUX_Y = 3'h3; |
localparam DMUX_Y = 3'h3; |
||||||
parameter DMUX_SP = 3'h4; |
localparam DMUX_SP = 3'h4; |
||||||
parameter DMUX_AUX = 3'h5; |
localparam DMUX_AUX = 3'h5; |
||||||
|
|||||||
@ -0,0 +1,32 @@ |
|||||||
|
[tasks] |
||||||
|
prf |
||||||
|
cvr |
||||||
|
|
||||||
|
[options] |
||||||
|
prf: mode prove |
||||||
|
prf: depth 20 |
||||||
|
cvr: mode cover |
||||||
|
cvr: depth 40 |
||||||
|
|
||||||
|
[engines] |
||||||
|
smtbmc yices |
||||||
|
|
||||||
|
[script] |
||||||
|
read -formal decoder.verilog |
||||||
|
read -formal cpu.verilog |
||||||
|
read -formal mio.verilog |
||||||
|
read -formal alu.verilog |
||||||
|
read -formal dmux.verilog |
||||||
|
read -formal parameters.vh |
||||||
|
hierarchy -top cpu |
||||||
|
proc -norom |
||||||
|
prep -top cpu |
||||||
|
|
||||||
|
|
||||||
|
[files] |
||||||
|
decoder.verilog |
||||||
|
cpu.verilog |
||||||
|
mio.verilog |
||||||
|
alu.verilog |
||||||
|
dmux.verilog |
||||||
|
parameters.vh |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
[tasks] |
||||||
|
prf |
||||||
|
cvr |
||||||
|
|
||||||
|
[options] |
||||||
|
prf: mode prove |
||||||
|
prf: depth 40 |
||||||
|
cvr: mode cover |
||||||
|
cvr: depth 40 |
||||||
|
|
||||||
|
[engines] |
||||||
|
smtbmc yices |
||||||
|
|
||||||
|
[script] |
||||||
|
read -formal decoder.verilog |
||||||
|
read -formal parameters.vh |
||||||
|
hierarchy -top decoder |
||||||
|
proc -norom |
||||||
|
prep -top decoder |
||||||
|
|
||||||
|
|
||||||
|
[files] |
||||||
|
decoder.verilog |
||||||
|
parameters.vh |
||||||
Loading…
Reference in new issue