第七讲Verilog可综合设计与仿真.pptVIP

  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可综合设计与仿真 内容: 逻辑综合概念 逻辑综合流程和工具 Verilog可综合语句 RTL级可综合设计 常用可综合模块设计实例 基于同步状态机的设计 存储器建模 仿真平台设计 仿真激励信号产生 功能仿真实例 Verilog HDL 的设计流程 逻辑综合概念 逻辑综合:将HDL模块的行为描述转换成门级电路,并优化电路结构。 逻辑综合流程和工具 逻辑综合过程 逻辑综合分为两个主要阶段。第一阶段是工艺无关阶段,设计的处理不考虑最后的实现工艺。在此阶段进行组合逻辑的主要优化工作。第二阶段是工艺映射阶段,将设计转换成与工艺库内元件相匹配的形式。 工艺库与设计约束 工艺库(标准单元库):是由器件制造公司提供的库单元集合。库单元可以是基本逻辑门或宏单元,用verilog或其它语言建模,描述库单元的特性包括:单元的功能、时序、功耗和面积。 设计约束:通常包含如下内容。 逻辑综合实例 相等比较器: module compare(f, a, b); input [3:0] a,b; output f; reg f; always @(a or b) if(a == b) f = 1’b1; else f = 1’b0; endmodule 逻辑综合实例 Verilog可综合语句 目前成熟的逻辑综合工具都支持RTL级设计的综合,行为级综合只能在特定条件下进行,处于研究中。逻辑综合工具并不能处理随意编写的verilog描述,下表列出综合工具通常能接受的verilog描述: 不支持综合的Verilog语句  在数字逻辑系统的设计中,从电路结构来看, 基本上可分为组合逻辑电路和时序逻辑电路两大类。 1. 组合逻辑电路 组合逻辑电路的输出只与当时的输入信号有关, 而与电路过去的状态无关, 也即它的输出完全由输入信号和输出函数决定。 在手工设计电路时期,组合逻辑主要设计优化工具是卡若图,在目前EDA时期则是综合工具软件;设计者只需正确描述电路功能,具体电路的优化由综合工具完成。 最常用的组合逻辑电路有编码器、 译码器、 数据选择器、 加法器和比较器等 。 2/4译码器的功能描述1 module decode2_4(d, s); input [1:0] s; output [3:0] d; reg[3:0] d; always @(s) //电平敏感变量表 case(s) 2’b00: d=4’b0001; 2’b01: d=4’b0010; 2’b10: d=4’b0100; 2’b11: d=4’b1000; endcase endmodule 2/4译码器的功能描述2 module decode2_4(d, s); input [1:0] s; output [3:0] d; reg[3:0] d; always @(s) //电平敏感变量表 if(s==2’b00) //if语句实现有优先级,条件要完备 d=4’b0001; else if (s== 2’b01) d=4’b0010; else if (s== 2’b10) d=4’b0100; else d=4’b1000; endmodule 相等比较器的功能描述 module compare(f, a, b); input [3:0] a,b; output f; reg f; always @(a or b) //电平敏感变量表 if(a == b) //其它关系的比较器? f = 1’b1; else f = 1’b0; endmodule 多路复用器的功能描述 module mux4_1(F,P, S); input [1:0] S; input [3:0] P; output F; assign F = ( S==2’b00 )? P[0]: ( S==2’b01 )? P[1]: ( S==2’b10 )? P[2]:P[3]; endmodule 多路输出选择器的功能描述 module decode2_4(p, s, x); input [1:0] s; input x; output [3:0] p; reg[3:0] p; always @(s or x) //电平敏感变量表 case(s) 2’b00: p={3’b

文档评论(0)

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

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

1亿VIP精品文档

相关文档