基于CPLD的逻辑电路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

属性
属性是指实体、结构体、类型及信号的一些 表现特征。 1. 值类属性 2. 信号类属性 只有两个信号类属性(EVENT和STABLE)是可以 综合的,其中EVENT最常用,主要用于时钟边沿的 描述。 下降沿可以简写为:clk`EVENT AND clk=`0`。 3. 数据范围类属性
4.4 VHDL语言的结构体描述方式
3. 用户自定义数据类型
用户自定义数据类型的语法结构为:
TYPE 数据类型名 IS 数据类型定义 [OF 基本数据类型];
1) 枚举类型 在枚举的数据类型的定义中列举出所有可能的取值,被说明为 该枚举类型的变量取值不能超出所定义的范围, 枚举类型定义的语法结构为:
TYPE 数据类型名 IS (元素1,元素2,…);
ALTERA, XILINX, Lattice, 1.将CPLD焊在PCB板上 2.接好编程电缆 3.现场烧写CPLD芯片 焊在目标板上 CPLD
3.2 设计平台学习要点
1. 2. 3. 4. 安装软件 了解和选择CPLD芯片 掌握开发流程 原理图输入法、VHDL输入法; 编译、综合; 管脚配置; 仿真 了解JATG接口和下载方法
目标变量名 :=表达式;
【例3.3.2】 变量定义语句和赋值语句的举例
PROCESS( ) VARIABLE a :INTEGER RANGE 0 TO 15; --在PROCESS后定义变量 VARIABLE b, c : INTEGER :=2; --说明部分,BEGIN之前 VARIABLE d :STD_LOGIC; BEGIN … a :=13; --变量赋值部分 b:=a+1; c:=15; d:=’1’; END;
2. 信号
信号是电子电路内部连接和电路的表述,也是 描述电路的最基本方式。 信号通常在构造体说明语句、程序包首和实体说明 理解要点: 语句中定义,不能在进程的说明语句和子程序(包 信号具有明显的物理特性,表 括函数和过程)的说明语句中定义。
信号定义的语法结构为:
现在信号的传导延迟和滤波性质
SIGNAL 信号名:数据类型 [约束条件][ := 表达式];
3.3、基于CPLD的逻辑电路的设计流程
4 VHDL入门知识要点
以语言的形式设计硬件(数字逻辑电路); 语言是形式,硬件设计是内容。 实体设计 (端口说明+结构体) 数据对象、数据类型及其运算符号 (信号、变量) 三种描述方式(数据流+结构化+行为描述) 电路描述的手段——并行语句和顺序语句 进程语句的概念和运行机理 unch, dinner);
2) 数组类型 数组类型定义的语法结构为:
TYPE 数组类型名 IS ARRAY 约束范围 OF 元素类型;
例如:TYPE a IS ARRAY (7 DOWNTO 0) OF STD_LOGIC;
这是一个限定性一维数组,数组类型的名称是a,它有8个元素, 数组元素的数据类型是STD_LOGIC,各元素的排序是a(7)、 a(6)、…a(0)。
3. 变量
变量常用来表示临时存储的中间数据,以便于实现 程序的算法,如门与门间的连线及其连线上的信 号值。
变量定义的语法结构为: 个人看法:变量是一种基于数
学模型的电路抽象的表述方式, VARIABLE 变量名[,… ,变量名] [约束条件] : 数据类型 具有明显的抽象特性 [:=表达式 ];
变量赋值语句的语法结构为:
1) 标准逻辑位(STD_LOGIC)数据类型
TYPE STD_LOGIC IS ('U','X','0','1','Z','W','L','H','-'); 'U' --Uninitialized(未初始化的) 'X' -- Forcing Unknown(强未知的) '0' -- Forcing 0 ( 强0) '1' -- Forcing 1 (强1) 'Z' -- High Impedance (高阻态) 'W' -- Weak Unknown (弱未知的) 'L' -- Weak 0 (弱0) 'H' -- Weak 1(弱1) '-' -- Don't care(可忽略的)
4.1
实体设计结构
4.2 数据对象、数据类型及其运算符号
VHDL语言要素
1. 常量 常量是指在设计实体中不会发生变化的值,一旦定义赋值, 程序中不能修改。
常量定义的语法格式为:
CONSTANT 常量名:数据类型 := 表达式 ;
例如: CONSTANT width: POSITIVE: = 8; CONSTANT vcc : REAL := 5.0; CONSTANT delay : TIME := 10ns;
一个RS触发器的例子
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ffrs IS 加法器的例子 PORT(r,s :IN STD_LOGIC; 库、程序包使用说明 GENERIC类属说明 q,qn:OUT STD_LOGIC); LIBRARY IEEE; END ffrs; 快速入门掌握部分 USE IEEE.STD_LOGIC_1164.all; 设 ARCHITECTURE IS OF ffrs IS ENTITY jiafaqi beh SIGNAL IN STD_LOGIC; -- 加数 实体(ENTITY) PORT(a : rs:STD_LOGIC_VECTOR(1 DOWNTO 0); PORT端口说明 计 BEGIN b : IN STD_LOGIC; --被加数 定义输入输出管脚信号 PROCESS(r, s) STD_LOGIC; --相邻低位来的进位数 ci: IN BEGIN OUT s: 实 rs<=r&s; STD_LOGIC; --全加器的和 结构体 结构体说明 定义用到的内部信号和 co : OUT STD_LOGIC); --向相邻高位的进位数 CASE(ARCHITECTURE) rs IS END jiafaqi; 元件 体 WHEN"01" =>q<='1';qn<='0'; WHEN"10" =>q<='0';qn<='1'; ARCHITECTURE one OF jiafaqi IS WHEN OTHERS=>null; BEGIN WHEN"11" =>q<='X';qn<='X'; 描述电路功能的语句 END配置(CONFIGURATION) CASE; s <= a XOR b XOR ci; 结构体功能描述 END PROCESS; b)or ((a XOR b)AND ci); co <= (a AND 主体部分 ENDEND one ; beh;
对进程 影响
用途 含有的 信息
进程对信号敏感
用于程序包、实体说明或结构体 中。 可以容纳当前值,也可以保持历 史值。
进程对变量不敏感
仅用于进程、函数或过程中
变量只有当前值。
数据类型
1.VHDL的预定义数据类型
表3-4 预定义数据类型
数据类型 整数(INTEGER) 含 义 代表32位的正整数、负整数和零,使用时用RANGE字句 限定范围
EDA(Electronic Design Automation:电子设计自动化)
HDL(Hardware Description Language:硬件描述语言)
3 基于CPLD的逻辑电路的设计平台和流程
3.1 基于CPLD的逻辑电路的设计平台 计算机+软件 计算机 CPLD开发专用软件 下载线 下载电缆 CPLD芯片 目标电路板(PCB)
输出方程和驱动方程
2.2 传统的逻辑电路设计方式
结构化设计方式
元件
连线
电路系统原理图
传统的逻辑电路设计方法的 优缺点和局限性
有完整的理论基础和设计经验(数字逻辑和 电路) 电路直观、形象,层次分明,易于理解 有大量的元件可供应用 需要熟知大量的元器件功能和性能 难以设计大型电路,不利于交流和共享 调试困难,设计风险大,周期长,成本高
复杂
2、EDA改变了逻辑电路的设计方法
自动化改变了工业、农业的生产方式,同样 也促进了电子设计的方式 传统的逻辑电路设计方式
基于行为描述的逻辑电路设计方式和描述工 具
2.2 传统的逻辑电路设计方式
设计方式1:数字逻辑法(门电路和触发器)
简化的布尔表达式 组合电路
逻辑代数
卡诺图
时序电路
4. 数据类型的转换
有三种常见的方法可以实现数据类型转换: 类型标记转换法、函数转换法和常数转换法。 1)用类型标记实现类型转换 所谓类型标记实现类型转换,就是将欲转换的 目的类型直接标出,后面紧跟用括号括起来 的源数据。 2)用转换函数实现类型转换 3)用常数实现类型转换
基本运算符
1. 2. 3. 4. 5. 6. 逻辑运算符 关系运算符 算术运算符 移位运算符 并置运算符 符号运算符
基于CPLD的逻辑电路设计方法
逻辑电路在电子信息系统中的作用和地位 EDA(电子设计自动化)改变了逻辑电路 的设计方法 基于CPLD的逻辑电路的设计平台和流程 VHDL学习
1、逻辑电路在电子信息系统中的作用
简单
简单的数字信号变换和逻辑控制电路 (计数器、编译码、多路选择、有限状态机) 嵌入式系统的外围电路(为单片机扩展性能) (地址译码、中断控制、接口电路) 利用FPGA内核嵌入式系统,可构成SOC (system on chip) 实现高性能的数字信号处理 (FFT、滤波、复杂编码、数据压缩)
2.3 EDA的设计方法
EDA提供了专用的设计平台 HDL使原理图形成=>文字形式 设计电路, 实现了交流和共享 在兼容传统设计方法的基础上, HDL提供 了新设计方法——“行为描述” ,提高了设 计效率 EDA提供了电路仿真功能,降低了设计风险 可编程器件还方便了系统升级和改进
用来表征系统的状态,它共有4种:NOTE、WARNING、 错误等级 (SEVERITYLEVEL) ERROR、FAILURE
2. 其他预定义的标准数据类型
标准逻辑位 (STD_LOGIC)数据类型; 标准逻辑矢量 (STD_LOGIC_VECTOR); 无符号数据类型(UNSIGNED ); 有符号数据类型(SIGNED)。
信号赋值语句的语法结构为: 目标信号名 <= 表达式[AFTER 时间表达式 ];
【例3.3.1】 信号定义语句和赋值语句的举例
ARCHITECTURE m1 OF or_1 IS SIGNAL c, d: BIT ; --信号可以在结构体说明语句中定 --义,而变量不行 BEGIN PROCESS(a,b,d ) --其中a,b为输入端口,端口类型BIT BEGIN … c <= a; --信号赋值部分 d <= b AFTER 20ns ; --信号延时20ns后再赋值 END;
4.4.1 行为(BEHAVEIOR)描述方式
类似于高级编程语言,其特点如下:
(1) 行为描述采用顺序语句,通过语句的组合顺序来表 4.4.1 行为(BEHAVEIOR)描述方式 达电路功能,从形式上类似计算机语言; (2)行为描述具有很高的抽象程度,远高于数据流描 述和结构描述; 行为=行动+作为 (3)行为描述只需描述清楚输入与输出间转换关系, 也就是处理事情的步骤或具体过程。 不需要关注设计功能的门级实现;
实数(REAL)
位(BIT) 位矢(BIT_VECTOR) 布尔量(BOOLERN) 字符(CHARACTER) 字符串(STRING) 时间(TIME) 自然数、正整数
类似数学中的实数,书写时一定要有小数点
用字符‘1’和‘0’来表示 双引号括起来的一组位数据 只有"真"和"假"2个状态,可以进行关系运算 字符通常用单引号括起来,对大小写敏感 双引号括起来的一串字符 时间类型包括整数和物理量单位两部分 两类数据是整数的子类
表3-3 信号和变量的区别
信号 赋值符 号 基本用 法 行为特 性 适用范 围 <= 用于作为电路中的信号连接,表 示硬件连线和存储元件 信号赋值有延迟时间,并且在进 程结束时才对信号赋值 在整个结构体内的任何地方都适 用 变量 := 用于作为进程中临时存储的中间数 据, 立即赋值,无时间延迟 只能在顺序语句中使用,不能在并 行语句中使用
相关文档
最新文档