我们从2011年坚守至今,只想做存粹的技术论坛,记录你的技术足迹,有空就回来看看。  由于网站在外面,点击附件后可能要20秒才弹出下载,请耐心等待,勿重复点击

 找回密码
 立即注册
搜索
查看: 814|回复: 0

[技术文章] Xilinx FPGA学习笔记(2)——verilog中wire 和 reg

[复制链接]
  • TA的每日心情

    昨天 08:46
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    1万

    主题

    8132

    回帖

    4万

    积分

    三级逆天

    积分
    43823

    终身成就奖特殊贡献奖原创先锋奖金点子奖优秀斑竹奖宣传大使奖

    发表于 2017-10-28 13:56:45 | 显示全部楼层 |阅读模式




    一、wire(组合逻辑)
    1.wire用来连接模块实例化的输入和输出端口;
    2.wire用作实际模块声明中输入和输出;
    3.wire 元素必须由某些东西驱动,并且在没有被驱动的情况下,无法存储值;
    4.wire 元素必须由某些东西驱动,并且在没有被驱动的情况下,无法存储值;
    5.wire元素是assign语句左侧唯一的合法类型;
    6.wire 元素是在基于Verilog的设计中连接两片的无状态方式;
    7.wire 元素是在基于Verilog的设计中连接两片的无状态方式;
    // wire 的一些正确使用          wire A,B,C,D,E ; //1-bit wide        wire [8:0] Wide; //9-bit          assign A= B & C;          always @(B or C)         begin               I=B | C;        end        mymodule mymodule_instance(.In(D),Out(E));

    二、reg(组合和时序逻辑)
    1.reg可以连接到模块实例化的输入端口;
    2.reg 不能连接到模块实例化的输出端口
    3.reg 可以用作实际模块声明中的输出;
    4.reg 不能 用作实际模块声明中的输入;
    5.reg是always 模块中 = 或者 <= 左侧的唯一正确类型;
    6.reg是initial模块中 = 左侧唯一的合法类型;
    7.reg**不能用在assign的左边**;
    8.reg 当与always @(posedge Clock)块结合使用时,reg可用于创建寄存器。
    //reg一些合法使用 wire A,B; reg I,J,K;  // 1-bitreg [8:0] Wide; // 9-bitalways @(A or B) begin    I=A | B; // using a reg as the left - hand side of an always initial begin // using a reg in an initial block    J=1'b1;    #1    J=1'b0;end always @(posedge Clock) begin// using a reg to create a positive -edge - triggered register    K<=I;end

    三、wire 和 reg 何时可以互换
    1.两者都可以出现在assign语句和 always 模块中=或<=的右侧;
    2.两者都可以连接到模块实例的输入端口;

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表