- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章_简单的Verilog模块.ppt
第二讲 Verilog语法的基本概念 主要内容 ● Verilog 建模概述 ●模块的基本概念 简单示例 模块特点 模块结构 模块语法 ●三种建模方式 ●模块的测试 ●有关Verilog HDL的几个重要基本概念 2.1 Verilog的建模概述 Verilog HDL是一种用于数字逻辑电路设计的语言: -用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型。 - Verilog HDL 既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种: Verilog的建模级别 1 系统级(system): 用高级语言结构实现设计模块的外部性能的模型. 2 算法级(algorithmic): 用高级语言结构实现设计算法的模型,不包含时序信息。 3 RTL级(Register Transfer Level): 描述数据在寄存器之间流动和如何控制这些数据的模型。 4 门级(gate-level): 描述逻辑门以及逻辑门之间的连接的模型。 5 开关级(switch-level): 描述器件中三极管和储存节点以及它们之间连接的模型。 算法级是高级的建模,一般对特大型设计或有较复杂的算法时使用,特别是通讯方面的一些系统,通过算法级的建模来保证设计的系统性能,在算法级通过后,再把算法级用RTL级进行描述,门级一般对小型设计时使用。开关级一般在版图级进行。 可综合的 Verilog HDL 模型 算法级 ( Algorithm Level) - 部分可综合 寄存器传输级 (Register Transfer Level) - 完全可综合 门级 ( Gate Level) - 完全可综合 开关级(Switch Level) - 用于基本逻辑器件仿真模型的建库 Verilog的功能 1 可描述顺序执行或并行执行的程序结构。 2 用延迟表达式或事件表达式来明确地控制过程的启动时间。 3 通过命名的事件来触发其它过程里的激活行为或停止行为。 4 提供了条件、if-else、case、循环程序结构。 5 提供了可带参数且非零延续时间的任务(task)程序结构。 6 提供了可定义新的操作符的函数结构(function)。 7 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。 8 Verilog HDL语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。 2.2 模块的基本概念 模块(module)是Verilog 的基本描述单位,用于 描述某个设计的功能或结构及与其他模块通信的外 部端口。 模块在概念上可等同一个器件就如我们调用通用 器件(与门、三态门等)或通用宏单元(计数器、 ALU、CPU)等,因此,一个模块可在另一个模块 中调用。 一个电路设计可由多个模块组合而成,因此一个 模块的设计只是一个系统设计中的某个层次设计, 模块设计可采用多种建模方式。 例2.1 二选一多路选择器(RTL级) module muxtwo(out, a, b, sl); input a, b, sl; output out; reg out; always @ (sl or a or b) if(!sl) out = a; else out = b; endmodule 例2.2二选一多路选择器(RTL级) module muxtwo(out, a, b, sl); input a, b, sl; output out; wire nsl,sela,selb; assign nsl=~sl; assign sela=a~nsl; assign selb=b~nsl; assign out=sela|selb; endmodule 例2.3二选一多路选择器(门级) module muxtwo(out, a, b, sl); input a, b, sl; output out; wire nsl,sela,selb; not u1(nsl, sl); and #1 u2(sela, a, nsl); and #1 u3(selb, b, sl); or #1 u4(out, sela, selb); endmodule /*一个名为adder的三位加法器的例子。*/ module adder ( count,sum,a,b,cin ); //模块定义开始 input [2:0] a,b;
您可能关注的文档
最近下载
- 南昌大学1001英语历年考博真题.pdf
- 《电力用磷酸铁锂电池通信电源系统技术规范》.pdf VIP
- 甲苯技术说明MSDS.docx VIP
- 2024义务教育音乐课程标准(2022版)试题及答案.docx
- F 亲爱的此刻我必须离去 Ach Lieb ich muss nun scheiden (Op.21, No.3)钢琴伴奏正谱.pdf
- 《无人机航拍技术》课件—05无人机飞行的法规.pptx VIP
- 2024九江市濂溪区辅警考试真题及答案.docx
- 黑龙江省佳木斯市2025届高三上学期第五次调研考试 地理及答案.pdf VIP
- DB13_T1562-2012人工鱼礁建设技术规范.pdf VIP
- 浪潮倚天超级计算机 NF5288M5 用户手册 V1.0.pdf VIP
文档评论(0)