欢迎来到天天文库
浏览记录
ID:51003321
大小:686.34 KB
页数:59页
时间:2020-03-17
《Verilog语言快速入门.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1Verilog设计快速入门2内部信号声明assign语句底层模块或门原语调用(包括生成块)Initial或always语句块任务和函数定义module模块名([端口列表]);[端口信号声明;][参数声明;]endmodulespecify块(路径延迟)Verilog模块结构说明:浅色部分用得较少;常用语句只有三种:assign语句always语句底层模块调用语句三种语句顺序无关除开始的module模块名和结束的endmodule必须写外,其他都是可选的。功能描述部分模块说明部分3Verilog模块结构例1:二选一数据选择器的描述二选一数据选择器
2、的结构之一二选一数据选择器的符号设a、b、s波形已知,可得y波形:4Verilog模块结构2选1多路选择器的Verilog描述内部信号声明assign语句底层模块或门原语调用always语句块module模块名([端口列表]);[端口信号声明;][参数声明;]endmoduleabsyMUX21a5Verilog程序结构例2:边沿D触发器的Verilog描述内部信号声明assign语句底层模块或门原语调用always语句块module模块名([端口列表]);[端口信号声明;][参数声明;]endmodule6Verilog模块结构1.模块说明部分
3、module模块名([端口列表]);[端口信号声明;][参数声明;]模块名是指电路的名字,由用户指定,最好与文件名一致(特别是在QuartusII软件中调试时);端口列表是指电路的输入/输出信号名称列表,信号名由用户指定,各名称间用逗号隔开;端口信号声明是要说明端口信号的输入输出属性、信号的数据类型,以及信号的位宽;输入输出属性有input,output,inout三种,信号的数据类型常用的有wire和reg两种;信号的位宽用[n1:n2]表示;同一类信号之间用逗号隔开;参数声明要说明参数的名称和初值输入输出属性数据类型位宽名称parameter
4、数据类型参数名=初值7例:modulefull_adder(A,B,CIN,S,COUT);input[3:0]A,B;inputCIN;outputreg[3:0]S;outputCOUT;位宽如果不做说明的话,默认是1位;数据类型不做说明的话,默认是wire型的。S位宽为4位,对应信号为S[3]、S[2]、S[1]、S[0]根据模块说明部分,我们可以得出电路符号ABCINSfull_adderCOUT82.assign语句内部信号声明assign语句底层模块或门原语调用always语句块module模块名([端口列表]);[端口信号声明;]e
5、ndmoduleassign语句称作连续赋值语句assign赋值目标=表达式例:特点:之所以称为连续赋值语句是指其总是处于激活状态,只要表达式中的操作数有变化,立即进行计算和赋值。(与连续赋值语句对应的另一种语句称为过程赋值语句)赋值目标必须是wire型的,wire表示电路间的连线。ayAbyassigny=a;assigny=a&b;基本格式:92.assign语句例:assignM=B
6、C;assignY=A&M;MM和Y都必须是wire型的102.assign语句Verilog具有丰富的表达式运算功能,可用于assign语句详见夏宇闻教材第
7、6章,自学。(1)算术型*乘法/除法+加法-减法%求余**求幂例:Y=5%2;Y=2**3;求余,结果为1求幂,结果为8说明加减乘除、求幂的操作数可以是实数也可以是整数,求余运算的操作数只能是整数。求余运算结果取第一个操作数的符号;(2)逻辑型!逻辑非&&逻辑与
8、
9、逻辑或例:Y=!(3>2)Y=(2<3)&&(5>6);Y=(2<3)
10、
11、(5>6);Y=(2<3)&&1’bx;Y=(2+3)
12、
13、(3-3);逻辑非,结果为0逻辑与,结果为0说明逻辑型运算的结果可能是1(逻辑真)、0(逻辑假)、x(不确定);逻辑运算的操作数可以是任意表达式,表达式的
14、结果被当做逻辑值处理,只有1、0、x三种情况,非0、x即1;表达式最好加括号。逻辑或,结果为1逻辑与,结果为x逻辑或,结果为1(3)关系运算符>大于<小于>=大于等于<=小于等于例:Y=(3>2)Y=(3<2);Y=(3>=2);Y=(3<=2);Y=(3<=1’bx);结果为1结果为0说明关系运算的结果可能是1(逻辑真)、0(逻辑假)、x(不确定);结果为1结果为0结果为x(4)等价运算符==等于!=不等于===case等于!==case不等例:Y=(3==2);Y=(3!=2);Y=(3==3);Y=(1’b1==1’bx);Y=(1’bx=
15、=1’bx);Y=(1’b1===1’bx);Y=(1’bx===1’bx);结果为0结果为1说明等于和不等于运算的结果可能是1(逻辑真
此文档下载收益归作者所有