《EDA技术》复习(期末)_第1页
《EDA技术》复习(期末)_第2页
《EDA技术》复习(期末)_第3页
《EDA技术》复习(期末)_第4页
《EDA技术》复习(期末)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1 EDA 技术应用技术应用复习提纲复习提纲 一、VHDL 程序分析处理 1 画出与以下实体描述对应的原理图符号元件: ENTITY buf3s IS -实体 1:三态缓冲器 PORT(input:IN STD_LOGIC; -输入端 enable:IN STD_LOGIC; -使能端 output:OUT STD_LOGIC); -输出端 END buf3s ; buf3s input output enable ENTITY mux21 IS -实体 2: 2 选 1 多路选择器 PORT(in0, in1,sel: IN STD_LOGIC; output:OUT STD_LOGIC); mux21 in0 output in1 sel 2 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的 VHDL 描述。 解:边沿触发复位信号要将复位信号放在进程的敏感信号表中。 (1)边沿触发复位信号 . ARCHITECTURE bhv 0F DFF3 IS SIGNAL QQ:STD_LOGIC; BEGIN PROCESS(RST) BEGIN IF RSTEVENT AND RST=1 THEN QQ0); END IF; END PROCESS; Q1=QQ; END; 2 (2)电平触发复位信号 . ARCHITECTURE bhv 0F DFF3 IS SIGNAL QQ:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF RST=1 THEN QQ0); END IF; END PROCESS; Q1=QQ; END; 3 判断下面三个程序中是否有错误,若有则指出错误所在,并给出完整程序。 程序 1: Signal A,EN : std_logic; Process(A, EN) Variable B: std_log ic; Begin if EN=l then B=A; end if; -将“B=A”改成“B:=A” end process; 程序 2: Architecture one of sample is variable a,b,c:integer; begin c=a+b; -将“c=a+b”改成“c:=a+b” end; 程序 3: library ieee; use ieee.std_logic_1164.all; entity mux21 is PORT(a,b:in std_logic; sel:in std_loglc;c:out std_logle;); -将“;)”改成“)” end sam2; -将“sam2”改成“entity mux21” architecture one of mux2l is begin -增加“process(a,b,sel) begin” if sel= 0 then c:=a; else c:=b; end if; -应改成“if sel= 0 then c=a; else c=b; end if;” -增加“end process;” end two; -将“two”改成“architecture one” 3 二、电路设计应用 【例 3-1】2 选 1 多路选择器 图 3-1 mux21a 实体 图 3-2 mux21a 结构体 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21a IS PORT(a,b,s:IN BIT; y:OUT BIT); END ENTITY mux21a; ARCHITECTURE one 0F mux21a IS BEGIN PROCESS(a,b,s) BEGIN IF s=0 THEN y=a; ELSE y=b; ENDIF; END PROCESS; 3-2 图 3-16 所示的是 4 选 1 多路选择器,试分别用 IF_THEN 语句和 CASE 语句的表达方 式写出此电路的 VHDL 程序,选择控制信号 s1 和 s0 的数据类型为 STD_LOGIC_VECTOR; 当 s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和 s1=1,s0=1时,分别执行 y=a、y=b、y=c、y=d。 图图 3-16 4 选选 1 多路选择器多路选择器 -解 1:用 IF_THEN 语句实现 4 选 1 多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; 4 s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCHITECTURE if_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据 BEGIN s0s1=s1 -s1 相并 s0,即 s1 与 s0 并置操作 PROCESS(s0s1,a,b,c,d) BEGIN IF s0s1 = 00 THEN y = a; ELSIF s0s1 = 01 THEN y = b; ELSIF s0s1 = 10 THEN y = c; ELSE y = d; END IF; END PROCESS; END ARCHITECTURE if_mux41; -解 2:用 CASE 语句实现 4 选 1 多路选择器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41 IS PORT (a,b,c,d: IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41; ARCHITECTURE case_mux41 OF mux41 IS SIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据类型 BEGIN s0s1 y y y y NULL ; END CASE; END PROCESS; END ARCHITECTURE case_mux41; 3-7 给出 1 位全减器的 VHDL 描述;最终实现 8 位全减器。要求: 1)首先设计 1 位半减器,然后用例化语句将它们连接起来,图 4-20 中 h_suber 是半减器, 5 diff 是输出差(diff=x-y),s_out 是借位输出(s_out=1,xy),sub_in 是借位输入。 图 3-19 1 位全加器 -解(1.1):实现 1 位半减器 h_suber(diff=x-y;s_out=1,xy) LIBRARY IEEE; -半减器描述(1):布尔方程描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_suber IS PORT( x,y: IN STD_LOGIC; diff,s_out: OUT STD_LOGIC); END ENTITY h_suber; ARCHITECTURE hs1 OF h_suber IS BEGIN Diff yin,diff=a,s_out=b); u2: h_suber PORT MAP(x=a,y=sub_in,diff=diff_out,s_out=c); sub_out = c OR b; END ARCHITECTURE fs1; 三、状态机设计应用三、状态机设计应用 【例 7-2】根据图 7-5 状态图,采用 Moore 型状态机,设计 ADC0809 采样控制器。 xin yin a b diff_out c 6 图 7-5 控制 ADC0809 采样状态图 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADC0809 IS PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自 0809 转换好的 8 位数据 CLK: IN STD_LOGIC; -状态机工作时钟 RST: IN STD_LOGIC; -系统复位控制 EOC: IN STD_LOGIC; -转换状态指示,低电平表示正在转换 ALE:OUT STD_LOGIC; -8 个模拟信号通道地址锁存信号 START:OUT STD_LOGIC; -转换开始信号 OE:OUT STD_LOGIC; -数据输出三态控制信号 ADDA:OUT STD_LOGIC; -信号通道最低位控制信号 LOCK_T:OUT STD_LOGIC; -观察数据锁存时钟 Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8 位数据输出 END ADC0809; ARCHITECTURE behav OF ADC0809 IS TYPE states IS(st0,st1,St2,st3,st4); -定义各状态子类型 SIGNAL cs,next_state: states:=st0; SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK: STD_LOGIC;-转换后数据输出锁存时钟信号 BEGIN ADDA=1;-当 ADDA=0,选择模拟信号通道 IN0;当 ADDA=1,则选择通道 IN1 LOCK_T ALE=0;START=0;LOCK=0;OE=0; next_state ALE=1;START=1;LOCK=0;OE=0; next_state ALE=0;START=0;LOCK=0; OE=0; IF(EOC=1) THEN next_state=st3;-EOC=1 表明转换结束 7 ELSE next_state ALE=0;START=0;LOCK=0;OE=1; next_state ALE=0;START=0;LOCK=1;OE=1;next_statenext_state=st0; END CASE; END PROCESS COM; REG:PROCESS(CLK,RST) BEGIN IF(RST=1) THEN cs=next_state; ELSIF(CLKEVENT AND CLK=1) THEN cs=next_state; END IF; END PROCESS REG; -由信号 cs 将当前状态值带出此进程:REG LATCH1: PROCESS(LOCK) -此进程中,在 LOCK 的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL=D; END IF; END PROCESS LATCH1; Q IF DIN=1 THEN NST=s1; ELSE NST IF DIN=1 THEN NST=s2; ELSE NST IF DIN=0 THEN NST=s3; ELSE NST IF DIN=1 THEN NST=s4; ELSE NST IF DIN=0 THEN NST=s5; ELSE NST IF DIN=0 THEN NST=s6; ELSE NST IF DIN=1 THEN NST=s7; ELSE NST IF DIN=1 THEN NST=s8; ELSE NST IF DIN=0 THEN NST=s3; ELSE NST NST=s0; 8 END CASE; END PROCESS COM; REG: PROCESS(CLK,RST) -时序进程 BEGIN IF RST=1 THEN ST=s0; -状态复位到 s0 ELSIF CLKEVENT AND CLK=1 THEN ST=NST; -进入下一状态 END IF; END PROCESS REG; SOUT=1 WHEN ST=s8 ELSE 0; END behav; 【例 7-7】高位在前的序列捡测器“例 7-4(双进程) ”改进为单进程状态机。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT(DIN,CLK,RST: IN STD_LOGIC; -串行输入数据位/工作时钟/复位信号 SOUT: OUT STD_LOGIC);-检测结果输出 END SCHK; ARCHITECTURE behav OF SCHK IS TYPE states IS (s0,s1,s2,s3,s4,s5,s6,s7,s8); -定义各状态 SIGNAL ST,NST: states:=s0;-设定各状态变量和次态变量 BEGIN PROCESS(ST,DIN) -组合进程,规定各状态转换方式 BEGIN IF RST=1 THEN ST=s0; ELSIF CLKEVENT AND CLK=1 THEN ST IF DIN=1 THEN NST=s1; ELSE NST IF DIN=1 THEN NST=s2; ELSE NST IF DIN=0 THEN NST=s3; ELSE NST IF DIN=1 THEN NST=s4; ELSE NST IF DIN=0 THEN NST=s5; ELSE NST IF DIN=0 THEN NST=s6; ELSE NST IF DIN=1 THEN NST=s7; ELSE NST IF DIN=1 THEN NST=s8; ELSE NST IF DIN=0 THEN NST=s3; ELSE NST NST=s0; END CASE; IF ST=s8 THEN SOUT=1 ; ELSE SOUT=0; END IF; END IF; END PROCESS; END behav; 9 7-17-1 根据图根据图 7-30(a)7-30(a)所示的状态图,分别按照所示的状态图,分别按照图图 7-30(b)7-30(b)和和图图 7-30(c)7-30(c)写出对应结构的写出对应结构的 VHDLVHDL 状态机。状态机。 图 7-30 习题 7-1 状态图 - 解:根据图 7-30(a)所示的状态图,按照图 7-30(b)单进程状态机端口形式,编写的 VHDL 程序代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY state_8_16_a_b IS PORT( ina: IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK,RESET: IN STD_LOGIC; outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ENTITY state_8_16_a_b; ARCHITECTURE behav OF state_8_16_a_b IS TYPE ST_TYPE IS(S0,S1,S2,S3); SIGNAL C_ST: ST_TYPE; BEGIN FSM: PROCESS(CLK,RESET) BEGIN IF RESET=1 THEN C_ST C_ST=S1; IF ina=101 THEN outa=0010; ELSIF ina=111 THEN outa IF ina=110 THEN C_ST=S2; ELSE C_ST=S1; 10 END IF; outa IF ina=011 THEN C_ST=S1; ELSIF ina=100 THEN C_ST=S3; ELSE C_ST=S2; END IF; outa C_ST=S0; IF ina=101 THEN outa=1101; ELSIF ina=011 THEN outa=1110; ELSE outaC_ST=S0; END CASE; END IF; END PROCESS FSM; END ARCHITECTURE behav; - 解:根据图 7-30(a)所示的状态图,按照图 7-30(c)双进程状态机端口形式,编写的 VHDL 程序代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY state_8_16_a_c IS PORT( ina: IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK,RESET: IN STD_LOGIC; outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END state_8_16_a_c; ARCHITECTURE behav OF state_8_16_a_c IS TYPE ST_TYPE IS (S0,S1,S2,S3); SIGNAL C_ST,N_ST: ST_TYPE; BEGIN REG: PROCESS(CLK,RESET) -主控时序进程 BEGIN IF RESET=1 THEN C_ST=S0; -检测异步复位信号 ELSIF CLK=1 AND CLKEVENT THEN C_ST N_ST=S1; IF ina=101 THEN outa=0010; ELSIF ina=111 THEN outa=1100; 11 -ELSE outa IF ina=110 THEN N_ST=S2; ELSE N_ST=S1; END IF; outa IF ina=011 THEN N_ST=S1; ELSIF ina=100 THEN N_ST=S3; ELSE N_ST=S2; END IF; outa N_ST=S0; IF ina=101 THEN outa=1101; ELSIF ina=011 THEN outa=1110; ELSE outaN_ST=S0; END CASE; END PROCESS COM; END ARCHITECTURE behav; 7-37-3 用用 MealyMealy 机类型,写出控制机类型,写出控制 ADC0809ADC0809 采样的状态机。采样的状态机。 -解:根据图 7-5 状态图,采用 Mealy 型状态机,设计 ADC0809 采样控制器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADC0809 IS PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -来自 0809 转换好的 8 位数据 CLK: IN STD_LOGIC; -状态机工作时钟 RST: IN STD_LOGIC; -系统复位控制 EOC: IN STD_LOGIC; -转换状态指示,低电平表示正在转换 ALE:OUT STD_LOGIC; -8 个模拟信号通道地址锁存信号 START:OUT STD_LOGIC; -转换开始信号 OE:OUT STD_LOGIC; -数据输出三态控制信号 ADDA:OUT STD_LOGIC; -信号通道最低位控制信号 LOCK_T:OUT STD_LOGIC; -观察数据锁存时钟 Q:OUT ST

温馨提示

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

评论

0/150

提交评论