欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Verilog硬件描述语言基础.ppt

    • 资源ID:5452070       资源大小:438.50KB        全文页数:96页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Verilog硬件描述语言基础.ppt

    Verilog硬件描述语言基础,简介,HDLHardware Description Language,简介,发展概况Verilog:1983年Gateway Design Automation为其模拟器开发的硬件建模语言;专用、用于模拟、仿真1990 OVI(Open Verilog International)1995 成为IEEE标准Std1364-1995可用于模拟、仿真、综合的硬件建模,简介,Verilog 的特征支持多级建模方式算法、行为级建模寄存器传输(RTL)级建模门级建模开关级建模,简介,支持多种建模方式行为功能建模方式结构建模方式数据流建模方式,简介,层次描述,在描述中显式进行时序建模提供了强大的硬件建模能力,内嵌的任务和函数类C语言,易学已成为业界标准可通过PLI与C接口提供原语描述能力,简介,EDA工具对Verilog的支持良好Simulation ToolsVerilogXL:业界的黄金模拟器VCS(ViewLogic)NCVerilogNC_Sim(兼容Verilog、VHDL混合结构的描述形式)Synthesis ToolsSynopsys DesignCompilerVeriBest、Ambit、RTLCompilerMagmaEmulation ToolsQuickTurn、PalladiumModelSource、VstationArms、Motorola,简介,混合建模能力,二、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 statementsendmodule,二、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 declarations;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分别表示二进制数、八进制数、十进制数、十六进制数用数字表示数据宽度3b101表示3位二进制数1018hdf表示8位16进制数df实型字符串型,三、Verilog语言要素,2.3信号类型线网类型寄存器类型,三、Verilog语言要素,线网类型wiretriworwandtriortriandtriregtri1tri0supply0supply1,三、Verilog语言要素,wand:线与,三、Verilog语言要素,寄存器类型reg 并不一定代表设计中实际的寄存器reg数据类型说明时要注意数据长度问题integer数据类型说明时要注意数据长度问题integer数据默认长度为64位,三、Verilog语言要素,存储器说明及操作说明方式: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内容如下: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(敏感信号表)描述体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(表达式)Procedure_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 循环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 declarationsprocedural_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;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 组合逻辑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$write$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,七、系统任务和系统函数,7.5 值转储(VCD)任务$dumpfile(file_name):指定VCD文件名$dumpvars(level,module_name);$dumpall;$dumplimit(number);$dumpon;$dumpoff;,八、与模拟有关的论题,8.1 信号驱动强度,八、与模拟有关的论题,8.2 竞争问题出现竞争的原因:Nonblocking assignment with nonedelay;Concurrent always statements;Signals are assigned in multiple always statements or in multiple nonblocking assignments.,八、与模拟有关的论题,8.3 如何避免竞争,HDL Coding Style,How to write a good verilog code,HDL Coding Style,ObjectiveReadableModifiableReuseableOptimal Result in SynthesisFast Simulation保证综合前后逻辑模拟结果的一致性,HDL Coding Style,Basic Coding PracticesCoding for PortabilityGuidelines for Clocks and Reset/SetCoding for SynthesisHow to Partition a DesignDesigning with MemoriesCoding Profiling,Overview of the Coding Guidelines,Simple structureBasic type(VHDL only)Simple Clocking SchemeConsistent coding style,consistent naming conventions,consistent structure for process and state machinesRegular partitioning schema,all module outputs registered and each module roughly the same sizeEasy to read,modify,reuseableUsage of parameters,Basic Coding Practices,尽可能多使用function描述、少用Task描述尽量少用循环结构注意变量、信号、模块、块命名的协调注意端口描述按一定次序、端口连接的方式,Basic Coding Practices,命名规则常数名字大写且有确定意义信号名、变量名、端口名小写参数名大写时钟名以clk、clock开头低电平有效信号名为:信号名_nrst、reset/set为复/置为信号名模块名应有意义提高可读性不使用保留字,Basic Coding Practices,模块端口描述及其引用时的连接建议模块端口描述按次序进行:输入信号输出信号clocks clocksresetsresetsenablesenablesother control signalsother control signalsdata/address signalsdata描述大的模块连接结构时,采用端口名、信号名相对应的连接方式,提高可读性和可修改性.端口名(信号名),Coding for Portability,ObjectiveTechnology-independentCompatible with various simulation toolsCompatible with various synthesis toolsEasily translated from Verilog to VHDLEasily combined with C,Coding for Portability,Dont use hard-coded numeric valusa poor coding style:wire 7:0my_in_bus;wire 7:0 my_out_bus;建议采用:parameterBUS_SIZE=8 wire BUS_SIZE-1:0my_in_bus;wire BUS_SIZE-1:0 my_out_bus;Use technology-independent libraries描述尽量避免与综合、模拟工具相关,Guidelines for Clocks and Resets,最简单的设计单个的全局时钟上/下跳变沿触发器优点简单、易懂、易分析,Guidelines for Clocks and Resets,Avoid Mixed Clock EdgesDifficulty in timing analysis(the duty cycle is a critical issue in timing analysis,in addition to the clock frequency itself);Difficulty in scan_based test;Difficulty to maintain a design.,Guidelines for Clocks and Resets,Avoid Use Gated Clock使用内部产生时钟要特别注意:设计的可测性受到严重影响(扫描测试难度大);应将内部产生时钟模块描述放在设计描述的领层;绝对禁止将内部产生时钟模块描述作为宏单元的子模块。,Guidelines for Clocks and Resets,Guidelines for Clocks and Resets,Make sure your design are controlled only by a simple reset/set signals;避免条件置复/位;时序逻辑器件的置复/位不应放在initial描述块中(可综合性、保证综合前和综合后的模拟结果相同),Coding for Synthesis,ObjectivePerformance Testability Synthesis Simplification and Timing Analysis 保证综合前、后的逻辑模拟结果的一致,Coding for Synthesis,时序元件问题;always(敏感信号/变量表)完整性问题;组合电路的反馈问题;Blocking/Nonblocking赋值语句的使用问题;ifelse/case描述的选择;FSM的描述,Coding for Synthesis,1 时序元件问题:避免不必要的Latch;触发器的初始赋值(reset/set)不应在initial描述块内定义,而应该在其功能描述中加以定义。组合电路避免出现反馈回路,Coding for Synthesis,避免不必要的Latch:在组合逻辑描述中,保证:所有的ifelse及其嵌套结构、case、casex、casez结构是满的描述变量、信号的赋值在每一个分支中都应有明确的指定;ifelse及其嵌套结构本身是满的;case、casex、casez必须包含default分支;,Coding for Synthesis,Coding for Synthesis,2(敏感信号/变量表)问题敏感信号/变量表必须完整,以保证综合前、后的模拟结果一致,但不相关的信号的加入则会降低模拟速度。对组合块,每一个出现在赋值语句右边且没有在块内被预先赋值的信号应列入表中;对时序块,1)时钟控制信号必须出现在敏感表中;2)若为异步置/复位,则相应的置/复位信号必须列入敏感表。,Coding for Synthesis,3 Blocking and NonBlocking Assignments Blocking(阻塞)赋值语句顺序执行 Nonblocking(非阻塞)赋值语句并发执行对于组合逻辑块描述,建议采用阻塞赋值语句;对于时序块描述,建议采用非阻塞赋值语句。,Coding for Synthesis,Coding for Synthesis,Coding for Synthesis,4 ifelse 及其嵌套结构与case语句 尽量少用嵌套的ifelse结构;级联的二选一开关采用case、casex、casez结构 多路选择开关,Coding for Synthesis,Coding for Synthesis,4 FSM描述Mealy机NS=f(PS,INPUT);OUTPUT=h(PS,INPUT);posedge Clk:PS=NS;,Coding for Synthesis,描述方式:组合块:always(INPUT or PS)begin NS=f(PS,INPUT);OUTPUT=h(PS,INPUT);end时序块:,Partitioning for Synthesis,Objective Better Synthesis Results Faster Compile Runtimes Ability to Use Simple Strategy to meet Timing Constraints Optimal Design,Partitioning for Synthesis,GuidelinesRegister all output signals of the module Separate modules that have different design goals Complete combinational logic paths in a single module,and specially avoid glue logic Considering resource sharing Separate asychronous logic from synchronous logic Separate blocks controlled by different clocksSeparate memory from random logic,Partitioning for Synthesis,Register all output signals of the module,Partitioning for Synthesis,Separate modules that have different design goals,Partitioning for Synthesis,combinational logic paths in a single module,Partitioning for Synthesis,Partitioning for Synthesis,Partitioning for Synthesis,FSM PartitionObjective:High performanceMethod:Cascade partitionMaster-Slave Partition,Partitioning for Synthesis,Partitioning for Synthesis,Partitioning for Synthesis,

    注意事项

    本文(Verilog硬件描述语言基础.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开