2011/12/30 Michael Haberler <mai...@mah.priv.at>:
>
> Am 30.12.2011 um 15:23 schrieb Viesturs Lācis:
>
>> 2011/12/30 Michael Haberler <mai...@mah.priv.at>:
>>> use lut5:
>>>
>>> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Lut5
>>> http://www.linuxcnc.org/docs/devel/html/man/man9/lut5.9.html
>>>
>>> $ lut5 -n4 'i0 or i1 or i2 or i3'
>>> # expression = i0 or i1 or i2 or i3
>>> #in: i4 i3 i2 i1 i0 out weight
>>> # 0:  0  0  0  0  0  0
>>> # 1:  0  0  0  0  1  1   0x2
>>> # 2:  0  0  0  1  0  1   0x4
>>> # 3:  0  0  0  1  1  1   0x8
>>> # 4:  0  0  1  0  0  1   0x10
>>> # 5:  0  0  1  0  1  1   0x20
>>> # 6:  0  0  1  1  0  1   0x40
>>> # 7:  0  0  1  1  1  1   0x80
>>> # 8:  0  1  0  0  0  1   0x100
>>> # 9:  0  1  0  0  1  1   0x200
>>> #10:  0  1  0  1  0  1   0x400
>>> #11:  0  1  0  1  1  1   0x800
>>> #12:  0  1  1  0  0  1   0x1000
>>> #13:  0  1  1  0  1  1   0x2000
>>> #14:  0  1  1  1  0  1   0x4000
>>> #15:  0  1  1  1  1  1   0x8000
>>> # setp lut5.N.function 0xfffe
>>>
>>
>> Michael, can You explain in simple language, how does the "weight" work?
>> If I understand correctly, the look-up table should list all the
>> possible combinations of inputs and specify output - 0 or 1 - for each
>> case. But I do not get about the weight.
>
> 5 inputs have 2^5 combinations which can be represented in a 32bit int, which 
> is the function value
>
> The index access the 'table' is computed by giving the inputs a 'weight':
>
> FUNCTION(_) {
>    int shift = 0;
>    if(in_0) shift += 1;
>    if(in_1) shift += 2;
>    if(in_2) shift += 4;
>    if(in_3) shift += 8;
>    if(in_4) shift += 16;
>
>    out = (function & (1<<shift)) != 0;
> }
>
> see man lut5

I did look at both links You provided in Your first email.

Do I understand correctly that the weight is function value for a
particular input combination and it is needed to distinguish, which
particular case of the look-up table is true at that particular
moment? (This is not working for bit inputs and bit output, which only
changes from 0 to 1)

>
> poor man's PAL, if you will - I think it's cool
>

Yes, it might be not only cool, but also very useful, but only if You
know, how to use it.
Once I was going through all the HAL component source files to get
some understanding, what kind of things actually are there in EMC
(pretty few names of HAL components are self-explanatory). I remember
that lut was one of those "open-close" situations, because I did not
understand anything...

Viesturs

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to