求思路,想不通...VHDL新手帖
假设:按键A控制ABC数码管显示1~100
按键B控制XYZ三位数码管,每当B按下时候,数码管XYZ要和数码管ABC显示的数字相加,并把结果显示在XYZ上.(暂时不考虑溢出)
首先把ABC里的值分别signal一下
然后判断B是否按下,然后用case么??觉得这样重复性的代码很多,每一个Case里都要做几遍加法...每个case里还要有很多判断...
觉得很浪费资源,高人指点一下.. 思路如下:
1. M=ABC,百位十进制
2. N=XYZ:=0;百位十进制;
3. 按A,M=M+1;
4. 按B时,N=M+N;
5. 十进制加法子程序带进位(调用)
6. 十进制转BCD码数码管子程序(调用); 回复【1楼】hawkflyking
-----------------------------------------------------------------------
你好,在表示一个范围之内的数的时候如ABC,integer是不是要比A:std_logic_Vector(3 downto 0);B:std_logic_Vector(3 downto 0);C:std_logic_Vector(3 downto 0);浪费资源呢? 一般情况是如你所说。但是用integer增加可读性,你可以自己写个std_logic_Vector转整数的子程序。1~10是十种状态。 回复【3楼】hawkflyking
-----------------------------------------------------------------------
哦,慢慢看书吧,啃了不行再啃一遍... 回复【3楼】hawkflyking
-----------------------------------------------------------------------
谢谢..
页:
[1]