Bug 46

Summary: in normalisation / align Masked Multishift don't use 111111111 >> shift
Product: Libre-SOC's first SoC Reporter: Luke Kenneth Casson Leighton <lkcl>
Component: ALU (including IEEE754 16/32/64-bit FPU)Assignee: Luke Kenneth Casson Leighton <lkcl>
Status: CONFIRMED ---    
Severity: enhancement CC: libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Linux   
NLnet milestone: --- total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0 parent task for budget allocation:
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:

Description Luke Kenneth Casson Leighton 2019-03-09 07:00:51 GMT
there is almost certainly a better way to do the mask in the multishifter:
a binary to unary encoder followed by treating that as a 24-bit integer and subtracting 1 would create the desired output: 000001 for an input of "0b1", 0000011 for an input of "0b10", 000111 for an input of "0b11" and so on.