EDA 第3章 VHDL基础课件

合集下载

EDA VHDL 第三章 VHDL基本结构

EDA VHDL 第三章 VHDL基本结构

3.1 VHDL概述
ABEL ,AHDL(Altera HDL),PALASM 系统级抽象描述能力差,一般做门级电路描述. 要求设计者对电路细节有详细的了解. 对综合器的性 能要求低,易于控制电路资源. 支持少
3.1 VHDL概述
VHDL
主要用于描述数字系统的结构、行 为、功能和接口。
VHDL将一个设计(元件、电路、系统)分为:
3 bit计数器 的等效描述 (out 与buffer 的区别):
3.2 VHDL程序基本结构
2选1多路选择器的VHDL描述
ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; . . . BEGIN ARCHITECTURE one OF mux21a IS d <= a AND (NOT S) ; BEGIN e <= b AND s ; y <= (a AND (NOT s)) y <= d OR e ; OR (b AND s) ; END ARCHITECTURE one ; END ARCHITECTURE one;
3.2 VHDL程序基本结构
2选1多路选择器的VHDL描述
3.2 VHDL程序基本结构
1、结构体说明语句

结构体(ARCHITECTURE) 结构体名
3.2 VHDL程序基本结构
ENTITY counter3 IS 3 bit计数器 PORT( clk,reset: IN bit; count: OUT integer RANGE 0 TO 7); 的描述 END counter3; ARCHITECTURE my_arch OF counter3 IS SIGNAL count_tmp: INTEGER RANGE 0 TO 7; BEGIN PROCESS BEGIN WAIT UNTIL (clk’EVENT END clk=’1’); IF reset=’1’ OR count=7 THEN count_tmp <=0; ELSE count_tmp <= count_tmp +1; END IF; End process; count :=count_tmp End my_arch;

EDA课件第三章

EDA课件第三章

tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2; tmp<=tmp3;
q<=tmp AFTER m; END PROCESS cale;
END ARCHITECTURE connect;
(2) 端口方向
端口方向用来定义外部引脚的信号方向是输入还 是输出。
凡是用“IN”进行方向说明的端口,其信号自端口 输入到构造体,而构造体内部的信号不能从该端口输 出。相反,凡是用“OUT”进行方向说明的端口,其信 号将从构造体内经端口输出,而不能通过该端口向构 造体输入信号。
实体说明
一个模块中仅有一 个设计实体。
实体 提供设计模块的接口信息,是VHDL设计电 路的最基本部分。
实体说明具有如下的结构:
ENTITY 实体名 IS
实体说明以“ENTITTY 实体名
[类属参数说明];
IS”开始至“END ENTITTY实体 名”结束。这里大写字母表示
实体说明的框架。实际上,对
此例中的外部引脚
ARCHITECTURE connect OF mux IS SIGNAL tmp:BIT; BEGIN
cale:PROCESS(d0,d1,sel) IS VARIABLE tmp1,tmp2,tmp3:BIT;
BEGIN tmp1:=d0 AND sel;
为d0,d1,sel,q 。
库(Library)是经编译后的数据的集合,它存放包集合 定义、实体定义、构造体定义和配置定义。
设计中的子程序和 公用数据类型的集合。
程序包
IEEE标准的标准程序包 设计者自身设计的程序包
包和库具有这样的关系:多个过程和函数汇集在一起构成包 集合,而几个包汇集在一起就形成一个库。

EDA课件3

EDA课件3

用VHDL语言设计的电路无论规模大小,都要使 用一个完整的VHDL程序结构,这个完整的程序结构 称为设计实体或实体。
设计实体是指能被VHDL语言综合器所接受,并 能作为独立的设计单元,以元件的形式存在的VHDL 语言程序。 所谓的元件,既可以被高层次的系统调用,成 为系统的一部分,也可以作为一个电路的功能模块, 独立存在和运行。
fallw: TIME :=1ns ); --定义fallw为下降沿
--定义A、B和Y为逻辑位
B: IN
STD_LOGIC;
STD_LOGIC );
16
第3章 VHDL程序的基本结构
3.1.2 VHDL语言的结构体
结构体是设计实体的核心,它具体指明了设计 实体的行为、元件及内部连接关系。
结构体所承担的任务 : ① 定义结构体内部所使用的各项元素;
3
第3章 VHDL程序的基本结构
1. VHDL设计实体的结构 一个完整的VHDL设计实体(设计文件),通常
包括:
■ 库(Library)和程序包(Package)
■ 实体说明(Entity)
■ 结构体(Architecture)
■ 配置(Configuration)
4
第3章 VHDL程序的基本结构
结构体:用来描述电路内部结构和逻辑功能。并以 标识符ARCHITECTURE开头,以END结尾。
8
第3章 VHDL程序的基本结构
3. 1.1 VHDL语言的实体说明
实体说明是VHDL程序设计中最基本的组成部分, 实体说明语句的格式如下: 主要用来描述设计实体的外部接口信号,定义设计 实体说明语句 ENTITY 实体名 IS 单元的输入、输出端口,是设计实体对外的一个通 类属说明语句 [GENERIC(类属表);] 信界面,但它不描述设计的具体功能。 端口说明语句 [PORT(端口表);] 结束语句 END [ENTITY] 实体名;

第3章-VHDL语言基础PPT课件

第3章-VHDL语言基础PPT课件
2021/3/12
由用户自己创建。设 计者可以把一些自己 需要经常使用的非标 准(一般是自己开发 的)包集合和实体等 汇集成库,作为对 VHDL标准库的补充。
9
还需要注意的是,LIBRARY语句和USE语句的作 用范围只限于紧跟其后的实体及其结构体。因此,如 果一个程序中有一个以上的实体,则必须在每个实体 的前面分别加上LIBRARY语句和USE语句,说明各实 体及其结构体需要使用的库和程序包。
第三章 硬件描述语言HDL Hardware Description Language
2021/3/12
1
第一节 概述
常用的硬件描述语言有:
VHDL:Very High Speed Integrated Circuit Hardware Description Language
超高速集成电路硬件描述语言
nand_2
a
y
b
inst
y a b
2021/3/12
3
在程序设计中,要求实体名与存储的文件名一致
IEEE库使用说明 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY nand_2 IS
Nand_2实体说明
PORT ( a,b:IN STD_LOGIC; 端口说明,用以 y: OUT STD_LOGIC); 描述器件的接口
s et
q
res et
qb
图1 RS触发器
2021/3/12
14
端口数据类型:
(1)标准数据类型,如:整数、实数,位,位矢量等。 (2)IEEE标准数据类型,标准逻辑位STD_LOGIC、标
准逻辑矢量STD_LOGIC _VECTOR。 (3)用户自定义的数据类型,如枚举型、数组类型、文

《VHDL程序设计基础》课件

《VHDL程序设计基础》课件

语法格式
library library_name; use library_name.packag e_name.item;
库的使用
在程序中引用库中的函 数、过程、数据类型等 。
示例
library IEEE; use IEEE.STD_LOGIC_116 4.ALL;
程序包(Package)
01 程序包描述
并行赋值语句
同时对多个信号进行赋值操作。
生成语句
用于生成多个相似的电路结构, 如多路选择器、译码器等。
04 VHDL设计方法
自顶向下设计方法
总词
从整体到局部的设计方法
详细描述
自顶向下设计方法是一种从整体到局部的设计方法,首先确定系统的整体结构 和功能,然后逐步细化各个模块的设计,最终完成整个系统的设计。这种方法 有助于提高设计的层次性和模块化,便于设计和调试。
状态机设计
总结词
通过实例演示如何使用VHDL设计状态机。
详细描述
介绍状态机的基本概念和设计方法,包括状态图的绘制、状 态转移的实现等。通过具体的VHDL代码实现一个有限状态机 ,并解释代码中的各个部分。
06 VHDL仿真与验证
仿真工具与流程
仿真工具
ModelSim、Vivado Simulation等常用的 VHDL仿真工具,支持多种仿真算法和精度 。
02 语法格式
03 包的内容
04 包的使用
05 示例
程序包是库的子集,用于 组织相关的函数、过程、 数据类型等。
package package_name is
在包中声明函数、过程、 数据类型等。
在其他程序中引用包中的 内容。
package logic_operators is function AND (A, B: in std_logic) return std_logic; function OR (A, B: in std_logic) return std_logic; end logic_operators;

EDA技术实用教程第4版VHDL课件第3章

EDA技术实用教程第4版VHDL课件第3章
3.3.3 计数器的其他VHDL表达方式
2. 程序分析
3.4 实用计数器的VHDL设计
3.3.3 计数器的其他VHDL表达方式
3. 时序模块中的同步控制信号和异步控制信号的构建
4. 另一种描述方式
3.4 实用计数器的VHDL设计
3.3.3 计数器的其他VHDL表达方式
3. 时序模块中的同步控制信号和异步控制信号的构建 4. 另一种描述方式


3-12 分别给出以下2个RTL图的VHDL描述,注意其中的D触发器和锁存 器的表述。
PROCESS…END PROCESS
3.1 组合电路的Vຫໍສະໝຸດ DL描述3.1.4 半加器及其VHDL的描述
3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述
3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述
3.1 组合电路的VHDL描述
3.1.4 半加器及其VHDL的描述
3.3 计数器的VHDL设计
3.3.1 4位二进制加法计数器设计
3.3.2 整数类型
3.3 计数器的VHDL设计
3.3.3 计数器的其 他VHDL表达方式
3.3 计数器的VHDL设计
3.3.3 计数器的其他VHDL表达方式
3.3 计数器的VHDL设计
3.3.3 计数器的其他VHDL表达方式
3.4 实用计数器的VHDL设计


3-7 给出1位全减器的VHDL描述。要求: (1)首先设计1位半减器,然后用例化语句将它们连接起来,图3-19 中h_ suber是半减器,diff是输出差,s _out是借位输出,sub _in是 借位输入。 (2)根据图3-19设计1位全减器。以1位全减器为基本硬件,构成串行 借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y – sun _in = diffr)。

精品课件-EDA技术与VHDL设计-第3章

精品课件-EDA技术与VHDL设计-第3章
5
第3章 VHDL语言入门
图3-1 VHDL基本硬件模型
6
第3章 VHDL语言入门 3.2 两个简单的组合电路示例
本节以两个简单的示例引出VHDL语言的基本结构、语句 表述及一些语法规则。
7
第3章 VHDL语言入门 3.2.1 2选1多路选择器的设计 在数字电路中,2选1多路选择器是组合电路的典型代表。 假设有a和b两个数据,控制信号为s,当s取值为0时,选择数 据a作为输出;否则,选择数据b作为输出。按照数字电路的设 计方法,首先需要列出真值表、卡诺图,然后通过化简卡诺图 得到最简逻辑表达式,再根据所选择逻辑器件的要求(如采用 与门、或门实现电路,或只能采用与非门实现电路)进行表达 式的变换,确认最终的电路形式。图3-2是2选1多路选择器的 卡诺图及化简后的逻辑表达式,图3-3是根据逻辑表达式确定 的最终电路形式。
L7 ARCHITECTURE construct OF mux21 IS
L8 BEGIN
L9
y <= ( b AND s ) OR ( NOT s AND a );
L10 END ARCHITECTURE construct;
L11 -------------------------------------------------------------------------------------------------------------------------
L2 ENTITY mux21 IS
L3
PORT( a, b, s : IN BIT; --输入端口 a、b、s,数据类型为 BIT
L4
y
: OUT BIT); --输出端口 y
L5 END ENTITY mux21; L6 ----------------------------------------------------结构体描述------------------------------------------------------

EDA(第4讲)第3章 VHDL入门3

EDA(第4讲)第3章 VHDL入门3

13三人表决器的设计——CSE语句课堂练习题 语句课堂练习题
输入变量 输出 a b 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 y 0 0 0 1 0 1 1 1 要求: 根据真值表,写出VHDL程序 bjq a b c y
14
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; END PROCESS; ENTITY bjq IS END ARCHITECTURE aa ; PORT (a, b, c : IN STD_LOGIC; y : OUT STD_LOGIC); END ENTITY bjq; ARCHITECTURE aa OF bjq is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN 输入变量 输出 abc <= a & b & c; PROCESS(abc) a b c y BEGIN 0 0 0 0 CASE abc IS
0 0 0
0 1 1 0 0 1 1
1 0 1 0 1 0 1
0 0 1 0 1 1 1
15
; ; ; ;
1 1 1 1
外部端口
内部端口
端口连线: 端口连线:信号
16
或门的VHDL描述:or2a.vhd 描述: 或门的 描述
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b ; END ARCHITECTURE one ;

EDA课件 VHDL语言 第3章

EDA课件 VHDL语言 第3章

Quartus II进行EDA设计开发的流程2. 输入设计项目和存盘
将所需元件全部调入原理图编辑窗并连接好
连接好的全加器原理图f_adder.bdf
f_adder.bdf工程设置窗
全加器工程f_adder的仿真波形加入本工程所有文件
Settings
more Fitter Settings选项页Fitter Settings选项页
在Compilation Report中查看适配结果在Timing Closure Floorplan中查看适配结果
在Chip Editor中查看适配结果
全程编译前时序条件设置界面
时序分析结果“More Settings…”中的设置
(1)调用lpm_mult
参数化乘法器lpm_mult宏功能模块的基本参数表
输入输出位宽设置乘法器类型设置
8位有符号乘法器电路计数器输出端口宽度和计数方向设置计数器模和控制端口设置
更多控制端口设置
模24方向可控计数器电路
lpm_counter计数器功能仿真波形
选择芯片和设置参考时钟锁相环控制信号设置输入时钟设置
锁相环电路
功能仿真波形
数据线、地址线宽度设置控制端口设置
添加.mif文件
如下图所示是基于ROM实现的4位×4位的无符号数乘法器电路图,其参数设置为:
LPM_WIDTH=8
LPM_WIDTHAD=8
LPM_FILE=mult_rom.mif
仿真结果
模10计数器仿真波形模10计数器。

EDA课件第三章3 共59页

EDA课件第三章3 共59页

q<= i0 WHEN 0,
根据sel的不同值来 i0
i1 WHEN 1, i2 WHEN 2 ,
完成选择功能
i1
i2
mux q
i3 WHEN 3,
i3
‘X’ WHEN OTHERS;
a
b
4、 变量赋值语句
书写格式: 目的变量:=表达式; 意义:表达式的值替代目的变量的值,立即有效。
注意
1)两边的数据类型必须相同; 2)目的变量的类型和范围应事先给出; 3)右边的表达式可以是变量,信号或字符; 4)变量只在进程或子程序中使用,它无法传递 到进程之外。
条件信号赋值语句与进程中的多选择 if 语句等价:
PROCESS(sela, selb, a, b, c)
BEGIN
IF sela=‘1’ THEN
q <= a WHEN sela = ‘1’ ELSE b WHEN selb = ‘1’ ELSE c;
LIBRARY IEEE; USE IEEE.STD.LOGIC.1164.ALL; ENTITY dff IS
PORT(clk,d : IN STD_LOGIC; q : OUT STD_LOGIC);
END dff; ARCHITECTURE rtl OF dff IS BEGIN
PROCESS( clk ) BEGIN
*信号代入语句; * 变量赋值语句; * WAIT语句;
* IF语句;
* CASE语句;
* LOOP语句; * NEXT语句; * EXIT 语句;
2、 并发描述语句
VHDL的并发语句用来描述一组并发行为,它是并 发执行的,与程序的书写顺序无关。

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

Q <= Q1 ;
--在此,赋值语句可以放在进程外,作为并行赋值语句
END ;
3.2 时序电路描述
K 康芯科技 X
3.2.3 实现时序电路的不同表述
【例3-12】 ... PROCESS BEGIN
wait until CLK = '1' ; Q <= D ; END PROCESS;
--利用wait语句
PROCESS... END PROCESS
12. 文件取名和存盘 “.vhd” adder_f.vhd
K 康芯科技 X
K 康芯科技 X
3.2 时序电路描述
3.2.1 D 触发器
【例3-6】
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY DFF1 IS
3.2 时序电路描述
3.2.3 时序电路的不同表述
【例3-9】 ... PROCESS (CLK) BEGIN IF CLK'EVENT AND (CLK='1') AND (CLK'LAST_VALUE='0')
THEN Q <= D ; --确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ; 【例3-10】 ... PROCESS (CLK) BEGIN IF CLK='1' AND CLK'LAST_VALUE='0' --同例3-9
PROCESS(abc)
BEGIN CASE abc IS
--类似于真值表的CASE语句
WHEN "00" => so<='0'; co<='0' ;
WHEN "01" => so<='1'; co<='0' ;
WHEN "10" => so<='1'; co<='0' ;
WHEN "11" => so<='0'; co<='1' ;
BEGIN
PROCESS (CLK,Q1)
BEGIN
IF CLK'EVENT AND CLK = '1'
THEN Q1 <= D ;
END IF;
END PROCESS ;
Q <= Q1 ;
--将内部的暂存数据向端口输出(双横线--是注释符号)
END bhv;
3.2 时序电路描述
3.2.2 时序描述VHDL规则
EDA
第3章
VHDL基础
K 康芯科技 X
K 康芯科技 X
K 康芯科技 X
K 康芯科技 X
3.1 VHDL 基本语法
3.1.1 组合电路描述
K 康芯科技 X
图3-3 mux21a功能时序波形
3.1 VHDL 基本语法
K 康芯科技 X
3.1.2 VHDL结构
1. 实体表达
【例3-4】 ENTITY e_name IS PORT ( p_name : port_m data_type;
co
a
and2
b
so
not
xnor2
ab 00 01 10 11
so 0 1 1 0
co 0 0 0 1
图3-10 半加器h_adder电路图及其真值表
K 康芯科技 X
3.3 全加器的VHDL描述
3.3.1 半加器描述
【例3-15】 LIBRARY IEEE;
--半加器描述(1):布尔方程描述方法
co, so : OUT STD_LOGIC);
END ENTITY h_adder;
ARCHITECTURE fh1 OF h_adder is
SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; --定义标准逻辑位矢量数据类型
BEGIN abc <= a & b ; --a相并b,即a与b并置操作
END ARCHITECTURE fh1;
K 康芯科技 X
3.3 全加器的VHDL描述
【例3-16】 LIBRARY IEEE; --半加器描述(2):真值表描述方法
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;
3.2 时序电路描述
K 康芯科技 X
【例3-13】 ... PROCESS (CLK)
BEGIN IF CLK = '1' THEN Q <= D ; END IF; END PROCESS
--利用进程的启动特性产生对CLK的边沿检测
图3-7 例3-13的时序波形
3.2 时序电路描述
K 康芯科技 X
END ;
ARCHITECTURE bhv OF DFF3 IS
SIGNAL Q1 : STD_LOGIC;
BEGIN
PROCESS (CLK)
BEGIN
IF rising_edge(CLK) -- 必须打开STD_LOGIC_1164程序包
THEN Q1 <= D ;
END IF;
END PROCESS ;
c : OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f : STD_LOGIC; --定义3个信号作为内部的连接线。
BEGIN u1 : h_adder PORT MAP(a=>ain,b=>bin,co=>d,so=>e); --例化语句 u2 : h_adder PORT MAP(a=>e, b=>cin, co=>f,so=>sum); u3 : or2a PORT MAP(a=>d, b=>f, c=>cout);
1. 标准逻辑位数据类型 STD_LOGIC
K 康芯科技 X
BIT数据类型定义:
TYPE BIT IS('0','1'); --只有两种取值
STD_LOGIC数据类型定义:
TYPE STD_LOGIC IS ('U','X','0','1','Z','W','L','H','-'); --有9种取值
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;
co, so : OUT STD_LOGIC);
END ENTITY h_adder;
ARCHITECTURE fh1 OF h_adder is
BEGIN
so <= NOT(a XOR (NOT b)) ; co <= a AND b ;
【例3-14】 ... PROCESS (CLK,D) BEGIN
IF CLK = '1' THEN Q <= D ; END IF; END PROCESS ;
--电平触发型寄存器
图3-8 例3-14的时序波形
3.3 全加器的VHDL描述
3.3.1 半加器描述
K 康芯科技 X
ain bin cin
K 康芯科技 X
6. 结构体表达
【例3-5】
ARCHITECTURE arch_name OF e_name IS [说明语句]
BEGIN (功能描述语句)
END ARCHITECTURE arch_name ;
3.1 VHDL 基本语法
K 康芯科技 X
7. 赋值符号和数据比较符号
IF a THEN ... -- 注意,a的数据类型必须是 boolean
WHEN OTHERS => NULL ;
END CASE;
END PROCESS;
END ARCHITECTURE fh1 ;
3.3 全加器的VHDL描述
3.3.1 半加器描述
K 康芯科技 X
【例3-17】 LIBRARY IEEE ; --或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c <= a OR b ; END ARCHITECTURE one ;
3.2 时序电路描述
2. 设计库和标准程序包
LIBRARY WORK ; LIBRARY STD ; USE STD.STANDARD.ALL ;
LIBRARY <设计库名>; USE < 设计库名>.<程序包名>.ALL ;
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ;
q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_BAD IS BEGIN
PROCESS (a1,b1) BEGIN IF a1 > b1 THEN q1 <= '1' ; ELSIF a1 < b1 THEN q1 <= '0' ;-- 未提及当a1=b1时,q1作何操作 END IF;
相关文档
最新文档