您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Verilog逻辑仿真(1)
Verilog教程(1)清华大学微电子学研究所2003年9月提纲Verilog概述Verilog程序的基本结构Verilog上机环境及工具Verilog概述Verilog程序的基本结构Verilog上机环境及工具Verilog概述什么是VerilogHDL?VerilogHDL(HardwareDiscriptionLanguage)是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。Verilog在VLSI设计过程中的位置系统描述功能设计逻辑设计电路设计物理设计设计验证芯片制造X=(AB*CD)+(A+D)+(AD+C)数字电路设计者用VerilogHDL来描述自己的设计思想,然后利用EDA工具进行仿真,综合,最终用ASIC或FPGA实现其功能Verilog的历史最初是于1983年由GatewayDesignAutomation公司(后被Cadence收购)为其模拟器产品开发的硬件建模语言1990年,Cadence公司成立OVI(OpenVerilogInternational)组织来负责推广Verilog1995年,IEEE制定了VerilogHDL标准,即IEEEStd1364-1995Verilog与VHDL目前,设计者使用Verilog和VHDL的情况美国:Verilog:60%,VHDL:40%台湾:Verilog:50%,VHDL:50%Verilog与VHDL两者的区别:VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用Verilog侧重于电路级描述,从而更多的为电路级设计人员所采用VerilogHDL与C语言虽然Verilog的某些语法与C语言接近,但存在本质上的区别Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真C语言是一种软件语言,是控制硬件来实现某些功能利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来SystemCandSystemVerilog:面向SOCVerilogHDL的设计流程自顶向下(Top-Down)设计一个系统由总设计师先进行系统描述(Spec),将系统划分为若干模块,编写模块模型(一般为行为级),仿真验证后,再把这些模块分配给下一层的设计师,由他们完成模块的具体设计,而总设计师负责各模块的接口定义VerilogHDL设计的入口和出口VerilogHDL设计的入口系统描述(Spec)VerilogHDL设计的出口功能正确且优化的的Verilog描述文件仿真时序波形VerilogHDL的模型类型五种模型类型:系统级算法级RTL级(寄存器传输级)门级开关级Verilog概述Verilog程序的基本结构Verilog上机环境及工具参考书:复杂数字电路系统的VerilogHDL设计技技术作者:夏宇闻,北京航空航天大学出版社模块(module)模块是Verilog的基本描述单位,用于描述某个设计的功能或结构及其与其它模块通信的外部接口模块中,可以采用下述方式描述一个设计:数据流方式行为方式结构方式上述方式的混合模块简单的例子(数据流方式)moduleHalfAdder(A,B,Sum,Carry);inputA,B;outputSum,Carry;assign#2Sum=A^B;assign#5Carry=A&B;endmodule时延编译器将在仿真时将时延与物理时间相关联时延根据时间单位定义`timescale1ns/100ps前者为时间单位,后者为时间精度assign#2Sum=A^B;数据流描述方式使用连续赋值语句assign[delay]LHS_net=RHS_expression;半加器的例子moduleHalfAdder(A,B,Sum,Carry);inputA,B;outputSum,Carry;assign#2Sum=A^B;assign#5Carry=A&B;endmodule行为描述方式使用过程语句描述:initial语句:只执行一次always语句:循环重复执行行为描述方式半加器的例子:moduleHalfAdder(A,B,Sum,Carry);inputA,B;outputSum,Carry;always@(AorB)beginSum=A^B;Carry=A&B;endendmodule结构化描述方式用Verilog直接描述逻辑图可使用内置门:not,and,or…开关级:nmos,cmos,tran…用户自定义的结构模块实例:其它module单元设计模拟VerilogHDL不仅提供描述设计的能力,还提供对激励、控制、存储响应和设计验证的建模能力一般的系统设计包括系统描述设计模块系统测试模块设计模拟实例`timescale1ns/100ps`includeclu.vmoduletestclu;regClk,Rst,C,Zero;cluclutest(Clk,Rst,C,Zero)initialforkbeginClk=0;Rst=1;C=0;end设计模拟begin#30Rst=0;#190Rst=1;end$shm_open(ly.shm);$shm_probe(AS);begin#300$finish;endjoinalways#5Clk=~Clk;endmodule标识符与C语言类似可以是任意一组字母、数字、$和_的组合,但首字符必须为字母区分大小写有一组保留字(关键词):always,initial等注释两种形式:/*…可以扩展为多行…*///在本行结束编译指令以`(反引号)开始的标识符为编译指令`include`timescale`include用于嵌入内嵌文件的内容`include“../source/Reg.v”编译时这一行由文件“../source/Reg.v”内容所代替`timescale将时间单位与实际时间相关联`timescale1ns/100ps前者为时间单位,后者为时间精度assign#3.56A=B;实际时延应为3.5nsVerilog概述Verilog程序的基本结构Verilog上机环境及工具工作环境硬件:SunUltra1工作站操作系统:SunSolaris几个常用Unix命令ls:列出当前目录下的内容cd:进入其它目录morefilename:在屏幕上显示文件rmfilename:删除文件编辑文件可用TextEditorCadence公司的Verilog编译及仿真软件编译软件Verilog-XL:对verilog源文件进行语法检查和编译命令行模式仿真软件Signalscan:在带有输入激励的verilogw源文件编译后,看其波形,可方便的对程序进行调试窗口模式Verilog-XL启动命令:verilogfilename编译过程中,可看到相关信息,确定文件是否编译通过仿真结束,产生verilog.log文件Signalscan启动命令:signalscan&在verilog仿真文件中有:$shm_open(ly.shm);//产生波形文件$shm_probe(AS);//保存所有的信号波形SiganlscanWaveform窗口DesignBrowser窗口End
本文标题:Verilog逻辑仿真(1)
链接地址:https://www.777doc.com/doc-3375524 .html