@@ -81,29 +81,36 @@ export function variableValue(style: DisplayStyle, variable: Variable, value: bi
81
81
if ( radix === undefined ) {
82
82
radix = globalVariableOptions . get ( variable . cxxrtlIdentifier ) . radix ?? 10 ;
83
83
}
84
+ let stringValue ;
85
+ switch ( radix ) {
86
+ case 2 : stringValue = value . toString ( 2 ) . padStart ( variable . width / 1 , '0' ) ;
87
+ case 8 : stringValue = value . toString ( 8 ) . padStart ( variable . width / 3 , '0' ) ;
88
+ case 10 : stringValue = value . toString ( 10 ) ;
89
+ case 16 : stringValue = value . toString ( 16 ) . padStart ( variable . width / 4 , '0' ) ;
90
+ }
84
91
switch ( style ) {
85
92
case DisplayStyle . Python :
86
93
switch ( radix ) {
87
- case 2 : return `0b${ value . toString ( 2 ) } ` ;
88
- case 8 : return `0o${ value . toString ( 8 ) } ` ;
89
- case 10 : return value . toString ( 10 ) ;
90
- case 16 : return `0x${ value . toString ( 16 ) } ` ;
94
+ case 2 : return `0b${ stringValue } ` ;
95
+ case 8 : return `0o${ stringValue } ` ;
96
+ case 10 : return stringValue ;
97
+ case 16 : return `0x${ stringValue } ` ;
91
98
}
92
99
93
100
case DisplayStyle . Verilog :
94
101
switch ( radix ) {
95
- case 2 : return `${ variable . width } 'b${ value . toString ( 2 ) } ` ;
96
- case 8 : return `${ variable . width } 'o${ value . toString ( 8 ) } ` ;
97
- case 10 : return `${ variable . width } 'd${ value . toString ( 10 ) } ` ;
98
- case 16 : return `${ variable . width } 'h${ value . toString ( 16 ) } ` ;
102
+ case 2 : return `${ variable . width } 'b${ stringValue } ` ;
103
+ case 8 : return `${ variable . width } 'o${ stringValue } ` ;
104
+ case 10 : return `${ variable . width } 'd${ stringValue } ` ;
105
+ case 16 : return `${ variable . width } 'h${ stringValue } ` ;
99
106
}
100
107
101
108
case DisplayStyle . VHDL :
102
109
switch ( radix ) {
103
- case 2 : return `B"${ value . toString ( 2 ) } "` ;
104
- case 8 : return `O"${ value . toString ( 8 ) } "` ;
105
- case 10 : return value . toString ( 10 ) ;
106
- case 16 : return `X"${ value . toString ( 16 ) } "` ;
110
+ case 2 : return `B"${ stringValue } "` ;
111
+ case 8 : return `O"${ stringValue } "` ;
112
+ case 10 : return stringValue ;
113
+ case 16 : return `X"${ stringValue } "` ;
107
114
}
108
115
}
109
116
}
0 commit comments