欢迎来到天天文库
浏览记录
ID:8972109
大小:37.50 KB
页数:3页
时间:2018-04-13
《veirlog常用的关键字及应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Veirlog常用语法与句法l块Module---endmodule顺序模块begin---end和同时执行模块fork---join如fork#dout=dinjoin相对开始延时一个时间单位l信号:连线(wire)、寄存器(reg[5:0])、6‘b000000.整型(integer)、实型(real)和时间(time如‘timescle10ns/10ns)双向(inout)。l敏感信号的操作always@(posedgesclkornegedgerst)或者always@(posedgesys_
2、clk,negedgerst)新版本2001或者如always@*out<=a+b;新版本2001lassignclk=Mega_cnt[4]assign{cout,sum}=ina+inb+cin;linitial块语句预always语句类似,不过在程序中它只执行1次就结束了如initialbeginout=8'b00110000;endl参数型parameterIDLE=2'b01;parameter常量定义关键字l模块调用和构建如moduletopram#(10,8)ram1(input1,…o
3、utput1…output2);endmodule或用元件例化实现:与门例化一个3输入端与门andmyand3(y,a,b,c);l标量:一位宽的wire或reg型数据,矢量:指定范围位宽的wire或reg型数据。三VerilogHDL的词法1)、常数:未知x和高阻z。b(二进制),d(十进制),h(十六),o(八进制)。2)、1.算术操作符+(加)、-(减)、*(乘)、/(除)、%(求余)。2.逻辑操作符&&(逻辑与)、
4、
5、(逻辑或)、!(逻辑非)3.位运算:~(按位取反)、&(按位与)、
6、(按位或
7、)、^(按位异或)、^~或~^(按位同或)。4.关系操作符:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)。5.等式操作符:==(等于)、!=(不等于)、===(全等)、!==(不全等)。结果也是1位逻辑值6.缩减操作符:&(与)、~&(与非)、
8、(或)、~
9、(或非)、^(异或)、^~或~^(同或)。运算结果有1位1或0。设A=8’b11010001,则&A=0(在与缩减运算中,只有A中的数字全为1时,结果才为1);7.转移操作符:>>(右移)、<<(左移),操作数>>n8.条件操作符:?
10、操作数=条件?表达式1:表达式2;9.位并接操作符:{}格式为{操作数1的某些位,操作数2的某些位,…,操作数n的某些位}10系统任务$l用于门级描述关键字包括:not(非门)、and(与门)、nand(与非门)、or(或门)、nor(或非门)、xor(异或门)、xnor(异或非门)、buf(缓冲器)以及bufif1、bufif0、notif1、notif0等各种三态门。lcase语句case(表达式)选择值1:语句1;---选择值n:default:语句n+1;endcaseifelsel循环语句包
11、含for语句、repeat语句、while语句和forever语句4种。for语句的语法格式为integern;always@(a)beginout=0;for(n=0;n<8;n=n+1)out=out^a[n];endlrepeat语句repeat(循环次数表达式)语句;integern;always@(a)beginout=0;n=0;repeat(size)beginout=out^a[n];endltask语句task语句用来定义任务。任务类似高级语言中的子程序,task任务名;端口声明语句
12、;类型声明语句;begin语句;endendtask4.function语句function[最高有效位:最低有效位]函数名;端口声明语句;类型声明语句;begin语句;endendfunctionVerilogHDL门级描述disable条件成立时退出循环5.define宏定义6.include文件包含语句‘include“child1.v”?wirecarry=(divider==16383);见梁祝乐曲的解释
此文档下载收益归作者所有