第4章 Verilog初步

上传人:wkd****90 文档编号:252523491 上传时间:2024-11-16 格式:PPT 页数:32 大小:581.01KB
返回 下载 相关 举报
第4章 Verilog初步_第1页
第1页 / 共32页
第4章 Verilog初步_第2页
第2页 / 共32页
第4章 Verilog初步_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章,Verilog,设计初步,主要内容,4.1 Verilog,简介,4.2 Verilog,模块的结构,4.3 Verilog,基本组合电路设计,4.4 Verilog,基本时序电路设计,4.5 Synplify Pro,综合器,4.6 Synplify,综合器,4.1 Verilog,简介,Verilog,语言是,1983,年由,GDA,(,Gateway Design Automation,)公司的,Phil Moorby,首创的,之后,Moorby,又设计了,Verilog-XL,仿真器,,Verilog-XL,仿真器大获成功,也使得,Verilog,语言得到推广使用。,1989,年,,Cadence,收购了,GDA,,,1990,年,,Cadence,公开发表了,Verilog HDL,,并成立了,OVI,组织专门负责,Verilog HDL,的发展。,Verilog,于,1995,年成为,IEEE,标准,称为,IEEE Standard 1364-1995,(,Verilog-1995,),IEEE,“,1364-2001,”,标准(,Verilog-2001,)也获得通过,多数综合器、仿真器都已支持,Verilog-2001,标准,Verilog,语言的特点,既适于可综合的电路设计,也可胜任电路与系统的仿真。,能在多个层次上对所设计的系统加以描述,,从开关级、门级、寄存器传输级(,RTL,)到行为级,,都可以胜任,同时语言不对设计规模施加任何限制。,灵活多样的电路描述风格,,可进行行为描述,也可进行结构描述;支持混合建模,,在一个设计中各个模块可以在不同的设计层次上建模和描述。,Verilog,的行为描述语句,如条件语句、赋值语句和循环语句等,类似于软件高级语言,便于学习和使用。,内置各种基本逻辑门,便于进行门级结构描述;内置各种开关级元件,可进行开关级的建模。,易学易用,功能强,可满足各个层次设计人员的需要。,4.2 Verilog,模块的结构,module aoi(,a,b,c,d,f,),;,/*,模块名为,aoi,,端口列表,a,,,b,,,c,,,d,,,f*/,input,a,b,c,d;/,模块的输入端口为,a,,,b,,,c,,,d,output,f;/,模块的输出端口为,f,wire,a,b,c,d,f;/,定义信号的数据类型,assign,f=(a,/,逻辑功能描述,endmodule,“,与,-,或,-,非,”,电路,4.2 Verilog,模块的结构,Verilog,程序是由模块构成的。每个模块的内容都嵌在,module,和,endmodule,两个关键字之间;每个模块实现特定的功能。,每个模块首先要进行端口定义,并说明输入和输出口(,input,、,output,或,inout,),然后对模块的功能进行定义。,Verilog,程序书写格式自由,一行可以写几个语句,一个语句也可以分多行写。,除了,endmodule,等少数语句外,每个语句的最后必须有分号。,可用,/*,*/,和,/,对,Verilog,程序作注释。,1,模块声明,模块声明包括模块名字,模块输入、输出端口列表。模块定义格式如下:,module,模块名,(,端口,1,,端口,2,,端口,3,,,);,2,端口(,Port,)定义,对模块的输入输出端口要明确说明,其格式为,:,input,端口名,1,,端口名,2,,,端口名,n,;,/,输入端口,output,端口名,1,,端口名,2,,,端口名,n,;,/,输出端口,inout,端口名,1,,端口名,2,,,端口名,n,;,/,输入输出端口,3,信号类型声明,对模块中所用到的所有信号(包括端口信号、节点信号等)都必须进行数据类型的定义。,Verilog,语言提供了各种信号类型,分别模拟实际电路中的各种物理连接和物理实体。,如果信号的数据类型没有定义,则综合器将其,默认为是,wire,型,。,4,逻辑功能定义,模块中最核心的部分是逻辑功能定义。,定义逻辑功能的几种基本方法,:,(,1,)用,assign,持续赋值,语句定义,assign,语句多用于组合逻辑的赋值,称为持续赋值方式。,(,2,)用,always,过程块,定义,always,过程语句既可以用来描述组合电路,也可以描述时序电路。,(,3,),调用元件(元件例化),调用元件的方法类似于在电路图输入方式下调入图形符号来完成设计,这种方法侧重于电路的结构描述。,Verilog,模块的模板,module ();,output,输出端口列表,;,/,输出端口声明,input,输入端口列表,;,/,输入端口声明,/*,定义数据,信号的类型,函数声明,*,/,reg,信号名;,/,逻辑功能定义,assign=,;,/,使用,assign,语句定义逻辑功能,/,用,always,块描述逻辑功能,always,(),begin,/,过程赋值,/if-else,,,case,语句,/while,,,repeat,,,for,循环语句,/task,,,function,调用,end,/,调用其他模块,();,/,门元件例化,门元件关键字,(),;,endmodule,【,例,4.5】,三人表决电路的,Verilog,描述,module vote(a,b,c,f);/,模块名与端口列表,input a,b,c;/,模块的输入端口,output f;/,模块的输出端口,wire a,b,c,f;/,定义信号的数据类型,assign f=(a/,逻辑功能描述,endmodule,4.3 Verilog,基本组合电路设计,4.3 Verilog,基本组合电路设计,【,例,4.6】4,位二进制加法器的,Verilog,描述,module add4_bin(cout,sum,ina,inb,cin);,input,cin;,input3:0,ina,inb;,output3:0,sum;,output,cout;,assign cout,sum=ina+inb+cin;,/*,逻辑功能定义*,/,endmodule,综合(,RTL,级),4,位二进制加法器,RTL,级综合结果(,Synplify Pro,),综合(门级),4,位二进制加法器门级综合视图(,Synplify Pro,),【,例,4.8】BCD,码加法器,module add4_bcd(cout,sum,ina,inb,cin);,input,cin;,input3:0,ina,inb;,output3:0,sum;,reg3:0,sum;,output,cout;,reg,cout;,reg4:0,temp,;,always(ina,inb,cin)/always,过程语句,begin temp9)cout,sum=temp+6;,/,两重选择的,IF,语句,else cout,sum=temp;,end,endmodule,4.3 Verilog,基本组合电路设计,4.4 Verilog,基本时序电路设计,【,例,4.9】,基本,D,触发器的,Verilog,描述,module dff(q,d,clk);,input,d,clk;,output reg,q;,always(posedge clk),begin,q=d;,end,endmodule,4.4 Verilog,基本时序电路设计,【,例,4.10】,带,同步清,0/,同步置,1,(低电平有效)的,D,触发器,module dff_syn(q,qn,d,clk,set,reset);,input d,clk,set,reset;output reg q,qn;,always,(posedge clk),begin,if,(reset),begin q=1b0;qn=1b1;end,/,同步清,0,,低电平有效,else if,(set),begin q=1b1;qn=1b0;end,/,同步置,1,,低电平有效,else begin q=d;qn=d;end,end,endmodule,4.4 Verilog,基本时序电路设计,【,例,4.11】,带,异步清,0/,异步置,1,(低电平有效)的,D,触发器,module dff_asyn(q,qn,d,clk,set,reset);,input,d,clk,set,reset;,output reg,q,qn;,always,(,posedge,clk or,negedge,set or,negedge,reset),begin,if,(reset),begin q=1b0;qn=1b1;end,/,异步清,0,,低电平有效,else if,(set),begin q=1b1;qn=1b0;end,/,异步置,1,,低电平有效,else begin q=d;qn=d;end,end,endmodule,4.4 Verilog,基本时序电路设计,【,例,4.12】4,位二进制加法计数器,module count4(out,reset,clk);,input,reset,clk;,output reg3:0,out;,always(posedge clk),begin,if(reset)out=0;/,同步复位,else out=out+1;/,计数,end,endmodule,综合(,RTL,级),4,位二进制加法计数器,RTL,级综合视图,(,Synplify Pro,),综合(门级),4,位二进制加法计数器门级综合视图,(,Synplify Pro,),【,例,4.15】Johnson,计数器(异步复位),module johnson(clk,clr,qout);,parameter,WIDTH=4;,input,clk,clr;,output,reg(WIDTH-1):0,qout;,always,(posedge clk or posedge clr),begin,if(clr)qout=0;,else begin,qout=qout1;,qout0=qoutWIDTH-1;,end,end,endmodule,Synplify Pro,新建项目对话框,Synplify Pro,新建文件对话框,Implementation Option,对话框,约翰逊计数器综合后的,RTL,级原理图,约翰逊计数器综合后的门级原理图(,MAX7000,器件),在,Synplify Pro,中启动,Quartus,进行编译,Quartus,将,johnson_cnt.edf,作为顶层文件,约翰逊计数器时序仿真波形图,习 题,4,4.1,用,Verilog,设计一个,8,位加法器,进行综合和仿真,查看综合和仿真结果。,4.2,用,Verilog,设计一个,8,位二进制加法计数器,带异步复位端口,进行综合和仿真,查看综合和仿真结果。,4.3,用,Verilog,设计一个模,60,的,BCD,码计数器,进行综合和仿真,查看综合和仿真的结果,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 生活常识


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!