当前位置:首页 > > ZYNQ


一、Verilog内部的基本门级元件

  • 多输入的逻辑门:多个输入,一个输出。多输出门……

  • 多输入门的输出不为高阻态z

  • 多输入与门调用例举:

1and A1(out, in1, in2, ..., inN);
  • 多输出门调用形式:

1buf B1(out1, out2, ..., outN, in); 2not N2(out1, out2, ..., outN, in);
  • 三态门:一个门输出、一个数据输入、一个输入控制
    输入控制信号无效时,输出为高阻态z

  • 三态门调用形式:

1bufif1 B1(out, in, ctrl);bufif0 B0(out, in, ctrl); 2notif1 N1(out, in, ctrl);notif0 N0(out, in, ctrl);

二、Verilog基本结构

1、模块module

  • 定义模块基本语法结构

 1module模块名(端口名1, 端口名2,端口名3,...);  2端口模式说明(input, output, inout); //说明部分    inout双向端口  3参数定义(可选);  4数据类型定义(wire, reg等);  5  6实例化低层次模块或基本门级元件; //逻辑功能描述部分,排序任意  7连续赋值语句(assign);  8过程块结构(initial和always)  9 行为描述语句; 10endmodule
  1. 门级描述

 1/*module mux2to1(D0, D1, S, Y);  //2选1数据选择器  2 input D0, D1, S;               //输入端口声明  3 output Y;                      //输出...  4 */  5module mux2to1(input D0, D1, S, output Y);  6 wire Snot, A, B; //内部节点...  7 //↓描述逻辑功能  8 not U1(Snot, S);  9 and U2(A, D0, Snot); 10 and U3(B, S, D1); 11 or U4(Y, A, B); 12endmodule
  1. 数据流描述

1module mux2to1_dataflow(D0, D1, S, Y); 2 input D0, D1, S; 3 output Y; 4 wire Y; 5 //电路功能描述 6 assign Y = (~S & D0)|(S & D1); //★表达式左边变量的数据类型必须为wire 7endmodule
  1. 行为描述(工作效率更高)

S=0时,Y=D0;S=1时,Y=D1

 1/*module mux2to1_bh(D0, D1, S, Y);  2 input D0, D1, S;  3 output Y;  4 reg Y;                      //变量的数据类型声明  5 always@(S or D0 or D1)    //S、D0、D1中有任何一个输入端信号变动都会执行  6 if(S==1)                //if(S)   Y=D1;  7 Y=D1;  8 else  9 Y=D0;                 //★表达式的左边必须为reg型数据类型 10endmodule 11*/

可简化为↓

 1module mux2to1_bh(  2 input D0, D1, S,  3 output reg Y  4);  5 always@(D0, D1, S)  6 begin  7 if(S)  Y=D1;  8 else Y=D0;  9 end 10endmodule
  • always@(S or D0 or D1)无分号,表示括号中任一个变量发生变化时,下面的赋值语句会被执行一次,执行完最后一条语句后,执行挂起,always再次等待变量发生变化。

括号内的为敏感变量

  • 组合逻辑电路中所有输入信号皆为敏感变量。都应写在括号内。

  • 过程赋值语句只能赋值寄存器型变量,输出Y的数据类型定义为reg。

always@(*)对比assign

  • 被assign赋值的信号为wire型
    被always@(*)结构块下的信号定义为reg型,这里的reg并不是一个真正的触发器,只有敏感列表为上升沿出发的写法才会综合为触发器,在仿真时才具有触发器的特性。

  • 连续赋值语句assign可以并行执行,相当于描述的是连线

always@(*)描述组合逻辑时,begin和end之间是串行,一条一条语句执行

三、仿真

搭建测试平台Test Bench

矢量波形文件(.vwf)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭