Verilog的模块基本结构?在建立系统模型时,通常采用什么描述法?
Verilog的模块基本结构?
在 Verilog 中,模块是实现电路的基本单元,一个模块可以包含多个输入、输出和中间逻辑单元,以实现特定的功能逻辑。以下是 Verilog 模块的基本结构:
```
module module_name (input input_1, input input_2, ..., input input_n,
output output_1, output output_2, ..., output output_n);
// 模块内部的逻辑代码
// 可以使用连续赋值、always 块等语句来建立逻辑单元
endmodule
```
在上面的代码段中,`module_name` 是模块的名称,`input_1, input_2, ..., input_n` 表示模块的输入端口,`output_1, output_2, ..., output_n` 表示模块的输出端口。接着,在 `endmodule` 语句之前,可以编写逻辑代码来描述模块的具体功能和实现。
在模块的内部,可以使用多种语句来实现逻辑,并连接输入和输出端口。例如:
```
assign output_1 = input_1 & input_2; // 使用逻辑门建立输出单元
always @(posedge clk) begin // 使用时钟触发建立输出单元
output_2 <= input_1 - input_2;
end
```
总之,Verilog 模块的基本结构包括模块名称、输入输出端口和内部逻辑代码。了解 Verilog 模块结构并熟练使用相应的语言特性是进行电路设计和 Verilog 开发的重要基础。
Reserv1、verilog模块组成
2、要点总结
1、verilog模块组成
Verilog描述电路时的基本单元是模块,一个模块主要由两部分组成,包括:端口+逻辑功能
端口:
端口部分对该模块的输入输出接口进行描述,侧重于模块外部接口;
逻辑功能:
逻辑功能部分对模块的具体功能进行描述,反映了模块输入如何影响输出;
2、如何产生功能逻辑:
功能逻辑的产生通过三种描述来产生:assign连续赋值+模块调用+always过程块
assign连续赋值:
assign连续赋值可以独立存在,描述wire连接,输入改变输出立即改变。
模块调用:
模块调用包括元件库的调用以及已设计模块的调用;
always过程块:
连续赋值必须在always块中使用;
3、一些细节
并行性:
Verilog描述的是一种电路,因此并行性是其基本特点:因此Verilog模块中的过程块(initial/always)、模块调用、assign赋值间是并行的
语法相关:
连续赋值语句不能独立于always块存在;
能独立存在的只有assign赋值,以及模块调用;
在建立系统模型时,通常采用什么描述法?
在建立系统模型时,通常采用的有结构化建模方法、信息工程建模方法和面向对象建模方法。结构化建模方法以过程为中心,适用于分析一个现有的系统以及定义新系统的业务需求,其创建的模型为数据流图(DFD),主要适用于流程较为稳定的系统;
信息工程建模方法以数据为中心,但过程敏感,强调在分析和研究过程需求之前,首先研究和分析数据需求,其创建的模型为实体联系图(ERD),主要用于数据建模;
面向对象建模方法将数据和过程集成到对象中,创建的模型为对象模型,通过统一建模语言(UML)描述,定义了几种不同类型的模型图,以对象的形式共建一个信息系统或应用系统。
verilog hdl是一种用于数字逻辑电路设计的语言。用verilog hdl描述的电路设计就是该电路的verilog hdl模型。
verilog hdl既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的verilog hdl模型。
verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:
系统级(system):用高级语言结构实现设计模块的外部性能的模型。
算法级(algorithm):用高级语言结构实现设计算法的模型。
rtl级(register transfer level):描述数据在寄存器之间流动和如何处理这些数据的模型。
门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。
开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。 一个复杂电路系统的完整verilog hdl模型是由若干个verilog hdl模块构成的,每一个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。
利用verilog hdl语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。 verilog hdl行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和rtl级的模型设计。
这种行为描述语言具有以下功能:
· 可描述顺序执行或并行执行的程序结构。
· 用延迟表达式或事件表达式来明确地控制过程的启动时间。
· 通过命名的事件来触发其它过程里的激活行为或停止行为。
· 提供了条件、if-else、case、循环程序结构。
· 提供了可带参数且非零延续时间的任务(task)程序结构。
· 提供了可定义新的操作符的函数结构(function)。
· 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。 · verilog hdl语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。因其结构化的特点又使它具有以下功能:
- 提供了完整的一套组合型原语(primitive); - 提供了双向通路和电阻器件的原语; - 可建立mos器件的电荷分享和电荷衰减动态模型。 verilog hdl的构造性语句可以精确地建立信号的模型。
这是因为在verilog hdl中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。
信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。
verilog hdl作为一种高级的硬件描述编程语言,有着类似c语言的风格。其中有许多语句如:if语句、case语句等和c语言中的对应语句十分相似。如果读者已经掌握c语言编程的基础,那么学习verilog hdl并不困难,我们只要对verilog hdl某些语句的特殊方面着重理解,并加强上机练习就能很好地掌握它,利用它的强大功能来设计复杂的数字逻辑电路。下面我们将对verilog hdl中的基本语法逐一加以介绍。
留言与评论(共有 0 条评论) |