怎么用VHDL描述 10位的二进制数表示10进制的555
就是把verilog的parameter[9:0]a=10'd555翻译成VHDL语言是不是可以写成signala:std_logic_vector(9downto0):...
就是把verilog的 parameter [9:0]a=10'd555 翻译成VHDL语言
是不是可以写成 signal a:std_logic_vector(9 downto 0):=XXXXXXXXX;
但是下面还有一句是 else if(cnt_period==20'd1000000) 如果把1000000写成2进制实在是太麻烦了 有没有简单一点的写法
还有verilog中always对应到VHDL是进程语句吗 望解答 展开
是不是可以写成 signal a:std_logic_vector(9 downto 0):=XXXXXXXXX;
但是下面还有一句是 else if(cnt_period==20'd1000000) 如果把1000000写成2进制实在是太麻烦了 有没有简单一点的写法
还有verilog中always对应到VHDL是进程语句吗 望解答 展开
3个回答
推荐于2017-09-09 · 知道合伙人互联网行家
关注
展开全部
很简单,VHDL里面有一个二进制转十进制函数CONV_IETEGER(),在UNSIGNED这个程序包里,打开它用就是了,程序如下,,,
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TURN2_10 IS
PORT(A:IN STD_LOGIC_VECTOR(4 DOWNTO 0);
B:OUT INTEGER RANGE 0 TO 32);
END;
ARCHITECTURE ART OF TURN2_10 IS
BEGIN
B<=CONV_INTEGER(A);
END;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TURN2_10 IS
PORT(A:IN STD_LOGIC_VECTOR(4 DOWNTO 0);
B:OUT INTEGER RANGE 0 TO 32);
END;
ARCHITECTURE ART OF TURN2_10 IS
BEGIN
B<=CONV_INTEGER(A);
END;
展开全部
VHDL中位串型只有2、8、16进制表示,如果要表示10进制,建议直接用整数型,VHDL的整数为32位2进制数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所谓x进制就是逢x进1。个位数字从0~(x-1)
二进制:只有0和1
三进制:只有0、1、2
四进制:只有0、1、2、3
。。。。。。
十六进制:0、1、2、......、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
然后说一下二进制的计数方法:D表示10进制,B表示2进制(这里以一个字节表示)
1D=0000 0001B
2D=0000 0010B(最低位1+1=2,在2进制中逢2进1,所以第8位为0,第七位进位变1)
3D=0000 0011B(最低位0+1=1,不进位)
4D=0000 0100B(最低位1+1=2,溢出取个位0,前一位(第七位)进位+1,再次溢出,取0,前一位进位+1,第六位开始是0,进位后边1)
二进制:只有0和1
三进制:只有0、1、2
四进制:只有0、1、2、3
。。。。。。
十六进制:0、1、2、......、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
然后说一下二进制的计数方法:D表示10进制,B表示2进制(这里以一个字节表示)
1D=0000 0001B
2D=0000 0010B(最低位1+1=2,在2进制中逢2进1,所以第8位为0,第七位进位变1)
3D=0000 0011B(最低位0+1=1,不进位)
4D=0000 0100B(最低位1+1=2,溢出取个位0,前一位(第七位)进位+1,再次溢出,取0,前一位进位+1,第六位开始是0,进位后边1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |