第五次verloghdl课

第五次verloghdl课

ID:1708266

大小:241.00 KB

页数:40页

时间:2017-11-13

第五次verloghdl课_第1页
第五次verloghdl课_第2页
第五次verloghdl课_第3页
第五次verloghdl课_第4页
第五次verloghdl课_第5页
资源描述:

《第五次verloghdl课》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六讲行为建模2内容:条件语句分支语句循环语句任务与函数禁止命名块和任务常用系统任务和函数条件语句(if-else)语法1:if(条件表达式)块语句条件表达式为逻辑真和逻辑1时执行块语句,其它如0、x、z均为条件不成立。一条没有else语句的if语句映射到硬件上,形成的是一个锁存器。如:always@(enableordada)if(enbale)out=data;enabledataout1dd0xd条件语句(if-else)语法2:if(条件表达式1)块语句1elseif(条件表达式2)块语句2…elseif(条件表达式n)块语句nelse块语句n+1常用于多

2、路选择控制;条件判断的先后顺序隐含条件的优先级关系;注意有时电路设计不需要优先级(使用case语句描述可得到并行条件,综合器相关);可以嵌套使用;如无块标识符,else语句与最近的if配对。条件语句(if-else)例:always@(enableordada_aordata_b)//信号有变化执行if语句if(enable)out=data_a;//enable=1,执行elseout=data_b;//enable=0,执行综合结果将产生一个二选一的多路选择器(MUX)。等效于语句:assignout=(enable)?data_a:data_b;条件要完备,

3、否则产生锁存器。条件语句(if-else)例:moduledff_1(q,d,clear,clk);outputq;inputd,clear,clk;regq;always@(posedgeclk)//时钟clk上升沿执行if语句操作if(!clear)//时钟clk上升沿时刻,clear为0,q<=0;//则输出q为0。elseq<=d;//时钟clk上升沿时刻,clear为1,d赋给q。endmodule同步清零D触发器描述条件语句(if-else)举例:moduledff_2(q,d,clear,clk);outputq;inputd,clear,clk;r

4、egq;always@(negedgeclearorposedgeclk)if(!clear)//clear下升沿时刻,clear为0,q<=0;//则输出q为0。与clk无关。elseq<=d;//时钟clk上升沿时刻,clear为1,d赋给q。endmodule异步清零D触发器条件语句(if-else)举例:moduledff_3(q,clear,clk);outputq[7:0];inputclear,clk;regq;always@(negedgeclearorposedgeclk)if(!clear)//clear下升沿时刻,clear为0,q<=8’d

5、0;//则输出q为0。与clk无关。elseq<=q+1;//时钟clk上升沿时刻,clear为1,q+1赋给q。endmodule异步清零8位计数器分支语句(case)常用于译码和有限状态机的描述。分类:case、casez、casex。语法:case(敏感表达式)值1:块语句1值2:块语句2…值n:块语句ndefault:块语句n+1endcase敏感表达式与各项值的比较是按位作全等比较。分支语句(case)例:moduledemo_case(sig);inputsig;always@(sig)case(sig)1’b1:$display(“signalval

6、ueis1”);1’b0:$display(“signalvalueis0”);1’bx:$display(“signalisunknown”);1’bz:$display(“signalishighimpedence”);endcaseendmodule分支语句(case)casez:忽略比较表达式两边的z部分casex:忽略比较表达式两边的x部分举例:casez(r[3:0])4’b011z:表达式1;//不比较Z4’b01xz:表达式2;//不比较Zdefault:表达式3;endcase分支语句(case)例:always@(selord1ord2ord3

7、ord4)case(sel)2’b00:out=d1;2’b01:out=d2;2’b10:out=d3;2’b11:out=d4;endcase4选1多路选择器分支语句(case)例:moduledecode(sel,out);input[2:0]sel;output[7:0]out;reg[7:0]out;always@(sel)case(sel)3’b000:out=8’b0000_0001;3’b001:out=8’b0000_0010;3’b010:out=8’b0000_0100;3’b011:out=8’b0000_1000;3’b100:out=8

8、’b000

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。