找回密码
 注册
关于网站域名变更的通知
查看: 460|回复: 1
打印 上一主题 下一主题

[求助]每位可控方向的双向IO口怎么设计

[复制链接]
  • TA的每日心情
    郁闷
    2020-2-18 15:32
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    跳转到指定楼层
    1#
    发表于 2021-3-18 15:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 wsk0523 于 2021-3-18 15:53 编辑   c7 t" o' i2 U9 ]4 O# Z2 S
    ! i  S7 L/ A6 C8 S; O" G
    网上可以查到的inout的设计方法,多是赋一个线型,然后用条件语句做个选通器。对地多位的一个端口如果方向一致很好操作,如果方向不同怎么办。0 c( k( R: R& B: o7 r
    用systemverilog,我试了如下的代码:
    3 v7 m% S  g' U8 n$ s        inout [DATA_BIT-1:0] io_port;' l2 ^1 y3 B8 l& t
            always_comb
    9 D9 ~, B  S! G. J, V$ a3 d( X        begin6 {8 i. C  P8 L6 c. I
                    for(int i = 0; i < DATA_BIT; i++)" H( N" c1 C+ e+ [# S
                    begin! @7 c3 q! ~* l, e
                             io_port= direction?'z:data_in;
    5 r* i+ M2 g# D1 Q              
      end) e8 n6 I1 {& J+ M
            end
    $ `1 _9 z9 K7 m2 _+ s6 O+ ^/ D  y2 s, D9 m2 Z2 C! Y
    用quartus是可以的,但是用multisim仿真就会报错,
    ' @- A3 ~" @$ g, e7 U9 ]) [ 我想是代码不规范造成的,即使我把inout改为wire型,这里能过,multisim仍然是不能过。这该怎么办啊。我并不想每个端口一条一条地写assign,那样一来麻烦,二来使这个模块失去了灵活性,没法灵活地改变端口的位数。
    3 j# V( _. s9 ?0 m! R% ^4 M4 H

    该用户从未签到

    2#
    发表于 2021-3-18 17:55 | 只看该作者
    帮你顶一下
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-9-24 02:48 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表