vfdff的个人空间 https://blog.eetop.cn/91077 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

双向口处理示例

已有 932 次阅读| 2008-1-22 02:36 |个人分类:示例代码

module dinout(din,z,clk,dout,dinout);
 
    input[7:0] din;
    input z;
    input clk;
    output[7:0] dout;
    inout[7:0] dinout;

    reg[7:0] dout;
    reg[7:0] din_reg;

assign dinout=(!z)? din_reg : 8'bz;

always @(posedge clk)
    begin
    if(!z)
        din_reg = din ;
    else
        dout=dinout;
end

endmodule
--------------------------------
对应测试代码
`timescale   1ns/100ps

module dinouttest();
   
reg[7:0] din;
reg z;
reg clk;
wire[7:0] dout;
wire[7:0] dinout;
integer i;

dinout uut(.din(din),.z(z),.clk(clk),.dout(dout),.dinout(dinout));

always #10 clk = ~clk;
initial begin
    din = 0;
    z=0;
    clk=0;
    #200 din=10;
    for(i=0;i<10;i=i+1)
    #20 din = din + 1;
//
    z=1;
    for(i=0;i<10;i=i+1)
    #20 din = din + 2;
//
end

endmodule
  

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1

    评论
  • 271

    访问数
关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-14 19:15 , Processed in 0.011041 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部