用VHDL实现十进制到二进制的转换

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:04:24
本人毕业设计用的是VHDL做计算器,现在差一个十进制到二进制的转换和一个顶层文件。希望各位路过的高人帮帮忙。有偿。

楼上的程序是错误的,
shuchu(a)<=d;数据类型都不一样,你怎么赋值呢....

library ieee; --此程序是个人所编,还未经验证
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned;
use ieee.std_logic_arith;
entity ss is
port( st:in std_logic;
shuru:in integer range 0 to 255;
shuchu:out std_logic_vector(7 downto 0) );
end ss;
architecture b of ss is
begin
process(st)
variable c:integer range 0 to 255;
variable d:integer range 0 to 255;
variable a:integer range 0 to 7;
begin
if st'event and st='1' then --st为转换启动信号,上升沿启动
shuchu<="00000000"; --对输出初始化
c:=shuru; --保存输入
d:=shuru; --保存输入
a:=0;
while c/= 0 loop --c不等于零则循环,c等于零则退出循环
c:=c/2; --循环除2,类似于十进制数转化为二进制数的方法
d:=d-(c*2); --算完后,d为计算出的每位二进制数
shuchu(a)<=d; --把每为二进制数安位给输出
d:=c; --作为下次除2的被除数
a:=a+1;
end loop