《设计层次与风格》PPT课件.ppt

上传人:sh****n 文档编号:13173137 上传时间:2020-06-05 格式:PPT 页数:31 大小:191KB
返回 下载 相关 举报
《设计层次与风格》PPT课件.ppt_第1页
第1页 / 共31页
《设计层次与风格》PPT课件.ppt_第2页
第2页 / 共31页
《设计层次与风格》PPT课件.ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
Verilog设计的层次与风格,主要内容,结构(Structural)描述行为(Behavioural)描述数据流(DataFlow)描述基本组合电路设计基本时序电路设计,Verilog设计的层次,结构(Structural)描述行为(Behavioural)描述数据流(DataFlow)描述,在Verilog程序中可通过如下方式描述电路的结构调用Verilog内置门元件(门级结构描述)调用开关级元件(晶体管级结构描述)用户自定义元件UDP(也在门级),结构(Structural)描述,Verilog的内置门元件,门元件的调用,调用门元件的格式为:门元件名字()其中普通门的端口列表按下面的顺序列出:(输出,输入1,输入2,输入3);比如:anda1(out,in1,in2,in3);/三输入与门对于三态门,则按如下顺序列出输入输出端口:(输出,输入,使能控制端);比如:bufif1mytri1(out,in,enable);/高电平使能的三态门,门级结构描述的2选1MUXmoduleMUX21a(out,a,b,sel);outputout;inputa,b,sel;not(sel_,sel);and(a1,a,sel_),(a2,b,sel);or(out,a1,a2);endmodule,行为描述,就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现。,行为描述的2选1MUX,modulemux21b(out,a,b,sel);outputout;inputa,b,sel;regout;always(aorborsel)beginif(sel)out=b;elseout=a;endendmodule,7.4数据流描述,数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为:assignLHS_net=RHS_expression;右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算,并将重新计算后的值赋予左边表达式的net型变量。,数据流描述的2选1MUX,moduleMUX21c(out,a,b,sel);outputout;inputa,b,sel;assignout=sel?b:a;endmodule,不同描述风格的设计,对设计者而言,采用的描述级别越高,设计越容易;对综合器而言,行为级的描述为综合器的优化提供了更大的空间,较之门级结构描述更能发挥综合器的性能,所以在电路设计中,除非一些关键路径的设计采用门级结构描述外,一般更多地采用行为建模方式。,结构描述的一位全加器,modulefull_add1(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;wires1,m1,m2,m3;and(m1,a,b),(m2,b,cin),(m3,a,cin);xor(s1,a,b),(sum,s1,cin);or(cout,m1,m2,m3);endmodule,数据流描述的1位全加器,modulefull_add2(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;assignsum=abcin;assigncout=(aendmodule,行为描述的1位全加器,modulefull_add4(a,b,cin,sum,cout);inputa,b,cin;outputsum,cout;regsum,cout,m1,m2,m3;always(aorborcin)beginm1=aendendmodule,4位加法器,4-bitadder,includefull_add1.vmoduleadd4_1(sum,cout,a,b,cin);output3:0sum;outputcout;input3:0a,b;inputcin;full_add1f0(a0,b0,cin,sum0,cin1);full_add1f1(a1,b1,cin1,sum1,cin2);full_add1f2(a2,b2,cin2,sum2,cin3);full_add1f3(a3,b3,cin3,sum3,cout);endmodule,结构描述的4位级连全加器,moduleadd4_2(cout,sum,a,b,cin);output3:0sum;outputcout;input3:0a,b;inputcin;assigncout,sum=a+b+cin;endmodule,数据流描述的4位加法器,行为描述的4位加法器,moduleadd4_3(cout,sum,a,b,cin);output3:0sum;outputcout;input3:0a,b;inputcin;reg3:0sum;regcout;always(aorborcin)begincout,sum=a+b+cin;endendmodule,基本组合电路设计,门级结构描述modulegate1(F,A,B,C,D);inputA,B,C,D;outputF;nand(F1,A,B);/调用门元件and(F2,B,C,D);or(F,F1,F2);endmodule,数据流描述modulegate2(F,A,B,C,D);inputA,B,C,D;outputF;assignF=(A/assign持续赋值endmodule,行为描述modulegate3(F,A,B,C,D);inputA,B,C,D;outputF;regF;always(AorBorCorD)/过程赋值beginF=(Aendendmodule,基本组合电路设计,用bufif1关键字描述的三态门moduletri_1(in,en,out);inputin,en;outputout;triout;bufif1b1(out,in,en);endmodule,基本组合电路设计,3-to-8decoder,moduledecoder_38(out,in);output7:0out;input2:0in;reg7:0out;always(in)begincase(in)3d0:out=8b11111110;3d1:out=8b11111101;3d2:out=8b11111011;3d3:out=8b11110111;3d4:out=8b11101111;3d5:out=8b11011111;3d6:out=8b10111111;3d7:out=8b01111111;endcaseendendmodule,基本组合电路设计,奇偶校验位产生器Moduleparity(even_bit,odd_bit,input_bus);outputeven_bit,odd_bit;input7:0input_bus;assignodd_bit=input_bus;/产生奇校验位assigneven_bit=odd_bit;/产生偶校验位endmodule,基本组合电路设计,用if-else语句描述的4选1MUXmodulemux4_1(out,in0,in1,in2,in3,sel);outputout;inputin0,in1,in2,in3;input1:0sel;regout;always(in0orin1orin2orin3orsel)beginif(sel=2b00)out=in0;elseif(sel=2b01)out=in1;elseif(sel=2b10)out=in2;elseout=in3;endendmodule,基本时序电路设计,D-FFdesigns(基本D触发器),moduleDFF(Q,D,CLK);outputQ;inputD,CLK;regQ;always(posedgeCLK)beginQ=D;endendmodule,基本时序电路设计,带异步清0、异步置1的D触发器moduleDFF1(q,qn,d,clk,set,reset);inputd,clk,set,reset;outputq,qn;regq,qn;always(posedgeclkornegedgesetornegedgereset)beginif(!reset)beginq=0;qn=1;/异步清0,低电平有效endelseif(!set)beginq=1;qn=0;/异步置1,低电平有效endelsebeginq=d;qn=d;endendendmodule,基本时序电路设计,带同步清0、同步置1的D触发器moduleDFF2(q,qn,d,clk,set,reset);inputd,clk,set,reset;outputq,qn;regq,qn;always(posedgeclk)beginif(reset)beginq=0;qn=1;end/同步清0,高电平有效elseif(set)beginq=1;qn=0;end/同步置1,高电平有效elsebeginq=d;qn=d;endendendmodule,基本时序电路设计,8位数据锁存器modulelatch_8(qout,data,clk);output7:0qout;input7:0data;inputclk;reg7:0qout;always(clkordata)beginif(clk)qout=data;endendmodule,基本时序电路设计,8位数据寄存器modulereg8(out_data,in_data,clk,clr);output7:0out_data;input7:0in_data;inputclk,clr;reg7:0out_data;always(posedgeclkorposedgeclr)beginif(clr)out_data=0;elseout_data=in_data;endendmodule,基本时序电路设计,可变模加法/减法计数器moduleupdown_count(d,clk,clear,load,up_down,qd);input7:0d;inputclk,clear,load,up_down;output7:0qd;reg7:0cnt;assignqd=cnt;always(posedgeclk)beginif(!clear)cnt=8h00;/同步清0,低电平有效elseif(load)cnt=d;/同步预置elseif(up_down)cnt=cnt+1;/加法计数elsecnt=cnt-1;/减法计数endendmodule,习题,7-1Verilog语言支持哪几种描述方式,各有什么特点?7-2分别用结构描述和行为描述方式设计一个基本的D触发器,并进行综合。7-3分别用结构描述和行为描述方式设计一个JK触发器,并进行综合。7-4试编写同步模5计数器程序,有进位输出和异步复位端。7-5编写4位串/并转换程序。7-6编写4位并/串转换程序。7-7编写4位除法电路程序。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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