Livt packages
Eccelerators.RiscV
Version 0.3.0
Composable RV32I and Zmmul processors, machine-mode support, and reusable FPGA system components written in Livt.
Published files (120)
- fixtures
- DelayedWordDevice.lvt
- PipelineFetchMemory.lvt
- PipelineWordDevice.lvt
- README.md
- Rv32BusCoreTest.lvt
- Rv32BusProtocolTest.lvt
- Rv32CsrEngineTest.lvt
- Rv32CsrRetirement.lvt
- Rv32DspControlTest.lvt
- Rv32DspEngineTest.lvt
- Rv32DspMultiplierTest.lvt
- Rv32DualReadDistributedTest.lvt
- Rv32DualReadRegisterBankTest.lvt
- Rv32ExternalInterruptTest.lvt
- Rv32FetchBusTest.lvt
- Rv32iConstantsTest.lvt
- Rv32iDecodeTest.lvt
- Rv32InterruptCsrTest.lvt
- Rv32iPackageApiTest.lvt
- Rv32iSemanticsTest.lvt
- Rv32IterativeMultiplierTest.lvt
- Rv32LoadStoreBusTest.lvt
- Rv32MachineCsrsTest.lvt
- Rv32MachineDecoderTest.lvt
- Rv32MultiplyRetirement.lvt
- Rv32MultiplyVectors.lvt
- Rv32PipelineControlTest.lvt
- Rv32PipelineCsrEngineTest.lvt
- Rv32PipelineDspEngineTest.lvt
- Rv32PipelineEngineTest.lvt
- Rv32PipelineExternalInterruptTest.lvt
- Rv32PipelineTimerInterruptTest.lvt
- Rv32PipelineTrapEngineTest.lvt
- Rv32PipelineZmmulEngineTest.lvt
- Rv32RegisterBankTest.lvt
- Rv32SequentialControlTest.lvt
- Rv32SequentialEngineTest.lvt
- Rv32TimerInterruptTest.lvt
- Rv32TrapEngineTest.lvt
- Rv32TrapPolicyTest.lvt
- Rv32ZicsrAccessTest.lvt
- Rv32ZicsrDecoderTest.lvt
- Rv32ZmmulControlTest.lvt
- Rv32ZmmulDecodeTest.lvt
- Rv32ZmmulEngineTest.lvt
- RvExternalInterruptsTest.lvt
- RvMachineSystemTest.lvt
- RvMachineTimerTest.lvt
- RvPipelineSystemTest.lvt
- RvSystemTest.lvt
- RvUartDeviceTest.lvt
- RvUartSystemTest.lvt
tests/Rv32MultiplyVectors.lvt
namespace Eccelerators.RiscV.Tests
/**
* Generated Python integer oracle; no expected value is calculated by the hardware.
* Checked-in tables keep expected results independent of the hardware datapath.
*/
class Rv32MultiplyVectors
{
// Operand pairs and expected products, grouped by funct3.
public const LEFT_WORDS: uint[113] = [
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000001, 0x00000001,
0x00000001, 0x00000001, 0x00000001, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002,
0x00000002, 0x00000002, 0x00000002, 0x00000002,
0x00000002, 0x00000002, 0x00000002, 0x7fffffff,
0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff,
0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff,
0x80000000, 0x80000000, 0x80000000, 0x80000000,
0x80000000, 0x80000000, 0x80000000, 0x80000000,
0x80000000, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xfffffffe, 0xfffffffe,
0xfffffffe, 0xfffffffe, 0xfffffffe, 0xfffffffe,
0xfffffffe, 0xfffffffe, 0xfffffffe, 0x55555555,
0x55555555, 0x55555555, 0x55555555, 0x55555555,
0x55555555, 0x55555555, 0x55555555, 0x55555555,
0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
0xaaaaaaaa, 0xf8dc84a7, 0xc90686a6, 0x7fdd83da,
0xfa5a978f, 0x9354751a, 0xe624ceda, 0x0f886dc4,
0x66dfde38, 0xaf4e7de8, 0xe044402d, 0xdb9bbd08,
0x0ec8b212, 0x73ad071a, 0x2dc9c750, 0x8f0519ee,
0x09637204, 0x8099b0fb, 0x3c80b0e9, 0x0f63e32a,
0x8850ecef, 0xc12b4fd9, 0x937e0c30, 0xba5a7301,
0x76bddfb1, 0xac08b8b4, 0xeae61ec6, 0xe1e171df,
0x8d951228, 0x9b1778d7, 0x6fe33cdd, 0x4e1a0057,
0x40b49d98
]
// Right operands paired by index with LEFT_WORDS.
public const RIGHT_WORDS: uint[113] = [
0x00000000, 0x00000001, 0x00000002, 0x7fffffff,
0x80000000, 0xffffffff, 0xfffffffe, 0x55555555,
0xaaaaaaaa, 0x00000000, 0x00000001, 0x00000002,
0x7fffffff, 0x80000000, 0xffffffff, 0xfffffffe,
0x55555555, 0xaaaaaaaa, 0x00000000, 0x00000001,
0x00000002, 0x7fffffff, 0x80000000, 0xffffffff,
0xfffffffe, 0x55555555, 0xaaaaaaaa, 0x00000000,
0x00000001, 0x00000002, 0x7fffffff, 0x80000000,
0xffffffff, 0xfffffffe, 0x55555555, 0xaaaaaaaa,
0x00000000, 0x00000001, 0x00000002, 0x7fffffff,
0x80000000, 0xffffffff, 0xfffffffe, 0x55555555,
0xaaaaaaaa, 0x00000000, 0x00000001, 0x00000002,
0x7fffffff, 0x80000000, 0xffffffff, 0xfffffffe,
0x55555555, 0xaaaaaaaa, 0x00000000, 0x00000001,
0x00000002, 0x7fffffff, 0x80000000, 0xffffffff,
0xfffffffe, 0x55555555, 0xaaaaaaaa, 0x00000000,
0x00000001, 0x00000002, 0x7fffffff, 0x80000000,
0xffffffff, 0xfffffffe, 0x55555555, 0xaaaaaaaa,
0x00000000, 0x00000001, 0x00000002, 0x7fffffff,
0x80000000, 0xffffffff, 0xfffffffe, 0x55555555,
0xaaaaaaaa, 0x83651534, 0xa0b413e5, 0x686918c9,
0xf4db8e4e, 0x5992d13e, 0xcccaad38, 0xd0d5a381,
0xfab164f8, 0xdb304d4b, 0x7fcbc421, 0x8723a518,
0x0b23b277, 0xec859ae4, 0x9fac28e9, 0xbe653ae2,
0x0125e86a, 0x283cddd3, 0xfc8d1014, 0x39882476,
0xb2876064, 0x0e971d80, 0xf1b726ba, 0xab652492,
0xdf878594, 0x156d0c33, 0xe9932942, 0xa0229052,
0x9c2ab1c3, 0x229f8134, 0x01926fa4, 0xabe4cee9,
0x9a6f9a52
]
// Expected products, grouped by multiply operation and operand-pair index.
public const EXPECTED: uint[452] = [
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00000002,
0x7fffffff, 0x80000000, 0xffffffff, 0xfffffffe,
0x55555555, 0xaaaaaaaa, 0x00000000, 0x00000002,
0x00000004, 0xfffffffe, 0x00000000, 0xfffffffe,
0xfffffffc, 0xaaaaaaaa, 0x55555554, 0x00000000,
0x7fffffff, 0xfffffffe, 0x00000001, 0x80000000,
0x80000001, 0x00000002, 0x2aaaaaab, 0x55555556,
0x00000000, 0x80000000, 0x00000000, 0x80000000,
0x00000000, 0x80000000, 0x00000000, 0x80000000,
0x00000000, 0x00000000, 0xffffffff, 0xfffffffe,
0x80000001, 0x80000000, 0x00000001, 0x00000002,
0xaaaaaaab, 0x55555556, 0x00000000, 0xfffffffe,
0xfffffffc, 0x00000002, 0x00000000, 0x00000002,
0x00000004, 0x55555556, 0xaaaaaaac, 0x00000000,
0x55555555, 0xaaaaaaaa, 0x2aaaaaab, 0x80000000,
0xaaaaaaab, 0x55555556, 0x38e38e39, 0x71c71c72,
0x00000000, 0xaaaaaaaa, 0x55555554, 0x55555556,
0x00000000, 0x55555556, 0xaaaaaaac, 0x71c71c72,
0xe38e38e4, 0x6e8fa4ec, 0xbb8cc47e, 0xcdb2f62a,
0x7b007f92, 0x74e2964c, 0x27da91b0, 0x45b71bc4,
0x70652640, 0x0b5daaf8, 0x609db9cd, 0x0787e0c0,
0x89914a5e, 0xc4e1f728, 0xcd8ae7d0, 0x4946d01c,
0x8114d5a8, 0x5f498de1, 0x91716234, 0x2c4c9d5c,
0xb87f2d5c, 0x74b28180, 0xc5b3fae0, 0x0a26ba92,
0x70534754, 0x17093bdc, 0x4bf3a50c, 0xa9e1e96e,
0x44aa7c78, 0xf031e2ac, 0xc800d094, 0x6c6c512f,
0x258feab0, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0xffffffff, 0xffffffff,
0xffffffff, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0xffffffff,
0xffffffff, 0xffffffff, 0x00000000, 0xffffffff,
0x00000000, 0x00000000, 0x00000000, 0x3fffffff,
0xc0000000, 0xffffffff, 0xffffffff, 0x2aaaaaaa,
0xd5555555, 0x00000000, 0xffffffff, 0xffffffff,
0xc0000000, 0x40000000, 0x00000000, 0x00000001,
0xd5555555, 0x2aaaaaab, 0x00000000, 0xffffffff,
0xffffffff, 0xffffffff, 0x00000000, 0x00000000,
0x00000000, 0xffffffff, 0x00000000, 0x00000000,
0xffffffff, 0xffffffff, 0xffffffff, 0x00000001,
0x00000000, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x2aaaaaaa,
0xd5555555, 0xffffffff, 0xffffffff, 0x1c71c71c,
0xe38e38e3, 0x00000000, 0xffffffff, 0xffffffff,
0xd5555555, 0x2aaaaaab, 0x00000000, 0x00000000,
0xe38e38e3, 0x1c71c71c, 0x037981a3, 0x1476e1d2,
0x34267bcc, 0x003ee941, 0xd9fa0a0e, 0x052c0d88,
0xfd2361da, 0xfdde0a26, 0x0b9a6e28, 0xf02899a5,
0x112e527a, 0x00a4af65, 0xf732da53, 0xeec5565d,
0x1cf40257, 0x000ac757, 0xebf9b948, 0xff2f53ea,
0x03756cd6, 0x24380d6b, 0xfc6b47ac, 0x060dfbf9,
0x1704738d, 0xf0f06240, 0xf8f8f2dd, 0x01d931f9,
0x0b476442, 0x2c9eafea, 0xf25a3eb2, 0x00afe3a0,
0xe6572c2b, 0xe6543e87, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000001, 0x00000001, 0x00000001, 0x00000000,
0x00000001, 0x00000000, 0x00000000, 0x00000000,
0x3fffffff, 0x3fffffff, 0x7ffffffe, 0x7ffffffe,
0x2aaaaaaa, 0x55555554, 0x00000000, 0xffffffff,
0xffffffff, 0xc0000000, 0xc0000000, 0x80000000,
0x80000001, 0xd5555555, 0xaaaaaaab, 0x00000000,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
0x00000000, 0xffffffff, 0xffffffff, 0xffffffff,
0xffffffff, 0xfffffffe, 0xfffffffe, 0xffffffff,
0xfffffffe, 0x00000000, 0x00000000, 0x00000000,
0x2aaaaaaa, 0x2aaaaaaa, 0x55555554, 0x55555554,
0x1c71c71c, 0x38e38e38, 0x00000000, 0xffffffff,
0xffffffff, 0xd5555555, 0xd5555555, 0xaaaaaaaa,
0xaaaaaaaa, 0xe38e38e3, 0xc71c71c6, 0xfc56064a,
0xdd7d6878, 0x34267bcc, 0xfa9980d0, 0xd9fa0a0e,
0xeb50dc62, 0x0cabcf9e, 0x64bde85e, 0xbae8ec10,
0xf02899a5, 0xecca0f82, 0x00a4af65, 0x6adfe16d,
0x1c8f1dad, 0xabf91c45, 0x000ac757, 0xebf9b948,
0x3bb004d3, 0x03756cd6, 0xac88fa5a, 0xfc6b47ac,
0x998c0829, 0xd15ee68e, 0x67ae41f1, 0xf8f8f2dd,
0xecbf50bf, 0xed28d621, 0xba33c212, 0xf25a3eb2,
0x00afe3a0, 0x34712c82, 0x2708dc1f, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000001, 0x00000001,
0x00000000, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x3fffffff, 0x3fffffff, 0x7ffffffe,
0x7ffffffe, 0x2aaaaaaa, 0x55555554, 0x00000000,
0x00000000, 0x00000001, 0x3fffffff, 0x40000000,
0x7fffffff, 0x7fffffff, 0x2aaaaaaa, 0x55555555,
0x00000000, 0x00000000, 0x00000001, 0x7ffffffe,
0x7fffffff, 0xfffffffe, 0xfffffffd, 0x55555554,
0xaaaaaaa9, 0x00000000, 0x00000000, 0x00000001,
0x7ffffffe, 0x7fffffff, 0xfffffffd, 0xfffffffc,
0x55555554, 0xaaaaaaa8, 0x00000000, 0x00000000,
0x00000000, 0x2aaaaaaa, 0x2aaaaaaa, 0x55555554,
0x55555554, 0x1c71c71c, 0x38e38e38, 0x00000000,
0x00000000, 0x00000001, 0x55555554, 0x55555555,
0xaaaaaaa9, 0xaaaaaaa8, 0x38e38e38, 0x71c71c70,
0x7fbb1b7e, 0x7e317c5d, 0x34267bcc, 0xef750f1e,
0x338cdb4c, 0xb81b899a, 0x0cabcf9e, 0x64bde85e,
0x9619395b, 0x6ff45dc6, 0x73edb49a, 0x00a4af65,
0x6adfe16d, 0x1c8f1dad, 0x6a5e5727, 0x000ac757,
0x1436971b, 0x3bb004d3, 0x03756cd6, 0x5f105abe,
0x0b02652c, 0x8b432ee3, 0x7cc40b20, 0x67ae41f1,
0x0e65ff10, 0xd6527a01, 0x8d4b6673, 0x565e73d5,
0x14f9bfe6, 0x00afe3a0, 0x34712c82, 0x2708dc1f
]
}