verilog建模方式.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
verilog建模方式

verilog HDL建模方式简单的归纳为三类: 结构化描述方式、数据流描述方式、行为描述方式。 一个模块中往往是将三种建模方式混合起来使用,来描述一个完整的功能。 结构化的建模方式 是通过对电路的层次和组成结构进行描述来建模,即通过对器件的调用(HDL概念称为例化),并使用线网来连接各器件来描述一个模块的结构。 这里的器件包括Verilog HDL的内置门如与门and,异或门xor等,也可以是用户自定义的一个模块,还可以是FPGA厂商的提供的一个基本逻辑单元或者宏结构化的描述方式反映了一个设计的层次结构。 module FA_struct (A, B, Cin, Sum, Cout); input A; input B; input Cin; output Sum; output Cout; wire S1, T1, T2, T3; // -- statements -- // xor x1 (S1, A, B); xor x2 (Sum, S1, Cin); and A1 (T1, A, B ); and A2 (T2, B, Cin); and A3 (T3, A, Cin); or O1 (Cout, T1, T2, T3 ); endmodule 该实例显示了一个全加器由两个异或门、三个与门、一个或门构成。S1、T1、T2、T3则是门与门之间的连线。代码显示了用纯结构的建模方式,其中xor 、and、or 是Verilog HDL 内置的门器件。以 xor x1 (S1, A, B) 该例化语句为例:xor 表明调用一个内置的异或门,器件名称xor ,代码实例化名x1(类似原理图输入方式)。括号内的S1,A,B 表明该器件管脚的实际连接线(信号)的名称,其中 A、B是输入,S1是输出。 数据流的建模方式就是通过对数据流在设计中的具体行为的描述来建模。最基本的机制就是用连续赋值语句。在连续赋值语句中,某个值被赋给某个线网变量(信号)语法如:assign #2 A = B; 在数据流描述方式中,还必须借助于HDL提供的一些运算符。如算术运算符关系运算符逻辑运算符按位逻辑运算符条件运算符以及连接运算符。通过将这些运算符嵌入到连续赋值语句中,可以形成比较复杂的连续赋值语句,用来描述一些较复杂的线网变量的产生过程(即线网变量的行为)。 `timescale 1ns/100ps module FA_flow(A,B,Cin,Sum,Cout) input A,B,Cin; output Sum, Cout; wire S1,T1,T2,T3; assign #2 S1 = A ^ B; assign #2 Sum = S1 ^ Cin; assign #2 T1 = A B; assign #2 T2 = B Cin; assign #2 T3 = A Cin ; assign #2 Cout = T1|T2|T3; endmodule module内的各个assign 语句,是并行执行的,即各语句的执行与语句在module内出现的先后顺序无关。当assign语句右边表达式中的变量发生变化时,表达式的值会重新计算,并将结果赋值给左边的线网变量。如果赋值语句使用了时延,那么在等待时延结束后再将表达式的值赋给左边的线网变量。上例中每个assign语句都加了2个时间单位的时延,若右边表达式的值发生变化,assign语句左边的变量会在2个时间单位后获得右边表达式的新值。即,当信号A发生变化后,S1、T1、T3 也会跟着变化(A变化的2个时间单位后),S1的变化又会导致Sum的变化(A变化的4个时间单位后)。 数据流描述方式,相对行为描述方式而言,描述的都是比较简单的信号,不用类似于高级语言的高级语句(如if else,case等)就可以很容易的将信号的行为描述出来。而且通过数据流描述方式描述的电路,我们可以很容易的看出它的电路组成,如通过几个与门或者几个异或门,不需要经过很复杂的分析就可得知。对于行为描述方式,由于嵌入了大量的高级语句,我们很容易理解电路的行为,却不容易一下子看出电路的结构来。 行为描述方式是指通过对信号的行为进行描述来建模。在表示方面,类似数据流建模方式,但一般是把用initial 块语句或always 块语句描述的归为行为建模方式。行为描述方式中,我们不关心电路使用到哪些基本逻辑单元(如逻辑门、厂商的基本逻辑单元LUT等),也不关心这些基本逻辑单元最终是怎么连起来的,只关心电路具有什么样的功能。为了达到这个目的,行为描述建模方式中使用了大量的类似C语言的高级语句,如if else、case、for、while等

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档