Verilog硬件描述语言基础.ppt
《Verilog硬件描述语言基础.ppt》由会员分享,可在线阅读,更多相关《Verilog硬件描述语言基础.ppt(96页珍藏版)》请在三一办公上搜索。
1、Verilog硬件描述语言基础,简介,HDLHardware Description Language,简介,发展概况Verilog:1983年Gateway Design Automation为其模拟器开发的硬件建模语言;专用、用于模拟、仿真1990 OVI(Open Verilog International)1995 成为IEEE标准Std1364-1995可用于模拟、仿真、综合的硬件建模,简介,Verilog 的特征支持多级建模方式算法、行为级建模寄存器传输(RTL)级建模门级建模开关级建模,简介,支持多种建模方式行为功能建模方式结构建模方式数据流建模方式,简介,层次描述,在描述中显式
2、进行时序建模提供了强大的硬件建模能力,内嵌的任务和函数类C语言,易学已成为业界标准可通过PLI与C接口提供原语描述能力,简介,EDA工具对Verilog的支持良好Simulation ToolsVerilogXL:业界的黄金模拟器VCS(ViewLogic)NCVerilogNC_Sim(兼容Verilog、VHDL混合结构的描述形式)Synthesis ToolsSynopsys DesignCompilerVeriBest、Ambit、RTLCompilerMagmaEmulation ToolsQuickTurn、PalladiumModelSource、VstationArms、Mot
3、orola,简介,混合建模能力,二、Verilog的总体结构,1 总体描述方式,二、Verilog的总体结构,模块的基本描述形式:module module_name(input/output_port list);Declarations:input/output_port declarations;reg,wire,parameter,function,task,UDP.Statements:initial statementsalways statementsGate/Module instantiationUDP instantiationassign statementsendmod
4、ule,二、Verilog的总体结构,描述方式说明,二、Verilog的总体结构,行为功能描述,二、Verilog的总体结构,数据流描述方式,一、Verilog HDL描述的层次,1、结构化、层次式描述2、行为、功能描述3、电路级描述,Verilog类C语言的特征,行为描述时可采用类C的语言结构ifelsecaseforwhile赋值语句结构与C的语言结构相似算术、逻辑操作与C的语言相似,三、Verilog语言要素,模块的基本描述形式:module module_name(input/output_port list);Declarations:input/output_port declar
5、ations;reg,wire,parameter,function,task,UDP.Statements:initial statementsalways statementsGate/Module instantiationUDP instantiationassign statementsendmodule,三、Verilog语言要素,1、标识符不能使用保留字作标识符,三、Verilog语言要素,2、数据类型2.1 verilog 的允许基本逻辑值0:逻辑0/真1:逻辑1/假x:未知()z:高阻,三、Verilog语言要素,2.2常量类型整型b、o、d、h分别表示二进制数、八进制数、十
6、进制数、十六进制数用数字表示数据宽度3b101表示3位二进制数1018hdf表示8位16进制数df实型字符串型,三、Verilog语言要素,2.3信号类型线网类型寄存器类型,三、Verilog语言要素,线网类型wiretriworwandtriortriandtriregtri1tri0supply0supply1,三、Verilog语言要素,wand:线与,三、Verilog语言要素,寄存器类型reg 并不一定代表设计中实际的寄存器reg数据类型说明时要注意数据长度问题integer数据类型说明时要注意数据长度问题integer数据默认长度为64位,三、Verilog语言要素,存储器说明及操
7、作说明方式:reg msb:lsbmemory_nameupper:lower;reg 15:0mem1255:0;mem1定义为深度为256的16位存储器,三、Verilog语言要素,存储器说明及操作存储器赋值方式:单个存储单元的赋值reg 15:0 mem1255:0;mem1I=16h8c;mem18=16ha9;使用系统任务对存储器赋值$readmemb(“filename”,memory_name);$readmemh(“filename”,memory_name);,存储器说明及操作,reg 7:0mem14:0;$readmemb(“memory1”,mem1);memory1内
8、容如下:0100100110110110110100011001110011000111,三、Verilog语言要素,2.4参数说明parameter参数名 值;parameterBUS_SIZE=16;parameterfilename=“/export/home/joe/my_file”使用参数的优点:增加可读性;可修改性好;设计的可重用性好,四、表达式,4.1操作数寄存器类型数据线网类型数据,四、表达式,4.2操作符算术操作+-*/%逻辑操作&|!&|=!=条件操作?:,五、行为建模,5.1建模机制initial 语句always 语句,五、行为建模,5.2always语句always(
9、敏感信号表)描述体always#timing 描述体always描述体敏感信号表的完整性问题:敏感信号不完整会导致逻辑模拟结果错误;信号过多会导致逻辑模拟速度慢、逻辑模拟结果错误。,五、行为建模,5.3时序控制延时控制事件控制,五、行为建模,事件控制边沿触发事件控制(event)Procedure_statements(posedge clk)Current_State=Next_State;(negedge clk)Current_State=Next_State;电平触发事件控制(信号表)Procedure_statements(a or b)Sum=a b;wait(表达式)Proced
10、ure_statementswait(DataReady)Data=Bus;wait(Sum=22)Sum=0;,五、行为建模,描述语句块顺序语句块:语句块内的语句按书写的次序执行;begin描述语句1;描述语句2;。描述语句n;end,五、行为建模,描述语句块并行语句块:语句块内的语句并行执行;fork描述语句1;描述语句2;。描述语句n;join,五、行为建模,描述语句块顺序语句块内可嵌套并发语句块;并发语句块内可嵌套顺序语句块。,分支、条件语句if else及其嵌套语句case语句case、casex、casez基本语法结构与C语言类似,五、行为建模,五、行为建模,循环语句forever
11、 循环forever procedural_statementrepeat 循环repeat(loop_number)procedural_statement,五、行为建模,循环结构while循环语句while(condition)procedural_statementfor循环语句for(initial_assignment;condition;step_assignment)procedural_statement,五、行为建模,function定义function range function_id;input_declarationsother declarationsprocedu
12、ral_statementsendfunctionfunction适合描述组合逻辑块,五、行为建模,function BUS_SIZE-1:0 function_example;inputBUS_SIZE-1:0 Din;integerk;begin for(k=0;kBUS_SIZE-1;k=k+1)function_exampleBUS_SIZE-k=Dink;endendfunction函数调用func_id(exp1,expn);reg BUS_SIZE-1:0 din,dout;dout=function_example(din);,五、行为建模,Task定义task task_id
13、;input_declarationother declarationprocedural statementsendtasktask适合于描述时序任务,五、行为建模,一个建模实例,五、行为建模,六、UDP定义,6.1 UDP定义primitive UDP_name(Output_Name,List_of_inputs);output_declarationdeclaration of List_of_inputsother declarations|initial 语句tableList of table entriesendtableendprimitive,六、UDP定义,6.2 组合逻
14、辑UDP表中规定了不同的输入组合和相对应的输出值。6.3 时序电路UDP用1位寄存器描述内部状态,该寄存器的值是时序电路UDP的输出值。初始化语句用于描述触发器的初始状态。电平触发的触发器的描述沿触发的触发器的描述,六、UDP定义,六、UDP定义,六、UDP定义,六、UDP定义,?:0、1、xb:0,1-:输出保持(AB):由A变到B r:上跳变沿,与(01)相同f:下跳变沿,与(10)相同p:(01)、(0 x)、(x1)的任一种n:(10)、(1x)、(x0)的任一种,七、系统任务和系统函数,7.1 显示和写入任务$display$displayb$displayo$displayh$wr
15、ite$writeb$writeo$writeh7.2 探测任务$strobe$strobeb$strobeo$strobeh,七、系统任务和系统函数,7.3 监测任务$monitor$monitorb$monitoro$monitorh7.4 文件输入、输出任务文件的打开、关闭$fopen$fclose从文件中读取数据$readmemb$readmemh,七、系统任务和系统函数,7.4 模拟控制任务$finish;退出模拟器,返回操作系统$stop;模拟器挂起。任何TestBench中的激励码须包含下述形式语句:initialbegin$stop;$finish;end,七、系统任务和系统函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog 硬件 描述 语言 基础
链接地址:https://www.31ppt.com/p-5452070.html