[信息与通信]6设计进阶.ppt_第1页
[信息与通信]6设计进阶.ppt_第2页
[信息与通信]6设计进阶.ppt_第3页
[信息与通信]6设计进阶.ppt_第4页
[信息与通信]6设计进阶.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDAEDA技术技术实用教程实用教程 2021-4-222021-4-22 常数的值不变,它可以在任何部分说明,并可以是任意常数的值不变,它可以在任何部分说明,并可以是任意数数 据据类型类型 常数定义的一般表述常数定义的一般表述: CONSTANT 常数名:数据类型常数名:数据类型 := 表达式表达式 ; 例如:例如: CONSTANT FBT: STD_LOGIC_VECTOR :=“010110”; CONSTANT DATA: INTEGER:=15; 2021-4-222021-4-22 变量可以改变值,它可以在进程和子程序中说明,并可以是变量可以改变值,它可以在进程和子程序中说明,并

2、可以是 任意数据类型任意数据类型 定义变量的一般表述:定义变量的一般表述: VARIABLE 变量名变量名 : 数据类型数据类型 := 初始值初始值 ; 例如:例如: VARIABLE muxval : integer range 7 downto 0; muxval:=0; VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); CQI := (OTHERS =0) 2021-4-222021-4-22 信号可以随时间而改变值,它可以在结构中说明,并可以是信号可以随时间而改变值,它可以在结构中说明,并可以是 任意数据类型任意数据类型 定义格式:定义格式: S

3、IGNAL 信号名:信号名: 数据类型数据类型 := 初始值初始值 ; 赋值:赋值: 信号名信号名=同类型的值;同类型的值; 2021-4-222021-4-22 表表6-1 信号与变量赋值语句功能的比较信号与变量赋值语句功能的比较 信号信号SIGNAL 变量变量VARIABLE 基本用法基本用法 用于作为电路中的信号连线用于作为电路中的信号连线 用于作为进程中局部数据存储单元用于作为进程中局部数据存储单元 适用范围适用范围 在整个结构体内的任何地方都能适用在整个结构体内的任何地方都能适用只能在所定义的进程中使用只能在所定义的进程中使用 行为特性行为特性 在进程的最后才对信号赋值在进程的最后才

4、对信号赋值 立即赋值立即赋值 行为特性的三个方面行为特性的三个方面 ()() 信号赋值需要一个信号赋值需要一个延时。延时。 ()在一个进程中,所有赋值语句(包括变量赋值),在进程启()在一个进程中,所有赋值语句(包括变量赋值),在进程启 动时立即执行赋值操作,但信号赋值须在一个动时立即执行赋值操作,但信号赋值须在一个延时后完成延时后完成 (END )END )。 ()() 当在进程中存在对同一信号多次赋值时,最后一个赋值有当在进程中存在对同一信号多次赋值时,最后一个赋值有 效。效。 2021-4-222021-4-22 【例例6-5】 SIGNAL in1,in2,e1, . : STD_LO

5、GIC ; . PROCESS(in1,in2, . . .) VARIABLE c1,. . . : STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN IF in1 = 1 THEN . - 第第 1 行行 e1 = 1010 ; - 第第 2 行行 . IF in2 = 0 THEN . . . - 第第 15+n 行行 . c1 := 0011 ; - 第第 30+m 行行 . END IF; END PROCESS; 2021-4-222021-4-22 【例例6-1】 ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK

6、) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; Q1 = QQ; END PROCESS ; END ; . . . 【例例6-2】 ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK =1 THEN QQ = D1 ; END IF; Q1 = QQ; END PROCESS ; END ; 信号与变量信号与变量_相同综合结果示例相同综

7、合结果示例 2021-4-222021-4-22 【例例6-3】 信号与变量信号与变量_不同不同综合结果示例综合结果示例 2021-4-222021-4-22 【例例6-4】 信号与变量信号与变量_不同不同综合结果示例综合结果示例 2021-4-222021-4-22 【例【例6-6】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC); END mux4; ARCHITECTURE body_mux4 OF

8、 mux4 IS signal muxval : integer range 7 downto 0; BEGIN process(i0,i1,i2,i3,a,b) begin muxval = 0; if (a = 1) then muxval = muxval + 1; end if; if (b = 1) then muxval q q q q null; end case; end process; END body_mux4; 2021-4-222021-4-22 图图6-4 例例6-6的错误的工作时序的错误的工作时序 2021-4-222021-4-22 【例【例6-7】 LIBRA

9、RY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC); END mux4; ARCHITECTURE body_mux4 OF mux4 IS BEGIN process(i0,i1,i2,i3,a,b) variable muxval : integer range 7 downto 0; begin muxval := 0; if (a = 1) then muxval := muxval + 1; end if;

10、if (b = 1) then muxval := muxval + 2; end if; case muxval is when 0 = q q q q null; end case; end process; END body_mux4; 2021-4-222021-4-22 图图6-5 例例6-7的正确工作时序的正确工作时序 2021-4-222021-4-22 【例【例6-8】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY shift IS PORT (clk,c0: IN STD_LOGIC; md: in std_logic_v

11、ector(2 downto 0); d: in std_logic_vector(7 downto 0); qb: out std_logic_vector(7 downto 0); cn : OUT STD_LOGIC ); END ; 2021-4-222021-4-22 【例【例6-8】 ARCHITECTURE behav OF shift IS signal reg : std_logic_vector(7 downto 0); signal cy: STD_LOGIC; BEGIN PROCESS(clk,c0,md) BEGIN IF clkevent and clk=1 th

12、en CASE md is when 001=reg(0)=c0;reg(7 downto 1)=reg(6 downto 0);cyreg(0)=reg(7);reg(7 downto 1)reg(7)=reg(0);reg(6 downto 0)reg(7)=c0;reg(6 downto 0)=reg(7 downto 1);cyreg(7 downto 0) reg=reg;cy=cy; end case; end if; END PROCESS; qb(7 downto 0)=reg(7 downto 0);cn=cy; END ; 2021-4-222021-4-22 图图6-7

13、例例6-8的工作时序的工作时序 2021-4-222021-4-22 6.2 双向电路和三态控制电路设计双向电路和三态控制电路设计 【例【例6-9】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tri_s IS port ( enable : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0); dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END tri_s ; ARCHITECTURE bhv OF tri_s IS BEGIN PRO

14、CESS(enable,datain) BEGIN IF enable = 1 THEN dataout = datain ; ELSE dataout =ZZZZZZZZ ; END IF ; END PROCESS; END bhv; 图图6-8 8位位3态控制门电路态控制门电路 2021-4-222021-4-22 6.2 6.2 双向电路和三态控制电路设计双向电路和三态控制电路设计 【例【例6-10】 library ieee; use ieee.std_logic_1164.all; entity tri_state is port (control : in std_logic;

15、in1: in std_logic_vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0); end tri_state; architecture body_tri of tri_state is begin process(control,q,in1) begin if (control = 0) then x = q ; else q = in1; x=ZZZZZZZZ ; end if; end process; end body_tri; 2021

16、-4-222021-4-22 图图6-10 6-10 例例6-106-10的仿真波形图的仿真波形图 图图6-9 6-9 例例6-106-10的综合结果的综合结果 2021-4-222021-4-22 【例【例6-11】 (以上部分同上例)(以上部分同上例) process(control,q,in1) begin if (control=0) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZZZZ; end if; end process; end body_tri; 图图6-12 6-12 例例6-116-11的仿真波形图的仿真波形图 202

17、1-4-222021-4-22 2021-4-222021-4-22 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate2 IS port ( input3, input2, input1, input0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END tristate2 ; ARCHITECTURE multiple_driv

18、ers OF tristate2 IS BEGIN PROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output Z); END IF ; IF enable = 01 THEN output = input2 ; ELSE output Z); END IF ; IF enable = 10 THEN output = input1 ; ELSE output Z); END IF ; IF enable = 11 THEN output = in

19、put0 ; ELSE output Z); END IF ; END PROCESS; END multiple_drivers; 【例6-12】 2021-4-222021-4-22 图图6-13 6-13 例例6-126-12错误的综合结果错误的综合结果 2021-4-222021-4-22 library ieee; use ieee.std_logic_1164.all; entity tri is port (ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4 : in std_logic

20、_vector(7 downto 0); q : out std_logic_vector(7 downto 0) ); end tri; architecture body_tri of tri is begin q Z) ; q Z) ; q Z) ; q Z) ; end body_tri; 【例【例6-13】 2021-4-222021-4-22 6.3 IF6.3 IF语句概述语句概述 (1)IF 条件句条件句 Then 顺序语句顺序语句 END IF ; -不完整条件语句不完整条件语句( (时序电路时序电路) ) (2)IF 条件句条件句 Then 顺序语句顺序语句 ELSE 顺序

21、语句顺序语句 END IF ; -完整条件语句完整条件语句( (组合电路组合电路) ) 2021-4-222021-4-22 6.3 IF6.3 IF语句概述语句概述 (3)IF 条件句条件句 Then IF 条件句条件句 Then . END IF END IF -条件的相与性条件的相与性 (4)IF 条件句条件句 Then 顺序语句顺序语句 ELSIF END IF; IF RST = 1 THEN CQI := (OTHERS =0) ; ELSIF CLKEVENT AND CLK=1 THEN IF EN = 1 THEN IF CQI 0); END IF; END IF; END

22、 IF; 2021-4-222021-4-22 表表6-2 86-2 8线线-3-3线优先编码器真值表线优先编码器真值表 输输 入入 输输 出出 din0 din1 din2 din3 din4 din5 din6 din7 din0 din1 din2 din3 din4 din5 din6 din7 output0 output1 output2 output0 output1 output2 x x x x x x x 0 0 0 0 x x x x x x x 0 0 0 0 x x x x x x 0 1 1 0 0 x x x x x x 0 1 1 0 0 x x x x x 0

23、 1 1 0 1 0 x x x x x 0 1 1 0 1 0 x x x x 0 1 1 1 1 1 0 x x x x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x x 0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 注:表中的注:表中的“x”x”为任意,类似为任意,类似VHDLVHDL中的中的“”值。值。 6

24、.3 IF6.3 IF语句概述语句概述 2021-4-222021-4-22 6.3 IF6.3 IF语句概述语句概述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7); output : OUT STD_LOGIC_VECTOR(0 TO 2) ); END coder; ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCES

25、S (din) BEGIN IF (din(7)=0) THEN output = 000 ; ELSIF (din(6)=0) THEN output = “001 ; ELSIF (din(5)=0) THEN output = 010 ; ELSIF (din(4)=0) THEN output = “011 ; ELSIF (din(3)=0) THEN output = “100 ; ELSIF (din(2)=0) THEN output = “101 ; ELSIF (din(1)=0) THEN output = “110 ; ELSE output = 111 ; END I

26、F ; END PROCESS ; END behav; 优先编码优先编码 器的设计器的设计 【例【例6-156-15】 2021-4-222021-4-22 6.4.1 进程语句格式进程语句格式 PROCESS语句结构的一般表达格式如下语句结构的一般表达格式如下 进程标号进程标号: PROCESS ( : PROCESS ( 敏感信号参数表敏感信号参数表 ) IS) IS 进程说明部分进程说明部分 BEGIN BEGIN 顺序描述语句顺序描述语句 END PROCESS END PROCESS 进程标号进程标号; 6.4 6.4 进程语句进程语句归纳归纳 2021-4-222021-4-22

27、 6.4.2 PROCESS 组成组成 PROCESS语句结构语句结构 进程说明进程说明顺序描述语句顺序描述语句敏感信号参数表敏感信号参数表 信号赋值语句 变量赋值语句 进程启动语句 子程序调用语句 顺序描述语句 进程跳出语句 6.4 6.4 进程语句进程语句归纳归纳 2021-4-222021-4-22 6.4.3 进程要点进程要点 1. PROCESS1. PROCESS为一无为一无限循环语句限循环语句 2. PROCESS2. PROCESS中的顺序语句具有明显的顺序中的顺序语句具有明显的顺序/ /并行运行双重性并行运行双重性 3. 3. 进程必须由敏感信号的变化来启动进程必须由敏感信号的变化来启动 4. 4. 进程语句本身是并行语句进程语句本身是并行语句 6.4 6.4 进程语句进程语句归纳归纳 6. 6. 一个进程中只允许描述对应于一个时钟信号的同步时序一个进程中只允许描述对应于一个时钟信号的同步时序 逻辑逻辑 5. 5. 信号是多个进程间的通信线信号是多个进程间的通信线 2021-4-222

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论