|
| 1 | +/*! |
| 2 | +@weakgroup test |
| 3 | +@{ |
| 4 | +@file |
| 5 | +@author Luther Lee |
| 6 | +@data 2023/08/23 |
| 7 | +@brief Test <i>index operator</i> `[]` applied to array. |
| 8 | +@version |
| 9 | +Portable Test and Stimulus Standard Version 2.0 <br> |
| 10 | +> Section 8.8 : Collections <br> |
| 11 | +> Section 8.8.2 : Arrays <br> |
| 12 | +> Section 8.8.2.1 : Array operators <br> |
| 13 | +> Section 9.6 : Primary expressions <br> |
| 14 | +> Section 9.6.2 : Selecting an element from a collection (indexing) <br> |
| 15 | + |
| 16 | + |
| 17 | +--------------------------------------------------------------------------------------------------- |
| 18 | + |
| 19 | +### Test Command |
| 20 | +@code{.unparsed} |
| 21 | +make gentarget |
| 22 | +@endcode |
| 23 | +*/ |
| 24 | +component pss_top { |
| 25 | + action root_a { |
| 26 | + bit [4] nibbleArray_0 [3] = {4'b1100, 4'b0110, 4'b0011}; |
| 27 | + array<bit [4], 3> nibbleArray_1 = {4'b1100, 4'b0110, 4'b0011}; |
| 28 | + bit [4] nibble_0_0 = 4'b0001; |
| 29 | + bit [4] nibble_0_1 = 4'b0010; |
| 30 | + bit [4] nibble_0_2 = 4'b0100; |
| 31 | + bit [4] nibble_1_0 = 4'b0001; |
| 32 | + bit [4] nibble_1_1 = 4'b0010; |
| 33 | + bit [4] nibble_1_2 = 4'b0100; |
| 34 | + |
| 35 | + exec post_solve { |
| 36 | + nibbleArray_0[0] = 4'b0110; |
| 37 | + nibbleArray_0[1] = nibbleArray_0[2]; |
| 38 | + nibbleArray_0[2] |= nibbleArray_0[0]; |
| 39 | + |
| 40 | + nibbleArray_1[0] = 4'b0110; |
| 41 | + nibbleArray_1[1] = nibbleArray_1[2]; |
| 42 | + nibbleArray_1[2] |= nibbleArray_1[0]; |
| 43 | + |
| 44 | + nibble_0_0 = nibbleArray_0[0]; |
| 45 | + nibble_0_1 = nibbleArray_0[1]; |
| 46 | + nibble_0_2 = nibbleArray_0[2]; |
| 47 | + |
| 48 | + nibble_1_0 = nibbleArray_1[0]; |
| 49 | + nibble_1_1 = nibbleArray_1[1]; |
| 50 | + nibble_1_2 = nibbleArray_1[2]; |
| 51 | + } |
| 52 | + |
| 53 | + exec body ASM = |
| 54 | +""" |
| 55 | +nibble_0_0 = {{nibble_0_0}} = {{nibble_0_0[3]}}{{nibble_0_0[2]}}{{nibble_0_0[1]}}{{nibble_0_0[0]}} |
| 56 | +nibble_0_1 = {{nibble_0_1}} = {{nibble_0_1[3]}}{{nibble_0_1[2]}}{{nibble_0_1[1]}}{{nibble_0_1[0]}} |
| 57 | +nibble_0_2 = {{nibble_0_2}} = {{nibble_0_2[3]}}{{nibble_0_2[2]}}{{nibble_0_2[1]}}{{nibble_0_2[0]}} |
| 58 | +nibble_1_0 = {{nibble_1_0}} = {{nibble_1_0[3]}}{{nibble_1_0[2]}}{{nibble_1_0[1]}}{{nibble_1_0[0]}} |
| 59 | +nibble_1_1 = {{nibble_1_1}} = {{nibble_1_1[3]}}{{nibble_1_1[2]}}{{nibble_1_1[1]}}{{nibble_1_1[0]}} |
| 60 | +nibble_1_2 = {{nibble_1_2}} = {{nibble_1_2[3]}}{{nibble_1_2[2]}}{{nibble_1_2[1]}}{{nibble_1_2[0]}} |
| 61 | +"""; |
| 62 | + } |
| 63 | +} |
| 64 | + |
| 65 | +/**@}*/ |
0 commit comments