mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Fixed some references to rvvi.
This commit is contained in:
		
							parent
							
								
									ea5d780adf
								
							
						
					
					
						commit
						8fd278b322
					
				| @ -31,7 +31,7 @@ module rvvisynth import cvw::*; #(parameter cvw_t P, | |||||||
|                                   parameter integer MAX_CSRS)( |                                   parameter integer MAX_CSRS)( | ||||||
|   input logic clk, reset, |   input logic clk, reset, | ||||||
|   output logic valid, |   output logic valid, | ||||||
|   output logic [199+(3*P.XLEN) + MAX_CSRS*(P.XLEN+12)-1:0] rvvi |   output logic [187+(3*P.XLEN) + MAX_CSRS*(P.XLEN+12)-1:0] rvvi | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|   localparam TOTAL_CSRS = 36; |   localparam TOTAL_CSRS = 36; | ||||||
| @ -59,67 +59,67 @@ module rvvisynth import cvw::*; #(parameter cvw_t P, | |||||||
|   logic [11:0]                              CSRCount; |   logic [11:0]                              CSRCount; | ||||||
|   logic [177+P.XLEN-1:0]                    Required; |   logic [177+P.XLEN-1:0]                    Required; | ||||||
|   logic [10+2*P.XLEN-1:0]                   Registers; |   logic [10+2*P.XLEN-1:0]                   Registers; | ||||||
|   logic [12+MAX_CSRS*(P.XLEN+12)-1:0]       CSRs; |   logic [MAX_CSRS*(P.XLEN+12)-1:0]       CSRs; | ||||||
|       |       | ||||||
|   // get signals from the core.
 |   // get signals from the core.
 | ||||||
|   assign StallE         = testbench.dut.core.StallE; |   assign StallE         = dut.core.StallE; | ||||||
|   assign StallM         = testbench.dut.core.StallM; |   assign StallM         = dut.core.StallM; | ||||||
|   assign StallW         = testbench.dut.core.StallW; |   assign StallW         = dut.core.StallW; | ||||||
|   assign FlushE         = testbench.dut.core.FlushE; |   assign FlushE         = dut.core.FlushE; | ||||||
|   assign FlushM         = testbench.dut.core.FlushM; |   assign FlushM         = dut.core.FlushM; | ||||||
|   assign FlushW         = testbench.dut.core.FlushW; |   assign FlushW         = dut.core.FlushW; | ||||||
|   assign InstrValidM    = testbench.dut.core.ieu.InstrValidM; |   assign InstrValidM    = dut.core.ieu.InstrValidM; | ||||||
|   assign InstrRawD      = testbench.dut.core.ifu.InstrRawD; |   assign InstrRawD      = dut.core.ifu.InstrRawD; | ||||||
|   assign PCM            = testbench.dut.core.ifu.PCM; |   assign PCM            = dut.core.ifu.PCM; | ||||||
|   assign Mcycle         = testbench.dut.core.priv.priv.csr.counters.counters.HPMCOUNTER_REGW[0]; |   assign Mcycle         = dut.core.priv.priv.csr.counters.counters.HPMCOUNTER_REGW[0]; | ||||||
|   assign Minstret       = testbench.dut.core.priv.priv.csr.counters.counters.HPMCOUNTER_REGW[2]; |   assign Minstret       = dut.core.priv.priv.csr.counters.counters.HPMCOUNTER_REGW[2]; | ||||||
|   assign TrapM          = testbench.dut.core.TrapM; |   assign TrapM          = dut.core.TrapM; | ||||||
|   assign PrivilegeModeW = testbench.dut.core.priv.priv.privmode.PrivilegeModeW; |   assign PrivilegeModeW = dut.core.priv.priv.privmode.PrivilegeModeW; | ||||||
|   assign GPRAddr        = testbench.dut.core.ieu.dp.regf.a3; |   assign GPRAddr        = dut.core.ieu.dp.regf.a3; | ||||||
|   assign GPRWen         = testbench.dut.core.ieu.dp.regf.we3; |   assign GPRWen         = dut.core.ieu.dp.regf.we3; | ||||||
|   assign GPRValue       = testbench.dut.core.ieu.dp.regf.wd3; |   assign GPRValue       = dut.core.ieu.dp.regf.wd3; | ||||||
|   assign FPRAddr        = testbench.dut.core.fpu.fpu.fregfile.a4; |   assign FPRAddr        = dut.core.fpu.fpu.fregfile.a4; | ||||||
|   assign FPRWen         = testbench.dut.core.fpu.fpu.fregfile.we4; |   assign FPRWen         = dut.core.fpu.fpu.fregfile.we4; | ||||||
|   assign FPRValue       = testbench.dut.core.fpu.fpu.fregfile.wd4; |   assign FPRValue       = dut.core.fpu.fpu.fregfile.wd4; | ||||||
| 
 | 
 | ||||||
|   assign CSRArray[0] = testbench.dut.core.priv.priv.csr.csrm.MSTATUS_REGW; // 12'h300
 |   assign CSRArray[0] = dut.core.priv.priv.csr.csrm.MSTATUS_REGW; // 12'h300
 | ||||||
|   assign CSRArray[1] = testbench.dut.core.priv.priv.csr.csrm.MSTATUSH_REGW; // 12'h310
 |   assign CSRArray[1] = dut.core.priv.priv.csr.csrm.MSTATUSH_REGW; // 12'h310
 | ||||||
|   assign CSRArray[2] = testbench.dut.core.priv.priv.csr.csrm.MTVEC_REGW; // 12'h305
 |   assign CSRArray[2] = dut.core.priv.priv.csr.csrm.MTVEC_REGW; // 12'h305
 | ||||||
|   assign CSRArray[3] = testbench.dut.core.priv.priv.csr.csrm.MEPC_REGW; // 12'h341
 |   assign CSRArray[3] = dut.core.priv.priv.csr.csrm.MEPC_REGW; // 12'h341
 | ||||||
|   assign CSRArray[4] = testbench.dut.core.priv.priv.csr.csrm.MCOUNTEREN_REGW; // 12'h306
 |   assign CSRArray[4] = dut.core.priv.priv.csr.csrm.MCOUNTEREN_REGW; // 12'h306
 | ||||||
|   assign CSRArray[5] = testbench.dut.core.priv.priv.csr.csrm.MCOUNTINHIBIT_REGW; // 12'h320
 |   assign CSRArray[5] = dut.core.priv.priv.csr.csrm.MCOUNTINHIBIT_REGW; // 12'h320
 | ||||||
|   assign CSRArray[6] = testbench.dut.core.priv.priv.csr.csrm.MEDELEG_REGW; // 12'h302
 |   assign CSRArray[6] = dut.core.priv.priv.csr.csrm.MEDELEG_REGW; // 12'h302
 | ||||||
|   assign CSRArray[7] = testbench.dut.core.priv.priv.csr.csrm.MIDELEG_REGW; // 12'h303
 |   assign CSRArray[7] = dut.core.priv.priv.csr.csrm.MIDELEG_REGW; // 12'h303
 | ||||||
|   assign CSRArray[8] = testbench.dut.core.priv.priv.csr.csrm.MIP_REGW; // 12'h344
 |   assign CSRArray[8] = dut.core.priv.priv.csr.csrm.MIP_REGW; // 12'h344
 | ||||||
|   assign CSRArray[9] = testbench.dut.core.priv.priv.csr.csrm.MIE_REGW; // 12'h304
 |   assign CSRArray[9] = dut.core.priv.priv.csr.csrm.MIE_REGW; // 12'h304
 | ||||||
|   assign CSRArray[10] = testbench.dut.core.priv.priv.csr.csrm.MISA_REGW; // 12'h301
 |   assign CSRArray[10] = dut.core.priv.priv.csr.csrm.MISA_REGW; // 12'h301
 | ||||||
|   assign CSRArray[11] = testbench.dut.core.priv.priv.csr.csrm.MENVCFG_REGW; // 12'h30A
 |   assign CSRArray[11] = dut.core.priv.priv.csr.csrm.MENVCFG_REGW; // 12'h30A
 | ||||||
|   assign CSRArray[12] = testbench.dut.core.priv.priv.csr.csrm.MHARTID_REGW; // 12'hF14
 |   assign CSRArray[12] = dut.core.priv.priv.csr.csrm.MHARTID_REGW; // 12'hF14
 | ||||||
|   assign CSRArray[13] = testbench.dut.core.priv.priv.csr.csrm.MSCRATCH_REGW; // 12'h340
 |   assign CSRArray[13] = dut.core.priv.priv.csr.csrm.MSCRATCH_REGW; // 12'h340
 | ||||||
|   assign CSRArray[14] = testbench.dut.core.priv.priv.csr.csrm.MCAUSE_REGW; // 12'h342
 |   assign CSRArray[14] = dut.core.priv.priv.csr.csrm.MCAUSE_REGW; // 12'h342
 | ||||||
|   assign CSRArray[15] = testbench.dut.core.priv.priv.csr.csrm.MTVAL_REGW; // 12'h343
 |   assign CSRArray[15] = dut.core.priv.priv.csr.csrm.MTVAL_REGW; // 12'h343
 | ||||||
|   assign CSRArray[16] = 0; // 12'hF11
 |   assign CSRArray[16] = 0; // 12'hF11
 | ||||||
|   assign CSRArray[17] = 0; // 12'hF12
 |   assign CSRArray[17] = 0; // 12'hF12
 | ||||||
|   assign CSRArray[18] = {{P.XLEN-12{1'b0}}, 12'h100}; //P.XLEN'h100; // 12'hF13
 |   assign CSRArray[18] = {{P.XLEN-12{1'b0}}, 12'h100}; //P.XLEN'h100; // 12'hF13
 | ||||||
|   assign CSRArray[19] = 0; // 12'hF15
 |   assign CSRArray[19] = 0; // 12'hF15
 | ||||||
|   assign CSRArray[20] = 0; // 12'h34A
 |   assign CSRArray[20] = 0; // 12'h34A
 | ||||||
| 	  // supervisor CSRs
 | 	  // supervisor CSRs
 | ||||||
|   assign CSRArray[21] = testbench.dut.core.priv.priv.csr.csrs.csrs.SSTATUS_REGW; // 12'h100
 |   assign CSRArray[21] = dut.core.priv.priv.csr.csrs.csrs.SSTATUS_REGW; // 12'h100
 | ||||||
|   assign CSRArray[22] = testbench.dut.core.priv.priv.csr.csrm.MIE_REGW & 12'h222; // 12'h104
 |   assign CSRArray[22] = dut.core.priv.priv.csr.csrm.MIE_REGW & 12'h222; // 12'h104
 | ||||||
|   assign CSRArray[23] = testbench.dut.core.priv.priv.csr.csrs.csrs.STVEC_REGW; // 12'h105
 |   assign CSRArray[23] = dut.core.priv.priv.csr.csrs.csrs.STVEC_REGW; // 12'h105
 | ||||||
|   assign CSRArray[24] = testbench.dut.core.priv.priv.csr.csrs.csrs.SEPC_REGW; // 12'h141
 |   assign CSRArray[24] = dut.core.priv.priv.csr.csrs.csrs.SEPC_REGW; // 12'h141
 | ||||||
|   assign CSRArray[25] = testbench.dut.core.priv.priv.csr.csrs.csrs.SCOUNTEREN_REGW; // 12'h106
 |   assign CSRArray[25] = dut.core.priv.priv.csr.csrs.csrs.SCOUNTEREN_REGW; // 12'h106
 | ||||||
|   assign CSRArray[26] = testbench.dut.core.priv.priv.csr.csrs.csrs.SENVCFG_REGW; // 12'h10A
 |   assign CSRArray[26] = dut.core.priv.priv.csr.csrs.csrs.SENVCFG_REGW; // 12'h10A
 | ||||||
|   assign CSRArray[27] = testbench.dut.core.priv.priv.csr.csrs.csrs.SATP_REGW; // 12'h180
 |   assign CSRArray[27] = dut.core.priv.priv.csr.csrs.csrs.SATP_REGW; // 12'h180
 | ||||||
|   assign CSRArray[28] = testbench.dut.core.priv.priv.csr.csrs.csrs.SSCRATCH_REGW; // 12'h140
 |   assign CSRArray[28] = dut.core.priv.priv.csr.csrs.csrs.SSCRATCH_REGW; // 12'h140
 | ||||||
|   assign CSRArray[29] = testbench.dut.core.priv.priv.csr.csrs.csrs.STVAL_REGW; // 12'h143
 |   assign CSRArray[29] = dut.core.priv.priv.csr.csrs.csrs.STVAL_REGW; // 12'h143
 | ||||||
|   assign CSRArray[30] = testbench.dut.core.priv.priv.csr.csrs.csrs.SCAUSE_REGW; // 12'h142
 |   assign CSRArray[30] = dut.core.priv.priv.csr.csrs.csrs.SCAUSE_REGW; // 12'h142
 | ||||||
|   assign CSRArray[31] = testbench.dut.core.priv.priv.csr.csrm.MIP_REGW & 12'h222 & testbench.dut.core.priv.priv.csr.csrm.MIDELEG_REGW; // 12'h144
 |   assign CSRArray[31] = dut.core.priv.priv.csr.csrm.MIP_REGW & 12'h222 & dut.core.priv.priv.csr.csrm.MIDELEG_REGW; // 12'h144
 | ||||||
|   assign CSRArray[32] = testbench.dut.core.priv.priv.csr.csrs.csrs.STIMECMP_REGW; // 12'h14D
 |   assign CSRArray[32] = dut.core.priv.priv.csr.csrs.csrs.STIMECMP_REGW; // 12'h14D
 | ||||||
| 	  // user CSRs
 | 	  // user CSRs
 | ||||||
|   assign CSRArray[33] = testbench.dut.core.priv.priv.csr.csru.csru.FFLAGS_REGW; // 12'h001
 |   assign CSRArray[33] = dut.core.priv.priv.csr.csru.csru.FFLAGS_REGW; // 12'h001
 | ||||||
|   assign CSRArray[34] = testbench.dut.core.priv.priv.csr.csru.csru.FRM_REGW; // 12'h002
 |   assign CSRArray[34] = dut.core.priv.priv.csr.csru.csru.FRM_REGW; // 12'h002
 | ||||||
|   assign CSRArray[35] = {testbench.dut.core.priv.priv.csr.csru.csru.FRM_REGW, testbench.dut.core.priv.priv.csr.csru.csru.FFLAGS_REGW}; // 12'h003
 |   assign CSRArray[35] = {dut.core.priv.priv.csr.csru.csru.FRM_REGW, dut.core.priv.priv.csr.csru.csru.FFLAGS_REGW}; // 12'h003
 | ||||||
| 
 | 
 | ||||||
|   //
 |   //
 | ||||||
|   assign XLENZeros = '0; |   assign XLENZeros = '0; | ||||||
| @ -163,5 +163,7 @@ module rvvisynth import cvw::*; #(parameter cvw_t P, | |||||||
|     assign EnabledCSRs[index] = |CSRWenShort; |     assign EnabledCSRs[index] = |CSRWenShort; | ||||||
|   end |   end | ||||||
|   assign CSRCount = +EnabledCSRs; |   assign CSRCount = +EnabledCSRs; | ||||||
|  |   assign rvvi = {CSRs, Registers, Required}; | ||||||
|  |    | ||||||
| endmodule | endmodule | ||||||
|                                                                   |                                                                   | ||||||
|  | |||||||
| @ -93,7 +93,7 @@ module wallypipelinedsoc import cvw::*; #(parameter cvw_t P)  ( | |||||||
| 
 | 
 | ||||||
|   localparam MAX_CSRS = 3; |   localparam MAX_CSRS = 3; | ||||||
|   logic valid; |   logic valid; | ||||||
|   logic [199+(3*P.XLEN) + MAX_CSRS*(P.XLEN+12)-1:0] rvvi; |   logic [187+(3*P.XLEN) + MAX_CSRS*(P.XLEN+12)-1:0] rvvi; | ||||||
|   rvvisynth #(P, MAX_CSRS) rvvisynth(.clk, .reset, .valid, .rvvi); |   rvvisynth #(P, MAX_CSRS) rvvisynth(.clk, .reset, .valid, .rvvi); | ||||||
|    |    | ||||||
| endmodule | endmodule | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user