1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog剖析

Running the synthesis processYou can synthesize your design once design files have been created. The synthesis process will check code syntax and analyze the hierarchy of your design which ensures that your design is optimized for the design architecture you have selected. The resulting netlist is saved to an NGC file (for Xilinx? Synthesis Technology (XST)) or an EDIF file (for Precision, or Synplify/Synplify Pro).Verilog 提供了一套完整的表示组合逻辑的基本元件的原语(primitive)运算符赋值运算符:=,=算术运算符:+,-,*,/,%取模位运算符:按位与,|按位或,~取反,^按位异或,^~按位同或,~^关系运算符:, , =,=相等运算符:==,!=,(===,!==不可综合)逻辑运算符:!,,||位移运算符:右移,左移条件运算符:?:拼接运算符:{}例如:{a,b[3:0],w,3’b101}, {b,3{a,b}}={b,a,b,a,b,a,b},Assign {cout,sum}=a+b+cin;缩减运算符:!,, | ,如:reg[3:0]B;regC; C=B相当于:C=((B[0]B[1])B[2])B[3]优先级非、取反:! ~算术:*/ %算术:+ -移位: 关系: = =关系:==!====!==位运算:位运算:^ ^~位运算:|逻辑:逻辑:||条件:? :Forever :连续执行一条语句Forever 语句;或者 forever begin 多条语句 end必须写在initial 快中。Repeat:连续执行一条语句n次 Repeat(表达式)语句;Repeat(表达式)begin多条语句 endWhile:执行一条语句直到某条条件不满足While(表达式)语句;While(表达式)begin多条语句 endDisable作用:1,从循环中退出;2,处理错误条件;3,根据控制信号来控制某些代码段是否被执行。begin:block1//命名快:可以声明静态本地变量;可以被禁用;声明的变量可以通过层次名引while(i16) //用进行访问beginif(flag[i])begin$display(“Encountered a True bit at element number %d”,i);disable block1;// 禁止快block1执行endi=i+1;endend数据类型:net(网线) reg(寄存器)integer(整型数)real(实型数)time(时间型)realtime(实数时间型)event(事件)always@( 敏感列表) beginend敏感列表:可以是沿触发,也可以是电平触发沿触发:只要指定的沿出现,就立即执行一次过程快电平触发:只要电平变化,就会执行一次过程快敏感表中存在多个信号或者事件,他们之间要用“or”或者“,”间隔@(*):对其后语句块中所有输入变量的变化敏感。电平敏感时序控制:另一种形式的电平敏感时序控制alwayswait(count_enable) #2 count=count+1;count_enable 为1时执行后面的语句count_enable为0时,不执行后面的语句,仿真会停顿下来task:定义:task任务名;端口及数据类型声明语句语句1……语句nendtasktask调用:my_task(v,w,x,y,z);parametermodule Decode(A,F);parameter width=1,polarity=1;endmodule调用:Decode #(4,0) D1(A1,F1) //改变定义模块里面的常数:#()functionfunction返回值的类型或范围(函数名)端口说明语句变量类型说明语句begin语句endendfunction函数的定义把函数返回值所赋值寄存器的名称初始化位与函数同名的内部变量。函数的定义不能包含任何的时间控制语句,#@ wait函数不能启动任务定义函数时至少要有一个输入变量必须有一条赋值语句给函数中的一个内部变量递归函数例如:function automatic integer factorial;使用关键字autom

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档