| Summary: | inconsistency in 3.0B spec on definition of "equivalence" operator | ||
|---|---|---|---|
| Product: | Libre-SOC's first SoC | Reporter: | Luke Kenneth Casson Leighton <lkcl> |
| Component: | Specification | Assignee: | Luke Kenneth Casson Leighton <lkcl> |
| Status: | CONFIRMED --- | ||
| Severity: | enhancement | CC: | libre-soc-bugs, programmerjake |
| 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
2020-04-04 20:54:12 BST
In my opinion, both == and XNOR (as well as != and XOR) can be used to denote the same operation, but with two different ways of thinking about it: 1. XNOR/XOR used when flipping bits, (carry-less) adding, LFSRs, etc. 2. ==/!= used when checking for same/different values. So pick which one you use based on how you are thinking about it, perhaps with a note about being the same as the other operator when relevant. Jacob (In reply to Jacob Lifshay from comment #1) > In my opinion, both == and XNOR (as well as != and XOR) can be used to > denote the same operation, but with two different ways of thinking about it: > > 1. XNOR/XOR used when flipping bits, (carry-less) adding, LFSRs, etc. > 2. ==/!= used when checking for same/different values. yes, interestingly, Anton, in Microwatt, splits up add/sub into its sub-components: * add 0, 1, carry * actual add * invert / don't bit-invert result (1s complement) therefore, bit-inversion of the result could, hypothetically, be done here as well. i "solved" this one temporarily by removing the XNOR operator and replacing it with invert (a XOR b) |