-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do something about assign
and general ApInt construction
#44
Comments
Using the Rust tradition of immutable and mutable "slice" views into a data structure will not work if two of the bit slices are on the same The first will accept a single The second accepting two mutable ApInts I will have to try to contruct myself and report back. The third will use three This will be a huge undertaking for me of course, and I do not plan to try this until most every other issue is fixed. In the meantime, maybe we should just introduce something purely for assignment of bits. |
I need signed and unsigned resizing functions which check if the numeric value overflows (there are set bits that are cutoff for the unsigned resize, or there are unset bits that are cutoff for negative signed ApInts). The |
We can use the new |
In university I learned about how Verilog has a curly brackets operator which manages concatenating arbitrary precision integers and arbitrary amounts of 1s and 0s together. I believe a rusty variation will be the perfect solution for this issue and can compactly create a constant Creating constants from decimal and checking for overflow requires deserialization functions and allocations at compile time, which is the reason why a procedural macro is needed. In order to break this circle of PR dependencies and literal dependencies, I think I will make an second The problem is that the internal function will need to be public in order for the procedural macro crate to use it (using special feature flags will cause the |
I implemented this in my |
I do not have plans to continue maintenance of |
Here is a brief compilation of problems I have seen:
assign
should be whatstrict_assign
isassign
orstrict_assign
and Robbepop dislikes the APIApInt
s from a bit slice of anotherApInt
(with current functions, I have to do cloning, shifting, truncating, extending, and sometimes another shifting)ApInt
s only.ApInt
.The text was updated successfully, but these errors were encountered: