EDA技术实用教程答案—潘松

2026/1/27 2:08:18

QQ<=(OTHERS=>‘0’);

END IF; END PROCESS; Q1<=QQ; END;

……………………… (2)电平触发复位信号 …………………….

ARCHITECTURE bhv 0F DFF3 IS SIGNAL QQ:STD_LOGIC; BEGIN

PROCESS(CLK) BEGIN

IF RST=‘1' THEN

QQ<=(OTHERS=>‘0’);

END IF; END PROCESS; Q1<=QQ; END;

………………………

6-7 什么是重载函数?重载算符有何用处?如何调用重载算符函数? 答:(1)什么是重载函数? 根据操作对象变换处理功能。

(2)重载算符有何用处? 用于两个不同类型的操作数据自动转换成同种数据类型,并进行运算处理。 (3)如何调用重载算符函数?采用隐式方式调用,无需事先声明。

6-8 判断下面三个程序中是否有错误,若有则指出错误所在,并给出完整程序。 程序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?

7-2 LPM_ROM、LPM_RAM、LPM_FIFO等模块与FPGA中嵌入的EAB、ESB、M4K有怎样的联系? 答:ACEXlK系列为EAB;APEX20K系列为ESB;Cyclone系列为M4K

第八章

8-1仿照例8-1,将例8-4单进程用两个进程,即一个时序进程,一个组合进程表达出来。 --解:【例8-4】的改写如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS

PORT(DATAIN: IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST: IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END MOORE1;

ARCHITECTURE behav OF MOORE1 IS

TYPE ST_TYPE IS (ST0,ST1,ST2,ST3,ST4); SIGNAL C_ST,N_ST: ST_TYPE; BEGIN

REG: PROCESS(CLK,RST) BEGIN

IF RST='1' THEN C_ST<=ST0; -- Q<=\ ELSIF CLK'EVENT AND CLK='1' THEN C_ST<=N_ST; END IF;

END PROCESS REG;

COM: PROCESS(C_ST,DATAIN) BEGIN

CASE C_ST IS

WHEN ST0=> IF DATAIN=\ ELSE N_ST<=ST0; END IF; Q<=\

WHEN ST1=> IF DATAIN=\ ELSE N_ST<=ST1 ;END IF; Q<=\

WHEN ST2=> IF DATAIN=\ ELSE N_ST<=ST0 ;END IF; Q<=\

WHEN ST3=> IF DATAIN=\ ELSE N_ST<=ST2; END IF; Q<=\

WHEN ST4=>IF DATAIN=\ ELSE N_ST<=ST3 ;END IF; Q<=\ WHEN OTHERS=> N_ST<=ST0;

END CASE;

END PROCESS COM; END behav;

8-2为确保例8-5(2进程Mealy型状态机)的状态机输出信号没有毛刺,试用例8-4的方式构成一个单进程状态,使输出信号得到可靠锁存,在相同输入信号条件下,给出两程序的仿真波形。 --解:【例8-5】改写如下: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY1 IS

PORT(CLK,DATAIN,RESET: IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); END MEALY1;

ARCHITECTURE behav OF MEALY1 IS

TYPE states IS (st0,st1,st2,st3,st4); SIGNAL STX: states; BEGIN

PROCESS(CLK,RESET) --单一进程 BEGIN

IF RESET='1' THEN STX<=ST0;

ELSIF CLK'EVENT AND CLK='1' THEN CASE STX IS

WHEN st0=> IF DATAIN='1' THEN STX<=st1; END IF; IF DATAIN='1' THEN Q<=\

ELSE Q<=\ WHEN st1=> IF DATAIN='0' THEN STX<=st2; END IF; IF DATAIN='0' THEN Q<=\

ELSE Q<=\ WHEN st2=> IF DATAIN='1' THEN STX<=st3; END IF; IF DATAIN='1' THEN Q<=\

ELSE Q<=\ WHEN st3=> IF DATAIN='0' THEN STX<=st4; END IF; IF DATAIN='0' THEN Q<=\

ELSE Q<=\ WHEN st4=> IF DATAIN='1' THEN STX<=st0; END IF; IF DATAIN='1' THEN Q<=\

ELSE Q<=\ WHEN OTHERS=> STX<=st0; Q<=\ END CASE; END IF; END PROCESS; END behav;

图8-6控制ADC0809采样状态图

-- 【例8-2】根据图8-6状态图,采用Moore型状态机,设计ADC0809采样控制器。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADCINT IS

PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --来自0809转换好的8位数据 CLK: IN STD_LOGIC; --状态机工作时钟

EOC: IN STD_LOGIC; --转换状态指示,低电平表示正在转换 ALE:OUT STD_LOGIC; --8个模拟信号通道地址锁存信号 START:OUT STD_LOGIC; --转换开始信号

OE:OUT STD_LOGIC; --数据输出三态控制信号 ADDA:OUT STD_LOGIC; --信号通道最低位控制信号 LOCK0:OUT STD_LOGIC; --观察数据锁存时钟

Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --8位数据输出 END ADCINT;

ARCHITECTURE behav OF ADCINT IS

TYPE states IS(st0,st1,St2,st3,st4); --定义各状态子类型 SIGNAL current_state,next_state: states:=st0; SIGNAL REGL: STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL LOCK: STD_LOGIC;--转换后数据输出锁存时钟信号 BEGIN

ADDA<='1';--当ADDA<='0',模拟信号进入通道IN0;当ADDA<='1',则进入通道INI Q<=REGL;LOCK0<=LOCK;

COM: PROCESS(current_state,EOC) BEGIN --规定各状态转换方式 CASE current_state IS

WHEN st0=> ALE<='0';START<='0';LOCK<='0';OE<='0'; next_state<=st1; --0809初始化

WHEN st1=> ALE<='1';START<='1';LOCK<='0';OE<='0'; next_state<=st2 ;--启动采样

WHEN st2=> ALE<='0';START<='0';LOCK<='0'; OE<='0';

IF(EOC='1') THEN next_state<=st3;--EOC=1表明转换结束 ELSE next_state<=st2; END IF; --转换未结束,继续等待 WHEN st3=> ALE<='0';START<='0';LOCK<='0';OE<='1';

next_state<=st4;--开启OE,输出转换好的数据


EDA技术实用教程答案—潘松.doc 将本文的Word文档下载到电脑
搜索更多关于: EDA技术实用教程答案—潘松 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219