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

这篇具有很好参考价值的文章主要介绍了verilog基础语法,wire,reg,input,output,inout。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述:

输入输出是模块的端口,寄存器是数据存储介质,线用于把各个电路关联起来,形成一个数据流通通道,进行形成具有具体功能的电路模块。线是信息关联与传递的介质,也是可以称为信息流通的管道。在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语句赋值。
代码

module regtest(
	input clk , // system clock 50Mhz on board
	input rst_n, // system rst, low active 
	input a,b
    );

wire c;
assign c = a&b;

reg A;	
reg [3:0] A1;
reg [3:0] A2 [15:0];

always @(posedge clk ) begin 
	A<=1'b1;
	A1<=4'b0100;
	A2[0] <= 4'hf;
	A2[15] <= 4'ha;
end

endmodule

2. 输入 intput

简介

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

代码

module regtest(
	input clk , // system clock 50Mhz on board
	input rst_n, // system rst, low active 
	input a,
	input [3:0] b
    );


endmodule

3. 输出 output

简介

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

代码

module regtest(
	input a,
	input en,
	output b,
	output [1:0] b1,
	output c,
	output d
    );

assign b = ~a;
assign b1 = {~a,a};
assign c  = en?a:1'bz;  // 三态输出

endmodule

4. 输入输出 inout

总结

1. wire和reg是基础

2. input和output是最常用的端口文章来源地址https://www.toymoban.com/news/detail-856909.html

到了这里,关于verilog基础语法,wire,reg,input,output,inout的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法

    就是用代码来描述硬件结构 语言有VHDL与Verilog HDL Verilog HDL 是从C语言来的,学的快 ###例子 也叫保留字,一般是小写 module 表示模块的开始 endmodule 模块的结束 模块名 一般与.v文件的名字一致 输入信号 input 输出信号 output 既做输入也做输出 inout 需要一些变量和参数对输

    2024年02月21日
    浏览(31)
  • FPGA_学习_04_Verilog基础语法和Modelsem仿真

    前言:对于以前学过C/C++/C#的作者来讲,Verilog的基础语法算是 特别简单 的。本文主要介绍Verilog的基础语法和Modelsem仿真。 FPGA开发是以模块为基础的,每个可 综合 的.v文件都是一个模块,模块由 module 和 endmodule 来声明。在这两个的内部,完成模块功能的实现。 在Vi

    2024年02月05日
    浏览(32)
  • 【FPGA】verilog基础语法与应用:位操作 / 模块调用——流水灯(跑马灯)

    今天的实验是计数器实验的升级,设计让8个LED灯以每个0.5s的速率循环闪烁 1 移位法实现 1.1 移位方法1 每个LED灯代表一位,共8位,亮为1,灭为0 如何实现这样的逻辑呢? 移位操作即可! 怎么样才能移位呢? 第一个状态需满足最低位为1,然后每次左移1个 源代码 仿真代码 功

    2024年01月16日
    浏览(35)
  • wire和reg型变量的组合使用

    实现寄存器之间的连线 实现寄存器的声明 建构时钟的时序系统 `timescale 1ns / 1ps /* */ 声明寄存器 reg类型变量实际上是对FF(除法器)的快速声明方法 使用FDCE的原语可以实现寄存器的准确描述,但是比较少用 其中位宽的作用是声明多个FDCE组合成寄存器组,实现多bit数据的处理

    2024年03月28日
    浏览(31)
  • SystemVerilog logic、wire、reg数据类型详解

            在Verilog中, wire 和 reg 是最常见的两种数据类型,也是初学者非常容易混淆的概念。           SystemVerilog的一大改进是支持 logic 数据类型,它在多数时候可以不加区分地替代 wire 和 reg 。但如果不熟悉 logic 的限制随意使用,也容易遇到意想不到的错误。本文主

    2024年02月06日
    浏览(27)
  • 数字逻辑电路设计例化模块输入输出,何时用reg,何时用wire?

    初学者应该总会遇到这个问题,许多资料都介绍的是:        reg  寄存器类型可以存储数据,wire 是一根线,不能存储保持数据,是如此,但是在例化模块,或者调用通用的fifo模板,算法模板时候,难免经常连线,用寄存器打拍~~~        下图中,绿色部分是子模块,灰色

    2024年02月12日
    浏览(28)
  • 零基础学习CANoe Panel(8)—— 开关/显示控件(Input/Output Box )

    🍅 我是 蚂蚁小兵 ,专注于车载诊断领域,尤其擅长于对CANoe工具的使用 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】 🍅 零基础学习CANoe Panel设计目录汇总,点击跳转👉 🍅 Input/Output Box 控件也是一个常用控件,用来作为 单行 输入和输

    2024年02月12日
    浏览(27)
  • 【FPGA学习记录3-1】Verilog语法之Verilog的数据类型

    写在前面 本科时学过FPGA的相关课程,因此对于Verilog相关语法的学习重在回顾。 1.Verilog的数据类型 Verilog 最常用的 2 种数据类型就是 线(wire)与寄存器(reg) ,其余类型可以理解为这两种数据类型的扩展或辅助。 1.1wire类型 wire 类型表示硬件单元之间的物理连线,由其连接

    2024年02月02日
    浏览(29)
  • 【FPGA入门】第一篇、Verilog基本语法常识

    目录 第一部分、不同的变量类型 1、wire和reg的区别  2、如何对变量进行赋值呢? 3、什么是阻塞?什么是非阻塞? 第二部分、变量位宽的定义 1、各种系统默认情况 2、变量位宽声明方式 3、表明位宽的情况下,赋值方式 4、两个模块之间例化,不定义变量直接用的方式 5、常

    2024年02月04日
    浏览(36)
  • FPGA学习笔记-知识点3-Verilog语法1

    按其功能可分为以下几类: 1) 算术运算符(+,-,×,/,%) 2) 赋值运算符(=,=) 3) 关系运算符(,,=,=) 4) 逻辑运算符(,||,!) 5) 条件运算符( ? :) 6) 位运算符(,|,^,,^) 7) 移位运算符(,) 8) 拼接运算符({ }) 9) 其它 按其所带操作数的个数运算符可分为三种: 1) 单目运算符(unary operator):可以带一个

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包