[Libre-soc-dev] daily kan-ban update 03dec2021

Tobias Platen libre-soc at platen-software.de
Fri Dec 3 19:34:17 GMT 2021


On Fri, 2021-12-03 at 17:57 +0000, lkcl wrote:
> today:
> 
> fixed test_loadstore1.py and PortInterfaceBase
> 
> Tobias: a bit about gates.  gates take time to "settle".  they are
> transistors, and the voltage change (depending on input) takes time
> to literally drag itself up or down to a new output, fighting
> capacitance and resistance, all the way.
> 
> this is extremely important to remember when writing HDL and
> especially simulations.  what you had implemented was:

When I started today, I knew that I made a mistake. 
I was independetly trying out to find out where my mistake was.
That took me several hours. When I looked in gtkwave yesterday
I had no understanding. Today I think I have a better understanding.   
> 
> * clock cycle ticks
> * LD is set
> * exception occurs (alignment) on a combinatorial
>    circuit
> * Settle() was called (which is STILL NOT A CLOCK.TICK)
> * the combinatorial output was read noting the
>    exception
> (notice, no clock tick with a "yield" has yet been allowed)
> * if exception noted RESET the PortInterface
Now I have a deeper look at the fixed code. I tried to fix my broken
code causing a merge conflict. So I switched back to my email program.
> 
> whilst all the time not ever allowing one single clock tick to occur.
> 
> you had also modified PortInterfaceBase to comply with this type of
> behaviour (not letting a clock tick occur)
> 
> you MUST allow room for the hardware to have a FULL clock cycle
> between changes:
> 
> * clock tick
> * set the LD
> * CLOCK TICK
> * read the exception flag
> * if EXC happened, CLEAR the LD
> * CLOCK TICK
> * allow next operation.
> 
> l.
> 
> _______________________________________________
> Libre-soc-dev mailing list
> Libre-soc-dev at lists.libre-soc.org
> http://lists.libre-soc.org/mailman/listinfo/libre-soc-dev





More information about the Libre-soc-dev mailing list