|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2011-5-21 14:18:40
|
显示全部楼层
回复【1楼】qwic
-----------------------------------------------------------------------
回复【1楼】qwic
-----------------------------------------------------------------------
你好,你说的这个也是个思路,但是是不是用VHDL实现起来很麻烦?
如:
198*123=24354
ABC=198<每一位对应的值是0001,1001,1000>
XYZ=123<每一位对应的值是0001,0010,0011>
依照上述可得.
个位对齐:1000*0011 =11000<24>
十位对齐:1001*0011+1000*0010 =11011+10000=101011<43>
百位对齐:0001*0011+1001*0010+1000*0001 =0011+10010+1000=11101<29>
千位对齐:0001*0010+1001*0001 =1011<11>
万位对齐:0001*0001 =0001<1>
然后个位进2得4
十位加2得45进位4得5
百位加4得33进位3得3
千位加3得14进位1得4
万位加1得2
分析归分析,有疑问如下:
1,个位11000要用to_integer转换为24,然后24要分离出2,4,把2转化为0010然后加十位,个位4转换后显示到数码管为4;以后每位都如此,那么是不是比较浪费?有没什么渐变的方法?
2,数码管显示出的198是三个数字,如何转化成二进制的198?若转换成功,那么乘积里如何将结果转化并依次显示为'2','4','3','5','4'? |
|