第六讲行为建模 西安邮电学院通信工程系 条件语句(if一else) 举例:异步清零D触发器 module dff 2(g,d,clear,clk); output q; input d,clear,clk; reg q; always @(negedge clear or posedge clk) if(!clear) ∥clear下升沿时刻,clear为0, q<=0; /则输出q为0。与ck无关。 else q<=d; 时钟clk上升沿时刻,clear为1,d赋给q。 endmodule
第六讲 行为建模 西安邮电学院通信工程系 条件语句(if-else) 举例: module dff_2(q,d,clear,clk); output q; input d,clear,clk; reg q; always @(negedge clear or posedge clk) if(!clear) // clear下升沿时刻,clear为0, q<=0; //则输出q为0。与clk无关。 else q<=d; //时钟clk上升沿时刻,clear为1,d赋给q。 endmodule 异步清零D触发器
第六讲行为建模 西安邮电学院通信工程系 条件语句(if一else) 举例:异步清零8位计数器 module dff_3(q,clear,clk); output q[7:0]; input clear,clk; reg q; always @(negedge clear or posedge clk) if(!clear) ∥clear下升沿时刻,cear为0, q<=8'd0; ∥则输出q为0。与ck无关。 else q<=q+1; /时钟ck上升沿时刻,clear为1,q+1赋给q。 endmodule
第六讲 行为建模 西安邮电学院通信工程系 条件语句(if-else) 举例: module dff_3(q,clear,clk); output q[7:0]; input clear,clk; reg q; always @(negedge clear or posedge clk) if(!clear) // clear下升沿时刻,clear为0, q<=8’d0; //则输出q为0。与clk无关。 else q<=q+1; //时钟clk上升沿时刻,clear为1,q+1赋给q。 endmodule 异步清零8位计数器
第六讲行为建模 西安邮电学院通信工程系 分支语句(case) 常用于译码和有限状态机的描述。分类:case、casez、casex。 冬语法: case(敏感表达式) 值1:块语句1 值2:块语句2 值n:块语句n default:块语句n+1 endcase 冬敏感表达式与各项值的比较是按位作全等比较
第六讲 行为建模 西安邮电学院通信工程系 分支语句(case) ❖ 常用于译码和有限状态机的描述。分类:case、 casez、 casex。 ❖ 语法: case(敏感表达式) 值1:块语句1 值2:块语句2 . 值n:块语句n default:块语句n+1 endcase ❖ 敏感表达式与各项值的比较是按位作全等比较
第六讲行为建模 西安邮电学院通信工程系 分支语句(case) 例:module demo case(sig); input sig; always @(sig) case(sig) 1'b1:$display("signal value is 1"); 1'b0:$display("signal value is 0"); 1'bx:$display("signal is unknown"); 1'bz:$display("signal is high impedence"); endcase endmodule
第六讲 行为建模 西安邮电学院通信工程系 分支语句(case) ❖ 例: module demo_case(sig); input sig; always @(sig) case(sig) 1’b1: $display(“signal value is 1”); 1’b0: $display(“signal value is 0”); 1’bx: $display(“signal is unknown”); 1’bz: $display(“signal is high impedence”); endcase endmodule
第六讲行为建模 西安邮电学院通信工程系 分支语句(case) casez:忽略比较表达式两边的z部分 casex::忽略比较表达式两边的x部分 冬举例: casez(r[3:0]) 4'b011z:表达式1;W不比较Z 4b01z:表达式2; 不比较Z default: 表达式3; endcase
第六讲 行为建模 西安邮电学院通信工程系 分支语句(case) ❖ casez:忽略比较表达式两边的z部分 ❖ casex:忽略比较表达式两边的x部分 ❖ 举例: casez( r[3:0] ) 4’b011z: 表达式1; // 不比较Z 4’b01xz: 表达式2; // 不比较Z default: 表达式3; endcase