On Tue, May 28, 2019 at 10:40 PM Eric V. Smith email@example.com wrote: >
On 5/28/2019 4:29 PM, Yanghao Hua wrote:
To repeat what the problem do I think I am solving? A variable, that behaves like an integer (e.g. all normal integer ops should just work), but has a different assignment behavior, such that it can be used to develop equally good hardware descriptions.
This is the part that you're not explaining: what does "a different assignment behavior" mean? We all understand what Python means by assignment (name binding), but we don't understand what you would like it to be instead.
a different assignment behavior in HDL is your assignment does not take effect until a delta cycle of zero virtual time has passed. (did you really looked at the previous postings? :)
It seems that you want these two statements to work differently:
x = something() # bind a name for the first time
# ("create a variable", if you will)
x = 4 # do something different when x already exists
# and is of some special type
Is that true? What is the "something different"?
x = 4 should be something like x <== 4 or x := 4 (the latter has been taken by the assignment expressions though ...). Such that variable initialization (=) and utilization (<==) can be differentiated.
I've got to be honest with you: I don't see Python changing in this regard.
Sad to see that's the case from you when it seems you barely even read all of the postings in this thread.