欢迎来到天天文库
浏览记录
ID:40569646
大小:106.50 KB
页数:9页
时间:2019-08-04
《veilog数字电路__笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VerilogHDL的基本语法■VerilogHDL既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的VerilogHDL模型。■抽象的级别和它们对应的模型类型共有以下五种:•系统级(system):用高级语言结构实现设计模块的外部性能的模型。•算法级(algorithm):用高级语言结构实现设计算法的模型。•RTL级(RegisterTransferLevel):描述数据在寄存器之间流动和如何处理这些数据的模型。•门
2、级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。•开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。■其语法结构非常适合于算法级和RTL级的模型设计。这种行为描述语言具有以下功能:•可描述顺序执行或并行执行的程序结构。•用延迟表达式或事件表达式来明确地控制过程的启动时间。•通过命名的事件来触发其它过程里的激活行为或停止行为。•提供了条件、if-else、case、循环程序结构。•提供了可带参数且非零延续时间的任务(task)程序结构。•提供了
3、可定义新的操作符的函数结构(function)。•提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。•VerilogHDL语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。因其结构化的特点又使它具有以下功能:−提供了完整的一套组合型原语(primitive);−提供了双向通路和电阻器件的原语;−可建立MOS器件的电荷分享和电荷衰减动态模型。VerilogHDL的构造性语句可以精确地建立信号的模型。这是因为在VerilogHDL中,提供了延迟和输出强度的原语来建立精确程度很高的信号
4、模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。■模块的结构Verilog的基本设计单元是“模块”(block)。一个模块是由两部分组成的,一部分描述接口,另一部分描述逻辑功能,即定义输入是如何影响输出的程序模块描述了电路图符号所实现的逻辑功能。上面的Verilog设计中,模块中的第二、第三行说明接口的信号流向,第四、第五行说明了模块的逻辑功能。以上就是设计一个简单的Verilog程序模块所需的全部内容。★每个Verilog程序包括四个主要部分:端口定义、I/O
5、说明、内部信号声明、功能定义。★模块的端口定义:模块的端口声明了模块的输入输出口。其格式如下:module模块名(口1,口2,口3,口4,………);模块内容模块的内容包括I/O说明、内部信号声明、功能定义。?I/O说明的格式如下:输入口:input端口名1,端口名2,………,端口名i;//(共有i个输入口)输出口:output端口名1,端口名2,………,端口名j;//(共有j个输出口)I/O说明也可以写在端口声明语句里。其格式如下:modulemodule_name(inputport1,inp
6、utport2,…outputport1,outputport2…);●内部信号说明:在模块内用到的和与端口有关的wire和reg变量的声明。如:reg[width-1:0]R变量1,R变量2。。。。;wire[width-1:0]W变量1,W变量2。。。。;●功能定义:模块中最重要的部分是逻辑功能定义部分。有三种方法可在模块中产生逻辑。1).用“assign”声明语句如:assigna=b&c;这种方法的句法很简单,只需写一个“assign”,后面再加一个方程式即可。例子中的方程式描述了一个有
7、两个输入的与门。2).用实例元件如:andand_inst(q,a,b);采用实例元件的方法象在电路图输入方式下,调入库元件一样。键入元件的名字和相连的引脚即可,表示在设计中用到一个跟与门(and)一样的名为and_inst的与门,其输入端为a,b,输出为q。要求每个实例元件的名字必须是唯一的,以避免与其他调用与门(and)的实例混淆。3).用“always”块如:always@(posedgeclkorposedgeclr)beginif(clr)q<=0;elseif(en)q<=d;end
8、采用“assign”语句是描述组合逻辑最常用的方法之一。而“always”块既可用于描述组合逻辑也可描述时序逻辑。上面的例子用“always”块生成了一个带有异步清除端的D触发器。“always”块可用很多种描述手段来表达逻辑,例如上例中就用了if...else语句来表达逻辑关系。如按一定的风格来编写“always”块,可以通过综合工具把源代码自动综合成用门级结构表示的组合或时序逻辑电路。注意:如果用Verilog模块实现一定的功能,首先应该清楚哪些是同时发生的,哪些是顺序发生的。上面三个例子分
此文档下载收益归作者所有