找回密码
 注册
关于网站域名变更的通知
查看: 453|回复: 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 编辑
    & r; K9 ]: X% P( x
    2 z! R" ]: r, Y+ t: Y: ^5 |网上可以查到的inout的设计方法,多是赋一个线型,然后用条件语句做个选通器。对地多位的一个端口如果方向一致很好操作,如果方向不同怎么办。) G; ?* w* u7 l, b; c% I+ v4 U
    用systemverilog,我试了如下的代码:$ O! ~; k' \9 T( Y* K5 |
            inout [DATA_BIT-1:0] io_port;
    5 T0 u" {; q) B3 m0 _0 P* H        always_comb3 h* R7 N6 u& ?0 u  p. s4 [* l1 b
            begin; P% [  M; |2 j4 u
                    for(int i = 0; i < DATA_BIT; i++)4 i7 `' L- c" [6 f+ O0 K
                    begin8 ~! ?# q7 @. T6 \$ V, \
                             io_port= direction?'z:data_in;
    : w  D/ o. x1 u: }& U$ k; ~0 ?9 e              
      end
    - q7 v* ^& I6 I3 T5 X, O        end+ B# x- ^7 p/ c, E5 H6 p! U/ Z1 m
    7 i1 N* p* M  L* j) }
    用quartus是可以的,但是用multisim仿真就会报错,
    9 J' `" E2 m( p+ Q, V 我想是代码不规范造成的,即使我把inout改为wire型,这里能过,multisim仍然是不能过。这该怎么办啊。我并不想每个端口一条一条地写assign,那样一来麻烦,二来使这个模块失去了灵活性,没法灵活地改变端口的位数。+ b8 J& T7 `, ~0 |1 N

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-16 06:55 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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