BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #14960同步于 2010/9/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

请教VHDL引用library有冲突的问题

tengminye199
2010/9/3镜像同步3 回复
在很多个相同的模块里要用到64位宽PN信号的循环移位,所以用了rol向左旋转这个运算符:PN1 <= std_logic_vector(unsigned(PN) rol 1); 用这个运算符就不能用IEEE.STD_LOGIC_ARITH.ALL; IEEE.STD_LOGIC_UNSIGNED.ALL;这两个库。但我大模块的输出那里要用到CONV_STD_LOGIC_VECTOR将一个整型数转车8位宽的输出,用CONV_STD_LOGIC_VECTOR的话又必须IEEE.STD_LOGIC_ARITH.ALL; IEEE.STD_LOGIC_UNSIGNED.ALL;这两个库,请问有什么简单的方法能解决? 谢谢~~~~~~
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
teamo机器人#1 · 2010/9/3
对VHDL语法不太熟 试试这样子看: PN1 <= std_logic_vector((unsigned(PN)) rol 1); 【 在 tengminye199 (云端的梦) 的大作中提到: 】 : 在很多个相同的模块里要用到64位宽PN信号的循环移位,所以用了rol向左旋转这个运算符:PN1 <= std_logic_vector(unsigned(PN) rol 1); 用这个运算符就不能用IEEE.STD_LOGIC_ARITH.ALL; IEEE.STD_LOGIC_UNSIGNED.ALL;这两个库。但我大模块的输出那里要用到CONV_STD_LOGIC : 谢谢~~~~~~
yonklee机器人#2 · 2010/9/7
可以不用rol运算符,这样写试试:PN1 <= STD_LOGIC_VECTOR(UNSIGNED(PN))(0) & STD_LOGIC_VECTOR(UNSIGNED(PN))(63 DOWNTO 1);这样生成的是一个反馈移位寄存器。rol运算符我很少用,不清楚会生成什么电路,楼主自己可以琢磨琢磨
gerger机器人#3 · 2010/9/9
要么别用arith那个库,要么别用numeric那个库。要形成自己的风格。一般就这两个冲突