| SystemC Simulation |
| |
| INTEGER SIZE = 4 bytes |
| SHORT INTEGER SIZE = 2 bytes |
| LONG INTEGER SIZE = 8 bytes |
| UNSIGNED LONG SIZE = 8 bytes |
| SIGNED LONG SIZE = 8 bytes |
| |
| std_ulogic_vector <= C++ string |
| ------------------------------------------- |
| A = 01XZXXXXX "01XZUWLH-" |
| B = XX0XX1XXX "ZZ1XX0UU1WWW" |
| BIG = 11110000111100001111000011110000111100001111000011110000111100001111 |
| "11110000111100001111000011110000111100001111000011110000111100001111" |
| HUGE = 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111000011110000111100001111000011110000111100001111000011110000 |
| 1111 |
| |
| std_ulogic_vector <= std_ulogic_vector |
| -------------------------------------------------- |
| C = XX0XX1XXX ZZ1XX0XX1XXX |
| BIG2 = 11110000111100001111000011110000111100001111000011110000111100001111 |
| "11110000111100001111000011110000111100001111000011110000111100001111" |
| |
| std_ulogic_vector <= C++ array of bool |
| -------------------------------------------------- |
| D = XXXXZX10X -, L, H, W, Z, X, 1, 0, U |
| E = 10011XXXX X, X, 1, 1, 0, 0, 1, 1, X, X, U, U |
| BIG3 = 11110000111100001111000011110000111100001111000011110000111100001111 |
| "11110000111100001111000011110000111100001111000011110000111100001111 |
| 000011110000" |
| |
| std_ulogic_vector <= bool_vector |
| -------------------------------------------- |
| F = 1010 "1010" |
| |
| std_ulogic_vector <= unsigned long |
| ---------------------------------------------- |
| H = 1001 ...10001001 (137) |
| I = 00000000000000000000000010001001 ...10001001 (137) |
| J = 0000000000000000000000000000000010001001 ...10001001 (137) |
| |
| std_ulogic_vector <= sc_unsigned |
| -------------------------------------------- |
| K = 0011 11 (3) |
| L = 1101 1101 (13) |
| M = 1001 10001001 (137) |
| |
| std_ulogic_vector <= signed long |
| -------------------------------------------- |
| N = 01001 ...010001001 (137) |
| O = 00000000000000000000000010001001 ...010001001 (137) |
| P = 0000000000000000000000000000000010001001 ...010001001 (137) |
| Q = 10111 ...101110111 (-137) |
| R = 11111111111111111111111101110111 ...101110111 (-137) |
| S = 1111111111111111111111111111111101110111 ...101110111 (-137) |
| |
| std_ulogic_vector <= sc_signed |
| ------------------------------------------ |
| T = 00011 011 (3) |
| U = 01101 01101 (13) |
| V = 01001 010001001 (137) |
| W = 11101 101 (-3) |
| X = 10011 10011 (-13) |
| Y = 10111 101110111 (-137) |
| |
| std_ulogic_vector <= to_uint() |
| ----------------------------------------------------------------- |
| TU1 = 1001 9 |
| TU2 = 10000000000000000000000000000001 2147483649 |
| TU3 = 0000000110000000000000000000000000000001 2147483649 |
| TU4 = 1101 1 (01) |
| TU4 = 1101 13 (1101) |
| TU4 = 1101 13 (00001101) |
| |
| std_ulogic_vector <= to_int() |
| ----------------------------------------------------------------- |
| TS1 = 1001 -7 |
| TS2 = 11111111111111111111101111111001 -1031 |
| TS3 = 0000000111111111111111111111101111111001 -1031 |
| TS4 = 11001 1 (001) |
| TS4 = 11001 -7 (11001) |
| TS4 = 11001 -7 (111111001) |
| |
| std_ulogic_vector <= Typecast sc_unsigned |
| ----------------------------------------------------------------- |
| TCU1 = 1101 1 (01) |
| TCU1 = 1101 13 (1101) |
| TCU1 = 1101 13 (00001101) |
| |
| std_ulogic_vector <= Typecast sc_signed |
| ----------------------------------------------------------------- |
| TCS1 = 11001 1 (001) |
| TCS1 = 11001 -7 (11001) |
| TCS1 = 11001 25 (000011001) |
| |
| std_ulogic_vector <= to_string() |
| -------------------------------------------- |
| TSTR = XXZ01XXXX XXZ01XXXX |
| |
| range() tests |
| ----------------------------------------------------------------- |
| INITIAL 4-BIT 1000 |
| INITIAL 9-BIT XXZ01XXXX |
| |
| LVALUE RISE 1 0 0 0 |
| LVALUE FALL 0 0 0 1 |
| LVALUE SUB RISE 0 1 0 0 |
| LVALUE SUB FALL X X X X 1 0 Z X X |
| LVALUE BIT 1 1 0 1 |
| |
| RVALUE RISE 1 0 0 0 |
| RVALUE FALL 0 0 0 1 |
| RVALUE SUB FALL X X X X 1 0 Z X X |
| RVALUE SUB RISE 1 0 0 0 |
| RVALUE BIT [] 1 0 1 1 |
| RVALUE BIT 0 0 1 0 |
| |
| op1 operator op2 result [All operands are std_ulogic_vector] |
| ---------------------------------------------------------------- |
| 1010 &= 1000 = 1000 |
| 1010 ^= 1000 = 0010 |
| 1010 |= 1000 = 1010 |
| ~(1010) = 0101 |
| 1010 & 1000 = 1000 |
| 1010 ^ 1000 = 0010 |
| 1010 | 1000 = 1010 |
| |
| 1010 &= 111011 = 1010 |
| 1010 ^= 111011 = 0001 |
| 1010 |= 111011 = 1011 |
| 1010 & 111011 = 1010 |
| 1010 ^ 111011 = 0001 |
| 1010 | 111011 = 1011 |
| |
| 1010 and_reduce() = 0 |
| 1010 or_reduce() = 1 |
| 1010 xor_reduce() = 0 |
| |
| 1010 == 1000 -> false |
| 1010 != 1000 -> true |
| |
| 1111 = 1111 |
| |
| +-------------------------+ |
| | AND (&) | X | 0 | 1 | Z | |
| +-------------------------+ |
| | X | X | 0 | X | X | |
| +-------------------------+ |
| | 0 | 0 | 0 | 0 | 0 | |
| +-------------------------+ |
| | 1 | X | 0 | 1 | X | |
| +-------------------------+ |
| | Z | X | 0 | X | X | |
| +-------------------------+ |
| |
| +-------------------------+ |
| | OR (|) | X | 0 | 1 | Z | |
| +-------------------------+ |
| | X | X | X | 1 | X | |
| +-------------------------+ |
| | 0 | X | 0 | 1 | X | |
| +-------------------------+ |
| | 1 | 1 | 1 | 1 | 1 | |
| +-------------------------+ |
| | Z | X | X | 1 | X | |
| +-------------------------+ |
| |
| +-------------------------+ |
| | XOR (^) | X | 0 | 1 | Z | |
| +-------------------------+ |
| | X | X | X | X | X | |
| +-------------------------+ |
| | 0 | X | 0 | 1 | X | |
| +-------------------------+ |
| | 1 | X | 1 | 0 | X | |
| +-------------------------+ |
| | Z | X | X | X | X | |
| +-------------------------+ |
| |
| +-------------------------+ |
| | NOT (~) | X | 0 | 1 | Z | |
| +-------------------------+ |
| | | X | 1 | 0 | X | |
| +-------------------------+ |