公司做网站的多吗/怎样做一个网页
PLD:用户根据需要自行设计芯片中特定逻辑电路的器件
可编程逻辑:包括硬件、软件
本章思路:
PLD->FPGA、ISP->编程方法、工具
PLD的基本概念
可编程阵列
所有的PLD都是用可编程阵列组成的
可编程阵列分为:与阵列、或阵列
通过编程实现SOP(与或)形式
与阵列
可编程矩阵的输出连接到与门上,称之为与阵列
为了简化逻辑表示,将与门的两条输入线画为一条,使用斜杠线边的2表示与门输入线为两条
一个N变量的与阵列,列线是2N条
或阵列
与与阵列类似,连接到了或门上
列线是2N条
可编程连接技术
PLD中的可编程连接采用以下几种不同的处理技术:
- 熔丝技术:破坏连接。一次性编程方法
- 反熔丝技术:与熔丝相反,建立连接。一次性编程技术。
- E2PROME^2PROME2PROM技术:使用ECMOSE^CMOSECMOS存储元,可重写。多次编程技术。
- SRAMSRAMSRAM技术:将触发器置为0或1来连接或不连接行列交叉点。上电时必须重写SRAM
PLD的类型
根据容量大小进行分类:
- SPLD(简单可编程逻辑器件),IC引脚:24~28
- CPLD(复杂可编程逻辑器件),IC引脚:44~160
SPLD
分类:
- PROM(一次可编程只读存储器)
- PAL(可编程阵列逻辑)(一次性编程)
- PLA(可编程逻辑阵列)
- GAL(通用阵列逻辑)(多次编程)
// 你看看这讲得是人话吗
CPLD
CPLD是利用可编程的互连总线(PIA)连接起来的多路SPLD
目前流行的可编程逻辑器件有FPGA与ISP
现场可编程门阵列FPGA
基本结构
三个基本元素:
- 逻辑块CLB
- 可编程互连总线
- I/O输入输出块
当CLB较小或较简单的时候,将FPGA的体系结构称为细粒度
当CLB较大或较复杂的时候,将FPGA的体系结构称为粗粒度
可组态逻辑块CLB
一个FPGA的逻辑块CLB包含多个较小的逻辑模块
每一个CLB有多路更小的逻辑模块和本地可编程互连总线组成
它可以被组态实现组合逻辑、时序逻辑或者二者兼而有之
CLB之间由全局可编程互连总线组成
SRAM为基础的FPGA
根据制造技术的不同,FPGA在体系结构上分为可变或不变两种
若基于反熔丝技术,则体系结构不变;若基于SRAM技术,则体系结构可变(断电的时候,所有数据将丢失)
解决断电丢失数据的方法:
- 使用固定配置的存储器插入芯片中存储编程数据(固定配置存储器法)
- 利用具有数据转移功能的外部存储器,使用宿主处理机来控制(宿主处理机法)
在系统可编程ISP
ISP:指用户具有在自己设计的目标系统或线路板上为重构逻辑而对逻辑器件及逆行编程或反复改写的能力。
常规PLD:先编程后装配
ISP:先装配后编程。且可重复编程。
ispLSI的体系结构
基于与或列阵结构的复杂CPLD产品
巨块的组成
芯片用数量较多的巨块组成,
巨块之间使用全局布线区GRP连接起来
每个巨块包括若干个通用逻辑块GLB、
输出布线区ORP、
若干个I/O单元、
专用输入单元等
不同类别、不同型号的ispLSI器件主要区别:构成该芯片器件的巨块数目各不相同
一个巨块包含:
- 8个GLB
- 16个I/O块
- 2个专用输入块(IN0、IN1)(不经过锁存器,直接输入)
使用八选一的MUX来选择GLB
GLB
通用逻辑块是ispLSI的最基本逻辑单元
组成:
- 与阵列(18个输入端)(有20个与门、通过4个或门输出)
- 乘积项共享阵列PTSA
- 四输出逻辑宏单元(4个触发器)
- 控制逻辑
GLB有5种组合模式
- 标准组态模式
- 高速直通组态模式:4个或门跨过PTSA和异或门直接与4个触发器相连
- 异或逻辑组态模式:在四个或门后增加4个异或门
- 单乘积项结构:跨越或门、PTSA、异或门直接输出,速度最快
- 多模式结构:在同一个GLB内共用
布线区
- 全局布线区GRP 位于芯片中央,以固定方式将所有片内逻辑联系在一起 特点:输入/输出之间的延迟是恒定的、可与之的
输出布线区ORP 可编程的输出矩阵 介于GLB与输出单元IOC之间 有时候为了高速工作,GLB可以跨过ORP直接与I/O相连
输入输出单元IOC
内部结构: 1. 6个多路开关MUX 2. 一个特殊触发器 3. 三态门 4. 缓冲器
- MUX
- MUX1:有两个可编程地址;当两地址均断开时,相当于11,输出使能端接地,处于专用输入组态
- MUX2:选择输出机型
- MUX3:选择信号输出途径
- MUX4:选择输入方式
- 触发器 有两种工作方式:锁存方式、寄存器方式 复位使用芯片全局复位信号RESET实现
时钟分配网络CDN
// 我看不懂,真的看不懂
EPM7128S
是系统可编程的CPLD器件
内部采用E2PROME^2PROME2PROM技术编程,只能使用+5v电源
LAB
EPM7128S的内部结构是以逻辑阵列块LAB为基础的
逻辑阵列块是高性能的可变的模块
一个逻辑阵列块包含16个宏单元,接受以下信号:
- 来自PIA(可编程连接阵列)的信号
- 全局控制信号
- 直接来自于I/O引脚的信号
宏单元
能单独配置为时序逻辑或者组合逻辑功能
时钟来源:
- 全局时钟
- 时钟允许信号控制的全局时钟
- 乘积项产生的时钟和I/O引脚时钟信号
可编程连接阵列PIA
PLA通过PIA连接
它是全局总线
I/O控制块
// 没看懂
引脚
略
在系统编程原理
ISP技术特点:不使用编程器;可以先装配后编程,成为产品后还可以反复编程
在系统编程原理
逐行编程
有两种工作方式:
- 正常模式
- 编辑模式
使用系统编程使能信号overlineispENoverline{ispEN}overlineispEN控制工作模式
5个编程接口:
- overlineispENoverline{ispEN}overlineispEN
- SDISDISDI
- MODEMODEMODE
- SDOSDOSDO
- SCLKSCLKSCLK
// 这些东西其实看看就行了,看个乐子哈
下面是重点
可编程逻辑的原理图方式设计
设计流程图
- 设计输入 所设计的电路必须以文本方式或者原理图方式输入到计算机 文本方式使用:VHDL、Verilog、AHDL等 原理图方式:和拼图一样
编译状态 略
功能模拟 输入且被编辑的逻辑设计必须通过软件进行模拟 使用波形模拟器进行模拟
综合 设计被翻译成一个网表
实现 通过网表描述的逻辑结构和被编程的指定器件相映射
时序模拟 发生在实现之后于下载目标元件之前 确保没有导致传播延迟的设计错误或者时序问题
下载 下载到器件上
设计输入
使用两种方式进行输入:文本输入或者原理图输入 使用文本输入必须熟悉硬件描述语言HDL
略
超重点
可编程逻辑的VHDL文本方式设计
基本概念
是IEEE采用的一种标准语言
基本结构:
- 实体、结构体
- 包集合
- 库
- 配置
- 实体:描述系统的外部接口信号
- 结构体:描述系统内部的结构和行为
- 包集合:存放各种设计模块能共享的数据类型、常数、程序等
- 库:存放已经编译的实体
- 配置:从库种选取所需单元组成新系统
描述结构体功能的三种方法:
- 数据流描述:使用布尔类型语句进行描述
- 结构描述:分层次结构,高层调用底层
- 行为描述
- 逻辑关键词:
- AND
- OR
- NOT
- NAND
- NOR
- XOR
- XNOR
必须的两个元素:ENTITY(实体)、ARCHITECTURE
ENTITY通过PORT的外部输入和输出描述一个给定的逻辑功能
ARCHITECTURE描述系统内部的结构和行为
组合逻辑设计
数据流描述方法
当语句中任意一个输入信号的值发生变化时,赋值语句就被激活】
从而认为数据是从一个设计中流入然后又流出
这种理念称之为数据流描述
数据流法可导致较少的代码。但是不适用于复杂的逻辑块
结构描述方法
COMPONENT:在一个程序或者其它程序中重复使用,预先规定逻辑功能的一种方法(逻辑)
SIGNAL:被指定为一条在各个组件之间连接的”导线“
任何逻辑功能的VHDL程序都可以改变成为一个组件
// 不能看课本,这一段看课本看到下个学期都看不懂的,tmd语法都不讲
来段链接:
VHDL重点语法
再来两段代码
ENTITY NAND2_gate ISPORT(A, B: IN bit;X: OUT bit);
END ENTITY NAND2_gate;
ARCHITECTURE FUNC OF NAND2_gate ISBEGINX <= A NAND B;
END ARCHITECTURE FUNC;ENTITY NAND3_gate ISPORT(A, B, C: IN bit;X: OUT bit);
END ENTITY NAND3_gate;
ARCHITECTURE FUNC OF NAND3_gate ISBEGINX <= NOT(A AND B AND C);
END ARCHITECTURE FUNC;ENTITY SOP_logic ISPORT(IN1, IN2, IN3, IN4, IN5, IN6, IN7: IN bit;OUT4: OUT bit);
END ENTITY SOP_logic;
ARCHITECTURE FUNC OF SOP_logic ISCOMPONENT NAND2_gate ISPORT(A, B: IN bit;X: OUT bit);END COMPONENT NAND2_gate;COMPONENT NAND3_gate ISPORT(A, B, C: IN bit;X: OUT bit);END COMPONENT NAND3_gate;SIGNAL OUT1, OUT2, OUT3: bit;BEGING1: NAND3_gate PORT MAP (A => IN1, B => IN2, C => IN3, X => OUT1);G2: NAND2_gate PORT MAP (A => IN4, B => IN5, X => OUT2);G3: NAND2_gate PORT MAP (A => IN6, B => IN7, X => OUT3);G4: NAND3_gate PORT MAP (A => OUT1, B => OUT2, C => OUT3, X => OUT4);
END ARCHITECTURE FUNC;
大概就酱
库元件调用法
译码器、编码器、多路选择器等等都在库里面了
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
- 扩展:条件信号带入语句
WHEN XXX="xx" ELSE
...
;
- 数据选择器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4 ISPORT(D0, D1, D2, D3, A, B: IN STD_LOGIC;Q: OUT STD_LOGIC);
END ENTITY MUX4;
ARCHITECTURE RTL OF MUX4 ISSIGNALSEL: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINSEL <= A & B;Q <=D0 WHEN SEL = "00" ELSED1 WHEN SEL = "01" ELSED2 WHEN SEL = "10" ELSED3 WHEN SEL = "11" ELSE'Z';
END ARCHITECTURE RTL;
时序逻辑设计
时钟信号
时钟信号描述时序电路的执行条件
时钟信号上升沿的属性描写:
CLK’event AND CLK=‘1’
同理,下降沿
CLK’event AND CLK=‘0’
另一种描述方法:
RISING_EDGE(CLK)
FALLING_EDGE(CLK)
同步的复位/置位信号
设置时序电路的初始状态
使用进程语句PORCESS
格式:
PROCESS (时钟信号名)BEGINIF 时钟边沿表达式 AND 复位/置为条件表达式 THEN复位置位语句;ELSE其它执行语句END IF;
END PROCESS;
// 更多的学习需要建立在对VHDL的语法的理解上进行