当前位置:   article > 正文

verilog基础语法,wire,reg,input,output,inout_verilog wire

verilog wire

概述:

输入输出是模块的端口,寄存器是数据存储介质,线用于把各个电路关联起来,形成一个数据流通通道,进行形成具有具体功能的电路模块。线是信息关联与传递的介质,也是可以称为信息流通的管道。在FPGA中的基本定义为wire,reg,input,output,inout。只有正确的认识到这些基本概念,才能进行正确的开发。

内容

1. 线与寄存器 wire与reg

2. 输入 intput

3. 输出 output

4. 输入输出 inout

1. 线与寄存器 wire与reg

wire与reg简介
    wire 线:金属线,FPGA内部各个端口之间的连接线。它是实物器件,与它相关联的电属性是电位,电流,以及延时时间,线越长,延时时间越长。
    作用:
    通过assign语句构造组合逻辑电路,赋值语句等。
    总线wire, 总线wire可以看成式一维向量,可以把分离的存储数据,或者线按一定顺序排列起来形成总线。
    reg 寄存器,FPGA使用触发器或者锁存器来实现,用于存储数据,相当于变量。它的数据可以修改,但是构成寄存器的电路不可以修改,也就相当于地址是固定的。
    reg A; 用于存储1一个二进制。
    reg [3:0] A1; 一维向量reg用于存储一个多位二进制数
    reg [3:0] A2 [15:0]; 二维阵列位,相当于一维整数数组。
    注意wire只能在assin语句中赋值;reg只能在awalys语句赋值。
代码

  1. module regtest(
  2. input clk , // system clock 50Mhz on board
  3. input rst_n, // system rst, low active
  4. input a,b
  5. );
  6. wire c;
  7. assign c = a&b;
  8. reg A;
  9. reg [3:0] A1;
  10. reg [3:0] A2 [15:0];
  11. always @(posedge clk ) begin
  12. A<=1'b1;
  13. A1<=4'b0100;
  14. A2[0] <= 4'hf;
  15. A2[15] <= 4'ha;
  16. end
  17. endmodule

2. 输入 intput

简介

    输入一般分为时钟输入,复位输入以及数据输入;数据输入又分为1位输入和向量总线输入;
    其中时钟输入是模块工作的心脏,模块如果仅仅只是组合逻辑,可以没有时钟。
    复位主要是为了同步一下初始状态,使得整个模块从一个预期的初始点开始工作。
    数据输入,分为1位输入和总线输入,是输入流入模块的端口。

代码

  1. module regtest(
  2. input clk , // system clock 50Mhz on board
  3. input rst_n, // system rst, low active
  4. input a,
  5. input [3:0] b
  6. );
  7. endmodule

3. 输出 output

简介

    一个模块对数据进行加工处理后,通过输出通知或者传递信息给外界。工作状态输出,通讯中的信息传递输出,计算中的结果输出等。
    输出分类
        推挽输出
        三态输出

代码

  1. module regtest(
  2. input a,
  3. input en,
  4. output b,
  5. output [1:0] b1,
  6. output c,
  7. output d
  8. );
  9. assign b = ~a;
  10. assign b1 = {~a,a};
  11. assign c = en?a:1'bz; // 三态输出
  12. endmodule

4. 输入输出 inout

总结

1. wire和reg是基础

2. input和output是最常用的端口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/766110
推荐阅读
相关标签
  

闽ICP备14008679号