
嵌入式系统设计PPT5 Verilog HDL的建模.ppt
10页实训1 嵌入式系统基本概念与开发流程Verilog HDL 的建模的建模实训1 嵌入式系统基本概念与开发流程三种建模方式结构级建模(门级)数据流建模行为级建模实例引用基本门实例引用基本门元件或者子模块元件或者子模块实训1 嵌入式系统基本概念与开发流程 基本逻辑门基本逻辑门andnandornorxorxnornotbufbufif1bufif0notif1notif0多输入门类型多输入门类型实例名实例名(output,input1,input2inputN);nand nand_3(out,in1,in2,in3);多输出多输出门类型门类型实例名实例名(output1,output2outputN,input);三态三态门类型门类型实例名实例名(outputA,inputB,cortrolC);not N1(PhA,PhB,Ready);bufif1 BF1(data_out,data_in,EN);实训1 嵌入式系统基本概念与开发流程 门级建模门级建模module half_add(sum,cout,a,b);output sum,cout;input a,b;wire sum,cout;and(cout,a,b);/调用与门xor(sum,a,b);/调用异或门endmodule1位半加器位半加器absumcout实训1 嵌入式系统基本概念与开发流程三种建模方式结构化建模(门级)数据流建模行为级建模关键字为关键字为assignassign,对电路的布尔方对电路的布尔方程进行描述程进行描述实训1 嵌入式系统基本概念与开发流程 数据流建模数据流建模用数据流建模最基本的机制就是使用连续赋值语句。
wire m-1:0变量名变量名1,变量变量名名2,变量变量名名n;assign delay 变量名变量名=表达式表达式;注意:在注意:在assignassign语句中,左边变量语句中,左边变量 的数据类型必须是的数据类型必须是wirewire型右边表达式使用的操作数无论何时发生变化,表达式都重新计算,并且在指定的时延后变化值被赋予左边表达式的线网变量时延定义了右边表达式操作数变化与赋值给左边表达式之间的持续时间如果没有定义时延值,缺省时延为0实训1 嵌入式系统基本概念与开发流程 数据流建模数据流建模module half_add(sum,cout,a,b);output sum,cout;input a,b;wire sum,cout;assign sum=ab;assign cout=a&b;endmodule1位半加器位半加器absumcout实训1 嵌入式系统基本概念与开发流程三种建模方式结构级建模(门级)数据流建模行为级建模关键字为关键字为initial initial 或或alwaysalways,对电路的对电路的功能和算法进行功能和算法进行描述描述实训1 嵌入式系统基本概念与开发流程 行为级建模行为级建模行为级建模用于描述数字逻辑电路的功能和算法。
1.1.initialinitial语句:语句:语句:语句:此语句只执行一次此语句只执行一次initial语句主要是一条面向仿真的语句主要是一条面向仿真的过程语句,不能用来描述硬件逻辑电路的功能过程语句,不能用来描述硬件逻辑电路的功能2.2.alwaysalways语句:语句:语句:语句:此语句总是循环执行,或者说此语句重复执行此语句总是循环执行,或者说此语句重复执行注意:只有寄存器类型数据能够在这两种语句中被赋值寄存器注意:只有寄存器类型数据能够在这两种语句中被赋值寄存器 类型数据在被赋新值前保持原有值不变所有的初始化语类型数据在被赋新值前保持原有值不变所有的初始化语 句和句和alwaysalways语句在语句在0 0时刻并发执行时刻并发执行实训1 嵌入式系统基本概念与开发流程 行为级建模行为级建模module half_add(sum,cout,a,b);output sum,cout;input a,b;reg sum,cout;always(a or b)begin case(a,b)2d00:bengin sum=0;cout=0;end 2d01:bengin sum=1;cout=0;end 2d10:bengin sum=1;cout=0;end 2d11:bengin sum=0;cout=1;end endcase endendmoduleabsumcout0000011010101101。
