- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《EDA技术与Verilog设计》第7章:Verilog设计的层次与风格
第7章 Verilog设计的层次与风格 7.1 Verilog设计的层次 结构(Structural)描述 行为(Behavioural)描述 数据流(Data Flow)描述 在Verilog程序中可通过如下方式描述电路的结构 ◆ 调用Verilog内置门元件(门级结构描述) ◆ 调用开关级元件(晶体管级结构描述) ◆ 用户自定义元件UDP(也在门级) Verilog的 内置门元件 门元件的调用 调用门元件的格式为: 门元件名字 例化的门名字(端口列表) 其中普通门的端口列表按下面的顺序列出: (输出,输入1,输入2,输入3……); 比如: and a1(out,in1,in2,in3); //三输入与门 对于三态门,则按如下顺序列出输入输出端口: (输出,输入,使能控制端); 比如: bufif1 mytri1(out,in,enable); //高电平使能的三态门 门级结构描述的2选1MUX module MUX1(out, a, b, sel); output out; input a, b, sel; not (sel_, sel); and (a1, a, sel_), (a2, b, sel); or (out, a1, a2); endmodule 7.3 行为描述 就是对设计实体的数学模型的描述,其抽象程度远高于结构描述方式。行为描述类似于高级编程语言,当描述一个设计实体的行为时,无需知道具体电路的结构,只需要描述清楚输入与输出信号的行为,而不需要花费更多的精力关注设计功能的门级实现。 行为描述的2选1MUX 7.4 数据流描述 数据流描述方式主要使用持续赋值语句,多用于描述组合逻辑电路,其格式为: assign LHS_net=RHS_expression; 右边表达式中的操作数无论何时发生变化,都会引起表达式值的重新计算, 并将重新计算后的值赋予左边表达式的net型变量。 数据流描述的2选1MUX module MUX3(out, a, b, sel); output out; input a, b, sel; assign out = sel ? b : a; endmodule 7.5 不同描述风格的设计 对设计者而言,采用的描述级别越高,设计越容易;对综合器而言,行为级的描述为综合器的优化提供了更大的空间,较之门级结构描述更能发挥综合器的性能,所以在电路设计中,除非一些关键路径的设计采用门级结构描述外,一般更多地采用行为建模方式。 结构描述的一位全加器 module full_add1(a, b, cin, sum, cout); input a, b, cin; output sum, cout; wire s1,m1, m2, m3; and (m1, a, b), (m2, b, cin), (m3, a, cin); xor (s1, a, b), (sum, s1, cin); or (cout, m1, m2, m3); endmodule 数据流描述的1位全加器 module full_add2(a, b, cin, sum, cout); input a, b, cin; output sum, cout; assign sum = a ^ b ^ cin; assign cout = (a b ) | (b cin ) | (cin a ); endmodule 行为描述的1位全加器 module full_add4(a,b,cin,sum,cout); input a,b,cin; output sum,cout; reg sum,cout,m1,m2,m3; always @(a or b or cin) begin m1=ab; m2=bcin; m3=acin; sum=(a^b)^cin; cout=(m1|m2)|m3; end endmodule 结构描述的4位级连全加器 `include full_add1.v module add4_1(sum, cout, a, b, cin); output [3:0] sum; output cout; input [3:0] a, b; input cin; ? full_add1 f0 (a[0],b[0],cin,sum[0],cin1); full_add1 f1 (a[1],b[1],cin1,sum[1], cin2); full_add1 f2 (a[2],b[2],cin2,sum[2], cin3); full_add1 f3 (a[3],b[3],
您可能关注的文档
- pin调研报告new.ppt
- PRESSURE82800.ppt
- UG编程加工学习资料30013.ppt
- Unit 1 Mechanical Engineering.ppt
- unit7 period1说课.ppt
- vip.ppt
- 《大学信息技术概论》-第4章 计算机应用软件new.ppt
- 《安全法有关问题探讨》课件.ppt
- 《实验测量机械效率》new.ppt
- 《微积分》第二篇第一章讲义_不定积分.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)