数字集成电笔路设计.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文档。上传文档
查看更多
数字集成电笔路设计

数字集成电路设计 EDA软件工具 逻辑综合工具 仿真工具 Verilog HDL硬件描述语言 Verilog HDL程序结构 Verilog HDL程序有模块构成,模块的内容都是嵌在module和endmodule两个关键字之间,每个模块式实现特定的功能,模块之间可以进行层次的嵌套。 Verilog HDL程序模块包括模块名、输入输出端口说明、内部信号说明、逻辑功能定义等几部分。 Verilog HDL数据类型 ⅶ. 移位运算符 Verilog HDL中包括两种移位算符: 左移 右移 移位运算符用法如下: A n //将操作数A左移n位 B n //将操作数B右移n位 移位运算时,移出的空位用“0”来填充。 ⅷ. 条件算符 条件运算符为: ? : 条件运算符是一个三目运算符,对三个操作数进行运算,其定义与C语言是相同的,方法如下: 信号 = 条件 ? 表达式1:表达式2; ⅸ. 位拼接运算符 表达式为:{} 位拼接运算符为Verilog中一个特殊的运算符,它可以将两个或多个信号的某些位拼接起来组成一个新的数据。例如: wire[5:0] cancat; input[3:0] ina;inb; assign cancat = {ina,inb[1:0]}; 表示将ina和inb的低两位拼接后赋值给cancat,其中ina[3]作为cancat的最高位,inb[0]作为其最低位。 ⅹ. 算符的优先级 下表列出了各运算符的优先级。为避免出错且增加程序的易读性,在书写过程中可用“()”来控制运算的优先级。 低优先级 ?: || | ~| ^ ^~ ~ == != === !== = = + - * / % () 高优先级 ! ~ 优先级别 运算符 结构说明语句 在Verilog HDL中包括以下4种结构说明语句: initial语句;always语句;task语句;function语句。 在一个模块中,使用initial和always块语句的次数是不受限制,initial说明可用于模拟的初始化,仅执行一次;always则不断执行。Task和function语句可以在程序中的一处或多处调用。 ⅰ. initial语句 initial语句格式如下: initial begin 语句1; 语句2; …… end initial语句不带触发条件,initial过程中的块语句沿时间轴只执行一次initial语句通常用于仿真模拟块中对激励向量的描述,或用于给寄存器变量赋初值,它是面向模拟仿真的过程语句,通常不能被逻辑综合工具所支持。 ⅱ. always语句 always块语句是Verilog HDL语言中经常用到的语句。always语句在程序执行时将不断的被执行。其格式如下: always @(敏感信号表达式) begin 语句1; 语句2; …… end 敏感信号表达式申明了触发控制或时序控制信号,可以是一个或一组信号若多个信号时,它们之间用“or”关键字连接。可以是电平敏感信号,也可以是一个边沿敏感信号(使用posedge—上升沿和negedge—下降沿关键字)。当敏感信号列表中任何一个信号发生改变时,块中的内容就会执行一次。 ⅲ. task语句 task语句的定义格式如下: task任务名 端口及数据类型声明语句; 语句; endtask 例如: task my_task ; // 任务申明 input a,b; output c; assign c = a b; endtask 任务调用:my_task(in1,in2,out); 任务调用变量和任务定义时端口说明是一一对应得。当任务启动时in1和in2的值赋给a和b。任务完完成后,输出又通过c赋值给了out,实现了任务的调用。 ⅳ. function语句 函数的目的是返回一个用于表达式的值。其定义结构如下: function返回值位宽或类型说明函数名; 端口申明; 局部变量定义; 其他语句; endfunction 返回值位宽或类型说明是一个可选项,如果缺省,则返回值为一位寄存器类型的数据。值得注意的是函数体本身是并发执行的,而函数体内的语句是顺序执行的。 * * FPGA结构与设计流程 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它

文档评论(0)

134****9291 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档