资源预览内容
第1页 / 共86页
第2页 / 共86页
第3页 / 共86页
第4页 / 共86页
第5页 / 共86页
第6页 / 共86页
第7页 / 共86页
第8页 / 共86页
第9页 / 共86页
第10页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六讲 数字集成电路设计 与硬件描述语言,http:/www.docin.com/sundae_meng,http:/www.docin.com/sundae_meng,大纲,数字IC设计方法 两种HDL语言 Verilog HDL简介 VHDL简介,http:/www.docin.com/sundae_meng,当前的数字IC设计分可分成以下几个层次: 1. 算法级设计:利用高级语言(如C语言)及其他一些系统分析工具(如MATLAB)对设计从系统的算法级进行描述。算法级不需要包含时序信息。 2. RTL级设计:用信号在寄存器间传输的模式来对设计进行描述。 3. 门级设计:用逻辑门及门级之间的连线对设计进行描述。 4. 开关级设计:用晶体管及其连线来对设计进行描述。,http:/www.docin.com/sundae_meng,数字IC一般采用自顶向下(TOP-DOWN)的设计方法 在系统级(顶层)进行功能的划分和架构设计 在功能级进行仿真、纠错,并用硬件描述语言对功能进行描述 用综合工具将设计转化为具体门级电路网表 物理级可以是FPGA器件或专用集成电路(ASIC) TOP-DOWN 设计思想,门级,功能级,系统级,TOP-DOWN 设计方法,http:/www.docin.com/sundae_meng,电子设计规模越来越大(百万/千万门的量级),复杂度越来越高,只能用高级语言来描述其功能,在设计初期隐藏其具体的细节实现。 可读性强,易修改。 提高逻辑设计的效率,降低设计成本,更重要的是缩短设计周期。 HDL追求对硬件的描述,而将该描述在目标器件上实现则由EDA工具的综合器完成。 受限于目标器件,并不是所有HDL语句均可被综合。,http:/www.docin.com/sundae_meng,VHDL和Verilog HDL是目前世界上流行最广的两种硬件描述语言,都是在20世纪80年代中期开发出来的。均为IEEE标准。 VHDL语法严谨,易于学习;逻辑综合能力强。在欧洲使用较多。 Verilog HDL语法灵活(类似C语言,较难掌握)底层综合出色。美国使用较多。,http:/www.docin.com/sundae_meng,Verilog HDL是一种应用广泛的硬件描述语言,是IC硬件设计人员和EDA工具之间的桥梁。其功能为 编写设计文本(脚本) 建立电子系统行为级的仿真模型并进行仿真 自动综合生成数字逻辑网表(Netlist)及具体电路 生成某工艺条件下具体电路的延时模型并进行时序仿真 仿真验证无误后用于制造ASIC或写入FPGA器件中 常用的Verilog HDL开发软件有 Altera公司的MAX+PLUS II,Quartus II Xilinx公司的Foundation ISE,http:/www.docin.com/sundae_meng,Verilog HDL语言的主要特征,1、语法结构上,与C语言有许多相似之处,并借鉴C语言的多种操作符 2、既包含高级程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体构件 3、通过使用结构级或行为级描述可以在不同的抽象层次上进行设计,http:/www.docin.com/sundae_meng,4、Verilog HDL语言是并发的,即具有在同一时刻执行多任务的能力,因为在实际硬件中许多操作都是在同一时刻发生的。 而计算机编程语言往往是顺序执行的。,5、有时序概念,因为在硬件电路中从输入到输出总是有延迟存在的,http:/www.docin.com/sundae_meng,数字电路可简单归纳为两种要素:连线和器件 Verilog HDL建模-使用硬件语言对数字电路的这两种基本要素进行描述。,http:/www.docin.com/sundae_meng,Verilog HDL的基本结构,八位加法器的Verilog HDL源代码,module adder8 (cout, sum, ina,inb, cin); output 7:0 sum; output cout; input 7:0 ina,inb; input cin; assign cout,sum= ina+inb+cin; endmodule,准备实现的逻辑功能,简单的Verilog HDL的例子,端口列表,逻辑功能描述 -描述内部特性,模块名,http:/www.docin.com/sundae_meng,一.模块的概念,Verilog HDL模块的结构,模块是Verilog HDL语言的基本单元,数字系统用 模块集合的形式来描述 模块描述某个设计的功能、结构和与其它模块通信的外部端口 Verilog HDL中各个模块是并行运行的 模块可以调用其它模块的实体(实例),http:/www.docin.com/sundae_meng,二.模块的结构,module () 端口说明(input,output,inout) 参数定义 /可选 数据类型定义 /wire、reg、task、function 连续赋值语句(assign)/组合逻辑 过程块(always和initial) -行为描述语句 低层模块实例 /调用其它模块 任务和函数 延时说明块 endmodule,http:/www.docin.com/sundae_meng,模块端口(module ports),注意模块的名称DFF,端口列表及说明 模块通过端口与外部通信,端口在模块名字后的括号中列出,端口可以说明为input, output及inout,端口等价于硬件的引脚(pin),http:/www.docin.com/sundae_meng,模块实例化(module instances),module DFF (d, clk, clr, q, qb); endmodule module REG4( d, clk, clr, q, qb); output 3: 0 q, qb; input 3: 0 d; input clk, clr; DFF d0 (d 0, clk, clr, q 0, qb 0); DFF d1 (d 1, clk, clr, q 1, qb 1); DFF d2 (d 2, clk, clr, q 2, qb 2); DFF d3 (d 3, clk, clr, q 3, qb 3); endmodule,REG4有模块DFF的四个实例,http:/www.docin.com/sundae_meng,语言的主要特点,将模块的实例通过端口连接起来构成一个大的系统 每个实例都有自己的名字(d0, d1, d2, d3)。实例名是每个对象唯一的标记,通过这个标记可以查看每个实例的内部。 实例中端口的次序与模块定义的次序相同。 模块实例化与程序调用不同。每个实例都是模块的一个完全的拷贝,相互独立、并行。,模块实例化(module instances):,http:/www.docin.com/sundae_meng,时延,信号在电路中传输会有传播延时,如线延时、器件延时等 assign # 2 B = A; 表示 B信号在2个时间单位后得到A信号的值 所有时延都必须根据时间单位进行定义 定义方式为在文件头添加语句: timescale 1ns /100ps 其中timescale 是Verilog HDL 提供的预编译处理命令,1ns 表示时间单位是1ns,100ps表示时间精度是100ps 根据该命令,编译工具可以认知 #2 为2ns,http:/www.docin.com/sundae_meng,http:/www.docin.com/sundae_meng,空白符和注释,module MUX2_1 (out, a, b, sel); / Port declarations output out; input sel, / control input b, /* data inputs */ a; /* The netlist logic selects input ”a” when sel = 0 and it selects ”b” when sel = 1. */ not (sel_, sel); and (a1, a, sel_), (b1, b, sel); or (out, a1, b1); endmodule,格式自由 一条语句可多行书写;一行可写多个语句。空白(新行、制表符、空格)没有特殊意义。 如input A;input B; 与input A; input B;是一样的。 使用空白符提高可读性Verilog忽略空白符,多行注释,在/* */内,单行注释 到行末结束,http:/www.docin.com/sundae_meng,Verilog采用的四值逻辑系统,0, Low, False, Logic Low, Ground, 1, High, True, Logic High, Power, VDD, X Unknown: Occurs at Logic Which Cannot be Resolved Conflict HiZ, High Impedance, Tri- Stated,http:/www.docin.com/sundae_meng,具体实例,5 O37 5位八进制数(二进制 11111 ) 4 D2 4位十进制数 (二进制0010) 4 B1x_01 4位二进制数 7 Hx 7位x (扩展的x), 即xxxxxxx 4 hZ 4 位z (扩展的z) , 即zzzz 4 d-4 非法:数值不能为负 8 h 2A 在位长和基数之间,以及基数和数值之间允许出现空格 3 b 001 非法: 和基数b 之间不允许出现空格 (2+3) b10 非法:位长不能为表达式,http:/www.docin.com/sundae_meng,字符串(string),格式符,转义符,http:/www.docin.com/sundae_meng,标识符(identifiers),标识符是用户在描述时给对象起的名字 标识符必须以字母(a-z, A-Z)或( _ )开头,后面可以是字母、数字、( $ )或( _ )。 最长可以是1023个字符 标识符区分大小写,sel和SEL是不同的标识符 模块、端口和实例的名字都是标识符 module MUX2_1 (out, a, b, sel); output out; input a, b, sel; not not1 (sel_, sel); and and1 (a1, a, sel_); and and2 (b1, b, sel); or or1 (out, a1, b1); endmodule,Verilog标识符,http:/www.docin.com/sundae_meng,标识符(identifiers),有效标识符举例: shift_reg_a busa_index _bus3 无效标识符举例: 34net / 开头不是字母或“_” a*b_net / 包含了非字母或数字, “$” “_” n238 /包含了非字母或数字, “$” “_” Verilog区分大小写,所有Verilog关键词使用小写字母,http:/www.docin.com/sundae_meng,书写规范建议,A、用有意义的名字如 Sum 、CPU_addr等。 B、用下划线区分词。 C、采用一些前缀或后缀,如时钟采用Clk 前缀:C
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号