资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,为什么要采用硬件描述语言(,HDL,),随着电子系统设计复杂性的提高,可利用,HDL,在抽象层次对复杂系统进行有效的描述。,HDL,描述结果易于通过,EDA,工具完成工艺无关的设计,有利于保证设计正确性和对设计进行管理,便于对设计进行管理、归档和重用,易于对设计进行修改,以探索不同的设计可能性,便于提高设计的效率,硬件描述语言特点,功能的灵活性,支持从开关级,门级,,RTL,,行为级等不同抽 象层次对电路进行描述。,支持不同抽象层次描述的电路组合为一个电路模型。,支持元件库、功能模块的可重用设计。,HDL,支持高层次的设计抽象,适用于复杂数字电路系统设计。,HDL,设计可不依赖厂商和器件,可移植性好。,Verilog,在,VLSI,设计过程中的位置,数字电路设计者用,Verilog HDL,来描述自己的设计思想,然后利用,EDA,工具进行仿真,综合,最终用,ASIC,或,FPGA,实现其功能,Verilog与VHDL,目前,设计者使用,Verilog,和,VHDL,的情况,美国:,Verilog:60%,VHDL:40%,台湾:,Verilog:50%,VHDL:50%,Verilog 与 VHDL,两者的区别:,VHDL,侧重于系统级描述,从而更多的为系统级设计人员所采用,Verilog,侧重于电路级描述,从而更多的为电路级设计人员所采用,Verilog HDL与 C语言,虽然,Verilog,的某些语法与,C,语言接近,但存在本质上的区别,Verilog,是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真,C,语言是一种软件语言,是控制硬件来实现某些功能,利用,Verilog,编程时,要时刻记得,Verilog,是硬件语言,要时刻将,Verilog,与硬件电路对应起来,SystemC and SystemVerilog:,面向,SOC,3.1.2,层次化设计,3.2 Verilog HDL,描述的四个层次的电路模型,行为级或算法级,是,Verilog HDL,支持的最高抽象级别,侧重关注算法的实现,不关心硬件电路的实现。,Verilog HDL,在此层次上,描述,系统中数据在不同模块之间的传输,必要的操作,行为级或算法级,寄存器传输级,通过描述模块内部状态转移的情况来表征该逻辑单元的功能,设计者关注数据的处理及其如何在线网上,寄存器间的传递。,Verilog HDL,在此层次上:,描述系统中的数据流和功能模块之间和内部的控制信号,按照定义的时钟周期建立模型,寄存器传输级,门级,调用已设计好的逻辑门基本单元(原语),如,与门,或门、异或门等,描述逻辑门之间的连接,以实现逻辑功能。,Verilog HDL,在此层次上,描述底层单元之间的连接,可以更精确地描述系统的行为。,在进行综合时使用特定工艺库完成,RTL,到门级的映射。,门级,开关级,这是,Verilog,语言支持的最低抽象层次,通过描述器件中的晶体管,存储节点及其它们的互联来设计模块。,一般来说,设计的抽象程度越高,设计的灵活性就越好,和工艺的无关性就越高,随着抽象程度降低,设计的灵活性和工艺的无关性变差,可移植性变差。,3.2.1,模块结构分析,例,3-1,:设计一个半加器,1,)功能分析,真值表:,CO=A&B,S=A XOR B,输入信号:,A,、,B,是输入的,1bit,数据,输出信号:,S,:相加的和,CO,:向高位的进位,3.2.1 模块结构分析,2,)半加器的,Verilog HDL,描述,module halfadder(A,B,CO,S);,input A,B;,output S,CO;,wire S,CO;,assign S=A B;,assign CO=A,endmodule,从中,看出,Verilog HDL,怎样的结构特点?,程序位于关键字,module,和,endmodule,之间,每个模块必须有一个模块名进行标识,模块有输入,输出端口说明,有模块功能,描述,模块中的每一条语句都以分号(,;,)结束,但,endmodule,后不加分号,3.2.1 模块结构分析,模块(,module,)是,Verilog HDL,设计的基本功能单元。模块可以是:,一个元件,多个低层次模块的组合,表,3.2 Verilog HDL,模块结构,3.2.1,模块结构分析,3.2.1 模块结构分析,1,、含端口名的模块声明,格式:,module,模块名(端口,1,,端口,2,,,,端口,n,);,为便于工程管理,模块命名一般应和其功能相关,端口是模块和外界进行信息交互的接口,如果模块与外界无信息交互,则无端口列表,例如:,module testbench();,如有信息交互,注意在括号中罗列的各端口名用逗号隔开,2.I/O,端口声明,所有声明的端口都必须说明其端口类型、位宽等信息。,端口类型有三类,输入端口,格式:,input,width-1:0,端口名,1 ;,输出端口,格式:,output,width-1:0,端口名,1,,,;,输入,/,输出端口,格式:,inout,width-1:0,端口名,1,,,;,例:,input7:0 data_in;,output S,CO;,inout15:0 data_1,data_2;,2.I/O端口声明,3,数据类型说明,输出端口的信号,模块内部信号需要数据类型说明。,常用两类数据类型,线网类型,(,关键词:,wire),寄存器类型(关键词,:reg,)。,寄存器类型(,register type),表示一个抽象的数据存储单元,它只能在,always,语句和,initial,语句中被赋值。寄存器类型变量的缺省值为不确定值,x,。,线网类型(,net type,),表示元件间的物理连线。它的值由驱动元件的值决定。如果没有驱动元件连接到线网,线网的缺省值为高阻值,z,。,4,模块功能说明,常有四类方法可以选用以完成模块逻辑功能的表述,2,)对已定义好的元件进行调用:,halfadder u1(a,b,s,co);,1,)用连续赋值语句“,assign”,进行数据流建模,assign a=b&c,;,用结构说明语句“,always”,、“,initial”,进行行为级描述:,always (posedge clk),begin,Q=d;,end,initial /,产生信号,a,b,的波形,begin,a=0;b=0;,#10 begin,a=1;b=0;end,end,4 模块功能说明,用结构说明语句、“,task”,和“,function”,进行行为级描述:,task writeburst;/,定义一个任务,writebrust,input 7:0 wdata;,endtask,writeburst(123);/,调用任务,function max(a,b)/,定义一个函数,max,,求出,a,b,两数的最大值,endfunction,/,函数的调用,将,data_1,data_2,的最大值赋给,c,assign c=max(data_1,data_2);,4 模块功能说明,5.,模块结尾,在每个模块的末尾用,endmodule,结束,其后不加分号。,每个,Verilog,HDL,模块中,module,、模块名和,endmodule,这三部分是模块必须的,,其余的根据设计要求选用。,3.2.2,模块的实例化,模块调用(也称模块实例化)基本格式为:,(,),;,根据对被调用的低层模块与上层模块的连接端口的描述方式,有两种实例化方法,:,(,1,)按端口顺序连接,:,低层模块定义时声明的端口顺序与上层模块相应的连接端口顺序保持一致。,格式:,模块名 例化名(,PORT_1,,,PORT_N,),;,(,2,)按端口名称连接,被调用的低层模块和上层模块是通过端口名称进行连接的。,格式:,模块名 例化名(,.port_1(PORT_1),,,.,port_n(PORT_N);,3.2.2 模块的实例化,例,3-9,:通过调用半加器模块、或门模块来实现一位全加器。,1,)电路板的元件装配与,Verilog,模块例化进行类比,3.2.2 模块的实例化,如果采用第一种按模块端口顺序连接的方法例化模块则全加器写成,module fulladder(a,b,co_in,co_out,s);,.,/,调用半加器模块两次,例化名分别为,u1,u2,halfadder u1(a,b,co_temp1,s_temp);,halfadder u2(s_temp,co_in,co_temp2,s);,/,调用两输入与门,例化名为,u3,and2 u3(co_temp1,co_temp2,co_out);endmodule,(练习),3.2.2 模块的实例化,如果没有,co_in,输入,则半加器,u2,的调用可写为(采用第二种按模块端口名称连接):,3.2.2 模块的实例化,练习:,halfadder u2(.A(s_temp),.CO(co_temp2),.S(s);,或:,halfadder u2(.A(s_temp),.B(),.CO(co_temp2),.S(s);,第二种例化格式的优势:,(,1,)在被调用模块有较多引脚时,根据端口名字进行信号连接,可避免因记错端口顺序而出错。,(,2,)在被调用模块的端口顺序发生变化时,只要端口名字含义不变,模块调用就可以不更改调整。,3.2.2 模块的实例化,总结,HDL,概述。,TOP-DOWN,设计方法。,Verilog HDL,的功能及四个设计层次。,Verilog,模块的结构。,Verilog HDL,的例化概念及其方法。,作业,1.P139 5 6,2.,用,Verilog HDL,完成一个含异步清,0,和同步使能的,4,位加法计数器,.,
展开阅读全文