资源描述:
《VerilogHDL及Modelsim仿真范益波.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VerilogHDL及Modelsim仿真范益波AcknowledgmentThisslidesisrevisedfrom“VerilogHDL基础语法入门”by夏宇闻OutlineVerilog简介简单的VerilogHDL模块Verilog语法要点Verilog的逻辑值和数据类型存储器及有限状态机建模可综合风格的Verilog什么是verilogVerilog是一种硬件设计语言(HardwareDescriptionLanguage,HDL)主要用于数字逻辑电路设计跟VHDL类似Verilog与C语言的关系VerilogHDL作为一种高级的硬件描述编程语言,有着类
2、似C语言的风格。其中有许多语句如:if语句、case语句等和C语言中的对应语句十分相似。如果读者已经掌握C语言编程的基础,那么学习VerilogHDL并不困难,我们只要对VerilogHDL某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。但是注意:Verilog是硬件设计语言,跟软件设计有本质区别Verilog具有不同的抽象级别系统级(system):用高级语言结构实现设计模块的外部性能的模型。算法级(algorithmic):用高级语言结构实现设计算法的模型。RTL级(RegisterTransferLevel)
3、:描述数据在寄存器之间流动和如何处理这些数据的模型。可综合相对高层的描述门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。模块的抽象及数字电路的基本设计流程技术指标:用文字表示用算法表示用高级行为的Verilog模块表示RTL/功能级:用可综合的Verilog模块表示门级/结构级:用实例引用的Verilog模块表示版图布局/物理级:用几何形状来表示RTLdesign逻辑综合综合前仿真综合后仿真布局布线Verilog的层次性架构一个复杂电路的完整VerilogHDL模型是由若个VerilogHDL模块构成的,每一个模块又可以由若干个子模块构成。利用Ve
4、rilogHDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计。VerilogHDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。OutlineVerilog简介简单的VerilogHDL模块Verilog语法要点Verilog的逻辑值和数据类型存储器及有限状态机建模可综合风格的Verilog举例1例[2.1.1]:moduleadder(count,sum,a,b,cin);input[2:0]a,b;//声明输出信号equalinputcin;//声明输入信号outputcount;o
5、utput[2:0]sum;assign{count,sum}=a+b+cin;endmodule这个例子描述了一个三位的加法器。从例子中可以看出整个VerilogHDL程序是嵌套在module和endmodule声明语句里的。举例2例[2.1.2]:modulecompare(equal,a,b);outputequal;input[1:0]a,b;assignequal=(a==b)?1:0;/*如果两个输入信号相等,输出为1。否则为0*/endmodule这个程序描述了一个比较器.在这个程序中,/*........*/和//.........表示注释部分,注释只
6、是为了方便程序员理解程序,对编译是不起作用的。举例3例[2.1.3]:moduletrist1(out,in,enable);outputout;inputin,enable;mytritri_inst(out,in,enable);endmodulemodulemytri(out,in,enable);outputout;inputin,enable;assignout=enable?In:'bz;endmodule上述程序例子通过另一种方法描述了一个三态门。在这个例子中存在着两个模块:模块trist1调用模块mytri的实例元件。通过这种结构性模块构造可构成特大型
7、模块。简单举例后的小结整个VerilogHDL程序是嵌套在module和endmodule声明语句里的。每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进行行为逻辑描述。VerilogHDL程序是由模块构成的。模块是可以进行层次嵌套的。除了endmodule(及后面会学到的initial,end等)语句外,每个语句和数据定义的最后必须有分号可以用/*.....*/和//...对VerilogHDL程序的任何部分作注释。模块的测试:基本概念被测模块激励和控制信号输出响应和验证测试模块的常见形式modulet;reg…;//被测模块输入/输出变