fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1568回复:5

用cpld实现双向总线有没有好的方法?谢谢

楼主#
更多 发布于:2003-07-16 11:38
用cpld实现双向总线,仿真时为何总是显示不定状态,而且不准给输出总线赋值高阻??我用的是max7000s系列的cpld。用没有好的方法实现双向总线。 :(
有了驱动,人才有了力量。
wwenguang
驱动小牛
驱动小牛
  • 注册日期2002-08-12
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-16 11:46
在时序仿真时,把输入设为高阻(除了有确定的输入值的地方)。
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-16 11:59
在时序仿真时,把输入设为高阻结果还是不定状态,而且VHDL程序中也不准把输出端设为高阻(总线),否则编译时会出错。
有了驱动,人才有了力量。
green_pine
驱动太牛
驱动太牛
  • 注册日期2002-10-22
  • 最后登录2019-06-10
  • 粉丝3
  • 关注0
  • 积分48分
  • 威望599点
  • 贡献值1点
  • 好评度144点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-07-16 15:02
vhdl中设置高阻编译是通不过的,你可以先拔不设置高阻的程序生成一个symbol,然后用原理图加bustri三太们就可以了
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2003-07-16 23:30
双向总线在输入时必须把输出置成高阻(关闭输出锁存器),否则就会靠成逻辑冲突
你可以使用这样的输出:
process(oe)
 begin
    if oe=\'0\' then
        outbus <= (others => \'Z\');
    else
        outbus <= (你要的值);
    end if;
end process;
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-07-16 23:31
在MAX+PlusII中仿真时还有一个技巧的,就是在用作输入时把输出总线上对应的那段置成高阻状态,否则就会显示不定状态了
游客

返回顶部