verilog语法实例学习(3)】的更多相关文章

Verilog模块 Verilog中代码描述的电路叫模块,模块具有以下的结构: module module_name[ (portname {, portname})]; //端口列表 [parameter declarations] //参数定义 [input declarations] // I/O定义 [output declarations] [inout declarations] [wire or tri declarations] //内部信号定义 [reg or integer…
本文档中通过verilog实例来学习verilog语法.Verilog是一种硬件描述语言,它具有并发性和时序性.并发性是指不同硬件模块的同时操作,时序性是指信号的赋值或操作在时钟的边沿进行.由于作者本身也是一个初学者,所以尽量用简单明了的例子介绍Verilog语法. Verilog中的注释 Verilog代码中的注释和c++语言相同,分为短注释(//)和长注释(/* - */).短注释通常放在每行代码的后面或上面,用来注释这行代码的功能.长注释一般在module的开始处,用来说明模块的功能.比如…
verilog中的综合和不可综合总结 Verilog中综合的概念 综合就是EDA工具或者说综合工具把我们编写的verilog代码转化成具体电路的过程.Verilog中有很多语法,结构,过程,语句,有些是可以综合的,有些是不可以综合的,不可综合的语句或者语法通常用在testbench中,只是用来仿真验证. (1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,fun…
函数和任务 函数 https://wenku.baidu.com/view/d31d1ba8dd3383c4bb4cd283.html verilog中函数的目的是允许代码写成模块的方式而不是定义独立的模块.函数通常用于计算或描述组合逻辑.如果在模块内定义一个函数,则既可以用连续赋值语句,也可以用过程赋值语句调用.函数可以有不只一个输入,但只能有一个输出,因为函数名本身就充当输出变量. verilog中函数还有以下几个特点: 1.函数必须在module块内调用. 2.函数内不能声明wire,所有…
子电路模块 子电路模块的使用 一个verilog模块能够作为一个子电路包含在另一个模块中.采用这种方式,所有的模块都必须定义在一个文件中,那么verilog编译器就必须被告知每个模块的所属.模块例化的通用形式和门例化语句类似. modulename [#(parameter overrides)] instance_name( port_name([expression]) {,port_name([expression])}); instance_name可以是任何合法的verilog标识符,…
Verilog中的信号类型 线网类型 线网类型表示一个或多个门或者其它类型的信号源驱动的硬件连线.如果没有驱动源,则线网的默认值为z.verilog中定义的线网类型有以下几种:     wire,tri,wor,trior,wand,triand,trireg,tri1,tri0,supply0,supply1.其中最主要的是wire/tri,其它的类型都是综合中用不到的线网. wire线网用来连接线路中一个逻辑模块的输出和另一个逻辑模块的输入,通常用来表示单个门驱动或连续赋值语句驱动的连线型数…
verilog代码编写指南 变量及信号命名规范  1. 系统级信号的命名.  系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号:系统信号以字符串Sys开头.  2. 低电平有效的信号后一律加下划线和字母n.如:SysRst_n:FifoFull_n:   3. 经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别 如CpuRamRd信号,经锁存后应命名为CpuRamRd_r.  低电平有效的信号经过锁存器锁存后,其命名应在_n后加r.如CpuRamRd_n信号,经…
同步时序电路的一般形式 时序电路由组合逻辑以及一个或多个触发器实现.一般的架构如下图所示:W为输入,Z为输出,触发器中存储的状态为Q.在时钟信号的控制下,触发器通过加在其输入端的组合逻辑输入,使得电路从一个状态变成另一个状态.采用边沿触发的触发器可以确保一个时钟周期内只发生一次状态变化.它们可以由时钟上升沿或下降沿触发,产生这种状态变化的时钟边沿称为有效时钟边沿. 发器有两路组合逻辑输入,分别为原始输入W和触发器的当前输出Q,因此当前状态的改变不仅却决于触发器的当前状态,还取决于电路的原始输入.…
常用的时序电路介绍 T触发器和JK触发器 在D触发器输入端添加一些简单的逻辑电路,可以生成另一种类型的存储元件.比如下图所示的T触发器.该电路有一个上升沿触发的触发器和两个与门,一个或门,以及一个反相器组成. 在时钟上升沿到来之时,若T=0,则D=Q,若T=1,则D=~Q,因此,若T=0,在上升沿,电路保持当前状态,若T=1,则当前状态反转. T触发器特性表图下,T触发器是构建计数器的一个有用元件.任何可以实现该特性的电路都可以称为T触发器. T Q(t+1) 0 Q(t) 1 ~Q(t) 上述…
常用的时序电路介绍 寄存器 一个触发器可以存储一位数据,由n个触发器组成的电路可以存储n位数据,我们把这一组触发器叫做寄存器.寄存器中每个触发器共用同一个时钟. 下面是n位寄存器的代码,我们通过一个参数定义n,在实例化时传入参数n. module regne (D, clk,Rst_n,E,Q); parameter n=4; input [n-1:0] D; input clk; input Rst_n; //复位信号 input E; //使能信号 output reg [n-1:0] Q;…