武科大EDA试卷及答案(4)

2019-03-09 17:40

B <= 'Z'; Y <= A;

END IF;

END PROCESS;

END BEHAV;

六、综合题

下图是一个A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:控制器(Control)、地址计数器(addrcnt)、内嵌双口RAM(adram)。控制器(control)是一个状态机,完成AD574的控制,和adram的写入操作。Adram是一个LPM_RAM_DP单元,在wren为?1?时允许写入数据。试分别回答问题

信号预处理放大采样/保持AD574ADDataSTATUSCSCEA0AnalogInRCK12_8CLKClkInc112rddata12wrenadram(lpm_ram_dp)12rddatardaddr10Control10wraddrCntclr地址计数器FPGA采集控制

下面列出了AD574的控制方式和控制时序图

AD574逻辑控制真值表(X表示任意)

CE 0 X 1 1 1 1 1 CS X 1 0 0 0 0 0 RC X X 0 0 1 1 1 K12_8 X X X X 1 0 0 A0 X X 0 1 X 0 1 工 作 状 态 禁止 禁止 启动12位转换 启动8位转换 12位并行输出有效 高8位并行输出有效 低4位加上尾随4个0有效

AD574工作时序:

1. 要求AD574工作在12位转换模式,K12_8、A0在control中如何设置 K12_8为‘1’,A0为‘0’

2. 试画出control的状态机的状态图 类似书上图8-4

3. 对地址计数器模块进行VHDL描述

输入端口:clkinc 计数脉冲 cntclr 计数器清零 输出端口:rdaddr RAM读出地址,位宽10位

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity addr_cnt is

architecture one of addr_cnt is

signal tmp : std_logic_vector (9 downto 0); process (clkinc, cntclr) begin

if clkinc'event and clkinc = '1' then

if cntclr = '1' then

tmp <= (others => '0'); tmp <= tmp + 1; else end if;

begin

port ( clkinc, cntclr : in std_logic;

wraddr : out std_logic_vector (9 downto 0) );

end addr_cnt;

end if;

end process; wraddr <= tmp;

end one;

4. 根据状态图,试对control进行VHDL描述

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity control is

port ( addata : in std_logic_vector (11 downto 0);

status, clk : in std_logic;

cs, ce, a0, rc, k12_8, clkinc : out std_logic; rddata : out std_logic_vector (11 downto 0) );

end control;

architecture behav of control is

type con_st is (s0, s1, s2, s3, s4); signal cst, nst : con_st; signal lock : std_logic;

signal reg12 : std_logic_vector (11 downto 0); a0 <= '0'; k12_8 <= '1'; ce <= '1'; cs <= '0';

REGP : process (clk)

begin

begin

if clk'event and clk = '1' then

cst <= nst; end if;

end process;

COMP : process (cst, status, addata) begin

case (cst) is

when s0 => rc <= '1'; lock <= '0'; nst <= s1; when s1 => rc <= '0'; lock <= '0'; nst <= s2; when s2 => if status = '1' then nst <= s3; end if;

rc <= '1'; lock <= '0';

when s3 => rc <= '1'; lock <= '1'; nst <= s4; when s4 => rc <= '1'; lock <= '0'; nst <= s0; when others => nst <= s0;

end case;

end process;

LOCKP : process (lock) begin

if lock = '1' and lock'event then

reg12 <= addata; end if;

end process; rddata <= reg12;

clkinc <= lock; --(或者为NOT LOCK,延后半个时钟)

end behav;

5. 已知adram的端口描述如下

ENTITY adram IS PORT ( data : IN STD_LOGIC_VECTOR (11 DOWNTO 0); -- 写入数据 wraddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 写入地址 rdaddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 读地址 wren : IN STD_LOGIC := '1'; -- 写使能 q : OUT STD_LOGIC_VECTOR (11 DOWNTO 0) -- 读出数据 );

END adram;

试用例化语句,对整个FPGA采集控制模块进行VHDL描述

library ieee;

use ieee.std_logic_1164.all; entity daco is

port ( clk, cntclr, status : in std_logic;

addata : in std_logic_vector (11 downto 0); rdaddr : in std_logic_vector (9 downto 0); cs, ce, a0, rc, k12_8 : out std_logic;

rddata : out std_logic_vector (11 downto 0) );

end daco;

architecture one of daco is 址

wren q );

: IN STD_LOGIC := '1'; -- 写使能

: OUT STD_LOGIC_VECTOR (11 DOWNTO 0) -- 读出

component control is

port ( addata : in std_logic_vector (11 downto 0);

status, clk : in std_logic;

cs, ce, a0, rc, k12_8, clkinc : out std_logic; rddata : out std_logic_vector (11 downto 0) );

end component;

component addr_cnt is

port ( clkinc, cntclr : in std_logic;

wraddr : out std_logic_vector (9 downto 0) );

end component; component adram IS

PORT ( data

: IN STD_LOGIC_VECTOR (11 DOWNTO 0); -- 写入

数据

wraddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 写入rdaddress: IN STD_LOGIC_VECTOR (9 DOWNTO 0); -- 读地

地址

数据

END component;

signal rds : std_logic_vector (11 downto 0); signal clkinc : std_logic;

signal wraddr : std_logic_vector (9 downto 0); u1 : control

port map (addata => addata, status => status,

begin

clk => clk, cs => cs, ce => ce, a0 => a0, rc => rc, k12_8 => k12_8, clkinc => clkinc, rddata => rds);

u2 : addr_cnt port map (clkinc => clkinc, cntclr => cntclr, u3 : adram

port map (data => rds, wraddress => wraddr, rdaddress => rdaddr, wren => '1', q => rddata);

wraddr => wraddr);

end one;

EDA期末试卷

本大题得分 评 阅 人

一、填空题(本大题共10小题,每空1分,共20 分) 1.一般把EDA技术的发展分为 MOS时代 、 CMOS时代 和 ASIC 三个阶段。 2.EDA设计流程包括 设计输入 、 设计实现 、 实际设计检验 和 下载编程 四个步骤。

3.EDA设计输入主要包括 图形输入 、 HDL文本输入 和 状态机输入 。 4.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为 功能仿真 。

5.VHDL的数据对象包括 变量 、 常量 和 信号 ,它们是用来存放各种类型数据的容器。

6.图形文件设计结束后一定要通过 仿真 ,检查设计文件是否正确。 7.以EDA方式设计实现的电路设计文件,最终可以编程下载到 FPGA 和 CPLD 芯片中,完成硬件设计和验证。

8.MAX+PLUS的文本文件类型是(后缀名) .VHD 。

9.在PC上利用VHDL进行项目设计,不允许在 根目录 下进行,必须在根目录为设计建立一个工程目录(即文件夹)。

10.VHDL源程序的文件名应与 实体名 相同,否则无法通过编译。 本大题得分 评阅人 二、选择题:(本大题共5小题,每小题3分,共15 分)。

11. 在EDA工具中,能完成在目标系统器件上布局布线软件称为(C ) A.仿真器 B.综合器 C.适配器 D.下载器

12. 在执行MAX+PLUSⅡ的(D )命令,可以精确分析设计电路输入与输出波形间的延时量。

A .Create default symbol B. Simulator C. Compiler D.Timing Analyzer 13.VHDL常用的库是(A )

A. IEEE B.STD C. WORK D. PACKAGE 14.下面既是并行语句又是串行语句的是( C )

A.变量赋值 B.信号赋值 C.PROCESS语句 D.WHEN…ELSE语句 15.在VHDL中,用语句(D )表示clock的下降沿。

A. clock?EVENT B. clock?EVENT AND clock=?1? C. clock=?0? D. clock?EVENT AND clock=?0? 本大题得分 评 阅 人

三、名词解释题:(本大题共3题,每小题3分,共计9分) 16. EDA: 电子设计自动化

17.VHDL和FPGA: 超高速硬件描述语言 现场可编程门阵列 18.元件例化 :一个实体的结构体中引用某些元件,称为元件例化。

本大题得分 评 阅 人


武科大EDA试卷及答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:古代名言警句大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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