VHDL中怎么把一个std_logic_vector(3 downto 0)的输入转换成整形后,把个位和十位分开,再输出。。

主要为了在数码管上面显示出来,,... 主要为了在数码管上面显示出来,, 展开
 我来答
nereus78e904
2014-04-14 · TA获得超过1.5万个赞
知道大有可为答主
回答量:5463
采纳率:90%
帮助的人:1914万
展开全部
先用std_logic_unsigned程序包或者std_logic_signed程序包中的conv_integer函数,将std_logic_vector(3 downto 0)转换成integer类型,然后将integer类型的对象(变量或者信号)分别做MOD 10和REM 10运算(取模和取余),得到的结果就是十位和个位了。如果还需要转换成std_logic_vector类型的话,再调用std_logic_arith程序包中的conv_std_logic_vector函数,分别将十位和个位转换成std_logic_vector类型。
当然,也可以自己描述一个转换模块,直接将std_logic_vector(3 downto 0)分成十位和个位的std_logic_vector(3 downto 0)类型,分别输出,会简单些。
追问

为什么那个MOD在 使用时会出错,。。。。

追答
应当是B <= A MOD 10; 和C <= A REM 10;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式