我在FPGA开发板上有4个按钮,所以我写了
function [HEX0] = Bar(KEY)
n = uint8(sum(KEY, 'native'));
...
不幸的是,HDL将其转化为以下VHDL块:
y := '0';
FOR k IN 0 TO 3 LOOP
y := y OR KEY(k);
END LOOP;
y_0 := '0' & '0' & '0' & '0' & '0' & '0' & '0' & y;
我就是不明白。你能帮我弄清楚这是怎么回事吗?
发布于 2014-05-16 15:48:36
要理解这一点,您必须使用逻辑输入和本地选项来理解matlab sum
。逻辑的总和是逻辑的。因此,可以用一个sum
替换or
sum([true,true],'native')
这正是你的编码器所做的。for-循环实现和(sum(KEY, 'native')
),其中编码器识别它可以使用OR实现。
最后,完成了从逻辑到uint8的转换,填充了7个零位。
https://stackoverflow.com/questions/23699337
复制相似问题