大规模可编程器件技术讲解.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大规模可编程器件技术讲解

PLD是厂家作为一种通用型器件生产的半定制电路,用户利用软、硬件开发工具对器件进行设计和编程,通过更改器件内部逻辑单元和连接结构,从而实现所需要的逻辑功能。 PLD的基本原理与结构 任何组合逻辑均可化为“与或”表达式,从而用“与门-或门”的电路来实现 任何时序电路可由组合电路加上存储元件(触发器)构成 从原理上说“与或”阵列加上寄存器的结构就可以实现任何的数字逻辑电路 PLD器件采用与或阵列加上可灵活配置的互连线实现 “与阵列”和“或阵列”为主体,实现各种逻辑函数和逻辑功能 输入缓冲:增强输入信号的驱动能力;产生输入信号的原变量和反变量; 输出缓冲:对输出信号进行处理,能输出组合逻辑信号和时序逻辑信号。输出缓冲一般含有三态门、寄存器单元。 简单PLD(SPLD)也称低密度PLD(LDPLD) 结构简单,成本低、速度高、设计简便,但其规模较小(通常每片只有数百门),难于实现复杂的逻辑。 按编程元件和编程工艺分类 (1)熔丝(Fuse) (2)反熔丝(Antifuse)编程元件 (3)紫外线擦除、电可编程,如EPROM。 (4)电擦除、电可编程方式,(EEPROM、快闪存储器(Flash Memory)),如多数CPLD (5)静态存储器(SRAM)结构,如多数FPGA CPLD是阵列型高密度可编程控制器,其基本结构形式和PAL、GAL相似,都由可编程的与阵列、固定的或阵列和逻辑宏单元组成,但集成规模都比PAL和GAL大得多。 基本由三部分组成: 宏功能模块 I/O控制块 连线阵列 宏功能模块,也称宏单元 每个宏单元由以下几个功能块组成: 逻辑阵列(可编程的与阵列、固定的或阵列) 可编程寄存器 数据选择器 异或门、三态门等 FPGA的原理与结构 密度高、编程速度快、设计灵活和可再配置等 功能由逻辑结构的配置数据决定; 工作时配置数据存放在片内的SRAM上; 工作前需要从芯片外部加载配置数据; 配置数据存储在片外的EPROM、E2PROM等设备中; 可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程。 3-8译码器 数据选择器 if-else语句实现 数据选择器 case语句实现 8位移位寄存器 设计的可综合性 可综合是指所设计的指令和代码能转化为具体的电路网表结构 对CPLD/FPGA,综合就是将Verilog HDL语言描述的行为级或数据流电路模型转化为RTL级功能块或门级电路网表。 RTL级综合后得到由功能模块(触发器、算术逻辑单元、数据选择器等)构成的电路。 可综合设计的注意事项 不使用初始化语句;不使用带有延时的描述 尽量采用同步方式设计电路 一般不采用调用门级元件的设计方法,建议采用行为语句设计 用always过程块描述组合逻辑,应在敏感信号列表中列出出现的所有的输入信号 所有的内部寄存器都应该能复位,使用全局复位 Verilog HDL(Verilog Hardware Discription Language) 一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。 可以对硬件的并发执行过程进行建模 模块是Verilog的基本描述单元,用于描述某个设计的功能或结构及其与其他模块通信的外部端口 概念上可等同一个器件,如通用器件(与门、三态门等)或通用宏单元(计数器、ALU、CPU)等。 模块可被另一个模块调用 一个电路设计可由多个模块组合而成。 加法器 module adder (a, b, cin, cout, sum); input [2:0] a; input [2:0] b; input cin; output cout; output [2:0] sum; assign {cout,sum} = a +b + cin; endmodule 比较器 module compare (equal,a,b); input [1:0] a,b; // declare the input signal ; output equal ; // declare the output signal; assign equal = (a == b) ? 1:0 ; /* if a = b , output 1, otherwise 0;*/ endmodule 模块的结构 模块内容位于module和endmodule两个语句之间 模块包括接口描述部分和逻辑功能描述部分。可与实际器件相类比 每个模块要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述(测试模块例外) 书写格式自由,一行可以写几个语句,一个语句可以分几行写。 除endmodule与局外,每个语句后面需要有分号表示该语句结

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档