EDA技术复习大纲_第1页
EDA技术复习大纲_第2页
EDA技术复习大纲_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA 技术复习大纲1. 题型:填空,判断改错,编程题编程题、问答题,共 100 分。2. EDA、FPGA及quartus软件基础知识:如 quartus相关文件的后缀名; quartus 软件使用常用命令,如管脚分配,编 译,编程下载等3. 复习计数器、分频电路的设计、 7 段译码器设计、数字时 钟、数字秒表的设计。4. 编程题实体部分已经写好。EDA 复习基础知识要点1. EDA 的概念EDA< 电子设计自动化)是现代电子设计技术的核心。 EDA 就是依靠功能强大的电子计算 机,在 EDA 工具软件平台上,对以硬件描述语言 HDL 为系统逻辑描述手段完成的设计文 件,自动的完成逻辑

2、编译、化简、分割、综合优化仿真,直至下载到可编程逻辑器件CPLD/FPGA 或专用集成电路 ASIC 芯片中,实现既定的电子线路的功能。2. EDA 的发展阶段CAD 是 EDA 技术发展的早期阶段,此阶段仅仅使用计算机进行辅助绘图工作。CAE 是在 CAD 的工具逐步完善的基础上发展起来的,它开始用计算机将许多单点工具集 成在一起使用。20 世纪 90 年代电子技术的飞速发展促使现在的 EDA 技术的形成。出现了 EDA 设计的概 念,并发展至今天。3. EDA 设计流程 设计准备设计输入设计处理设计校验器件编程器件验证4. 设计输入的三种方式 原理图方式文本输入方式波形输入方式5. 设计处

3、理的步骤 设计编译和检查 < 信号线有无漏接,信号有无双重来源,关键词有无错误) 优化设计和综合 适配和分割 布局和布线 生成编程数据文件6. 常用对应的后缀名 原理图文件 .bdf VHDL 语言文件 .vhd Verilog HDL 文件 .v 仿真波形文件 .vwf7. 可编程逻辑器件的分类LDPLD 和高密度可编程逻辑 按集成密度分类 可编程逻辑器件从集成密度上可分为低密度可编程逻辑器件器件 HDPLD 两类。LDPLD 通常是指早期发展起来的、集成密度小于 1000 门/片左右的 PLD 如 ROM 、PLA、PAL 和 GAL 等。HDPLD 包括可擦除可编程逻辑器件 EPL

4、D<Erasable Programmable Logic Device )、复杂 可编程逻辑器件 CPLD<Complex PLD )和FPGA三种,其集成密度大于 1000门/片。如Altera 公司的 EPM9560,其密度为 12000 门 /片,Lattice 公司的 pLSI/ispLSI3320 为 14000 门 /片等。目前集成度最高的 HDPLD 可达 5 亿晶体管 /片以上。 按编程方式分类可编程逻辑器件的编程方式分为两类:一次性编程OTP<One Time Programmable)器件和可多次编程 MTP<Many Time Programma

5、ble )器件。OTP 器件是属于一次性使用的器件,只允许用户对器件编程一次,编程后不能修改,其 优点是可靠性与集成度高,抗干扰性强。MTP 器件是属于可多次重复使用的器件,允许用户对其进行多次编程、修改或设计,特 别适合于系统样机的研制和初级设计者的使用。 根据各种可编程元件的结构及编程方式,可编程逻辑器件通常又可以分为四类:a.采用一次性编程的熔丝 <Fuse)或反熔丝<Antifuse )元件的可编程器件,如PROM、PAL 和 EPLD 等。b .采用紫外线擦除、电可编程元件,即采用EPROM、UVCMOS 工艺结构 < 即指EEPROM 工艺结构)的可多次编程器件。

6、c. 采用电擦除、电可编程元件。其中一种是E2PROM,另一种是采用快闪存储器单元 <Flash Memory )结构的可多次编程器件。d. 基于基于查找表LUT、静态存储器 SRAM工艺的可多次编程器件。目前多数FPGA是基于 SRAM 结构的可编程器件。 按结构特点分类PLD 按结构特点分为阵列型 PLD 和现场可编程门阵列型 FPGA 两大类。阵列型 PLD的基本结构由与阵列和或阵列组成。简单PLD<如PROM、PLA、PAL和GAL 等)、 EPLD 和 CPLD 都属于阵列型 PLD。现场可编程门阵列型 FPGA 具有门阵列的结构形式,它有许多可编程单元 <或称逻辑

7、功能 块)排成阵列组成,称为单元型PLD。 按其结构的复杂程度及性能的不同分类一般可分为四种:SPLD、CPLD、FPGA及ISP器件。8.4种不同的可编程逻辑器件简单可编程逻辑器件 <SPLD )简单可编程逻辑器件 SPLD<Simple Programmable Logic Device )是可编程逻辑器件的早期 产品。最早出现在 20 世纪 70 年代,主要是可编程只读存储器 <PROM )、可编程逻辑阵 列<PLA )、可编程阵列逻辑<PAL )及通用阵列逻辑<GAL )器件等。简单 PLD的典型结 构是由与阵列及或阵列组成的,能有效实现以“乘积和”

8、为形式的布尔逻辑函数。 复杂可编程逻辑器件 <CPLD )复杂可编程逻辑器件 CPLD<Complex Programmable Logic Device )出现在 20 世纪 80 年代 末期。其结构上不同于早期 SPLD 的逻辑门编程,而是采用基于乘积项技术和 E2PROM< 或Flash)工艺的逻辑块编程,不但能实现各种时序逻辑控制,更适合做复杂的组合逻辑 电路。 现场可编程门阵列 <FPGA)现场可编程门阵列 FPGA<Field Programmable Gate Array )是由美国 Xilinx< 赛灵思)公司 率先开发的一种通用型用户可编程

9、器件。 FPGA 与 SPLD 和 CPLD 的结构完全不同,它不 包括与门和或门,目前应用最多的 FPGA 是采用对基于查找表技术和 SRAM 工艺的逻辑 块编程来实现所需的逻辑功能的。同 CPLD 相比,它的逻辑块的密度更高、触发器更多、 设计更灵活,多用于大规模电路的设计,尤其更适合做复杂的时序逻辑。但因为FPGA 采 用的是 SRAM 工艺,掉电后数据会丢失,因此实际应用时还须外挂一个 E2PROM 或 Flash Memory 来存储编程数据。 在系统可编程逻辑器件 <ISP) 在系统可编程逻辑器件 ISP<In-System Programmable PLD ,通常简称

10、 ISP-PLD )是 1992 年 由美国的 Lattice< 莱迪思)公司率先推出的。它是一种采用了在系统可编程技术的 PLD, 与传统编程技术的最大区别是它不使用编程器,而是通过下载电缆与计算机直接相连,用 户在自己设计的目标系统中直接对器件编程。这种全新的设计方法可以使可编程逻辑器件 先装配后编程,成为产品后还可以反复编程,使生产维护和系统更新都发生了革命性的变 化。在系统编程是使用一根下载电缆一端连在计算机的并行打印口上,另一端接在装配了可编 程逻辑器件的PCB板上的插头中 <目前大都使用JTAG 口),早期的PLD是不支持ISP技 术的,目前的CPLD、FPGA都支持I

11、SP技术可实现在线编程。8. ISP 概念ISP<In-System Programming )在系统可编程,指电路板上的空白器件可以编程写入最终用 户代码,而不需要从电路板上取下器件。9. VHDL 的概念VHDL 全 名 超 高 速 集 成 电 路 硬 件 描 述 语 言 <Very-High-Speed Integrated Circuit HardwareDescription Language )。其有以下几个特点: VHDL 具有强大的功能,覆盖面广,描述能力强。 VHDL 有良好的可读性。 VHDL 有良好的可移植性。 使用 VHDL 可以延长设计的生命周期。 VHD

12、L 支持大规模设计的分解和已有设计的再利用。 VHDL 有利于保护知识产权。1、2.基于EDA软件的FPGA/CPLD设计流程为:原理图/HDL文本输入宀 宀综合宀适配tt编程下载t硬件测试。A. 功能仿真B. 时序仿真C. 逻辑综合D. 配置3. IP 核在 EDA 技术和开发中具有十分重要的地位;提供用 VHDL 等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的 IP核为。A. 软 IPB. 固 IPC. 硬 IPD. 全对4. 综合是 EDA 设计流程的关键步骤,在下面对综合的描述中, 是错误的。A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程。B. 综合就是将

13、电路的高级语言转化成低级的,可与 FPGA / CPLD 的基本结构相映射的网表文 件。C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种 映射关系是唯一的 <即综合结果是唯一的)。5. 大规模可编程器件主要有FPGA、 CPLD 两类,其中 CPLD 通过 实现其逻辑功能。A. 可编程乘积项逻辑B. 查找表 <LUT )C. 输入缓冲D.输出缓冲6. VHDL 语言是一种结构化设计语言;一个设计实体<电路模块)包括实体与结构体两部分,结构体描述 。A. 器件外部特性

14、B.器件的内部功能C. 器件外部特性与内部功能D. 器件的综合约束7. 电子系统设计优化,主要考虑提高资源利用率减少功耗<即面积优化),以及提高运行速度<即速度优化);下列方法中 不属于面积优化。A. 流水线设计 B. 资源共享C. 逻辑优化 D. 串行化8. 进程中的信号赋值语句,其信号更新是 A. 立即完成B. 在进程的最后完成C. 按顺序完成D. 都不对9. 不完整的 IF 语句,其综合结果可实现 A. 时序逻辑电路B. 组合逻辑电路C. 双向电路D. 三态控制电路10. 状态机编码方式中,其中 占用触发器较多,但其简单的编码方式可减少状态译码组合逻辑资源,且易于控制非法状态

15、。A. 一位热码编码 B. 顺序编码C. 状态位直接输出型编码 D. 格雷码编码二、VHDL程序填空1. 下面程序是 1 位十进制计数器的 VHDL 描述,试补充完整。 LIBRARY IEEE 。USE IEEE.ALL 。USE IEEE.STD_LOGIC_UNSIGNED.ALL 。ENTITY CNT10 ISPORT ( CLK : IN STD_LOGIC。Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0>>END CNT10 。ARCHITECTURE bhv OF ISSIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO

16、 0>。BEGINPROCESS (CLK>IF THENIF Q1 > 10 THENQ1 <= (OTHERS => '0'>- 边沿检测- 置- 加1ELSEQ1 <= Q1 + 1END IF 。END IFEND PROCESSEND bhv 。2. 下面是一个多路选择器的VHDL 描述,试补充完整。LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL。ENTITY bmux ISPORT ( sel : STD_LOGIC 。A, B : IN STD_LOGIC_VECTOR(7 DOWNTO

17、 0> 。Y : STD_LOGIC_VECTOR(_DOWNTO 0>> 。END bmux 。ARCHITECTURE bhv OF bmux ISBEGINy <= A when sel = '1' END bhv 。三、VHDL程序改错仔细阅读下列程序,回答问题LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL。- 2ENTITY LED7SEG IS- 3PORT (A: IN STD_LOGIC_VECTOR(3 DOWNTO 0>- 4CLK : IN STD_LOGIC 。- 5LED7S : OUT S

18、TD_LOGIC_VECTOR(6 DOWNTO 0>> - 6END LED7SEG 。- 7ARCHITECTURE one OF LED7SEG IS- 8SIGNAL TMP : STD_LOGIC 。- 9BEGIN- 10SYNC : PROCESS(CLK, A>- 11BEGIN- 12IF CLK'EVENT AND CLK = '1' THEN- 13 TMP <= A 。- 14END IF 。- 15END PROCESS。- 16OUTLED : PROCESS(TMP>- 17BEGIN- 18CASE TMP

19、IS- 19WHEN "0000" => LED7S <= "0111111"。- 20WHEN "0001" => LED7S <= "0000110"。- 21WHEN "0010" => LED7S <= "1011011"。- 22WHEN "0011" => LED7S <= "1001111"。- 23WHEN "0100" => LED7S <

20、= "1100110"。- 24WHEN "0101" => LED7S <= "1101101"。- 25WHEN "0110" => LED7S <= "1111101"。- 26WHEN "0111" => LED7S <= "0000111"。- 27WHEN "1000" => LED7S <= "1111111"。- 28WHEN "1001&qu

21、ot; => LED7S <= "1101111"。- 29END CASE 。- 30END PROCESS。END one1. 在程序中存在两处错误,试指出,并说明理由:2. 修改相应行的程序:错误1行号:程序改为:错误2行号:程序改为:四、阅读下列VHDL程序,画出原理图RTL级)LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL 。ENTITY HAD ISPORT ( a : IN STD_LOGIC 。b : IN STD_LOGIC 。c : OUT STD_LOGIC 。d : OUT STD LOGIC>。

22、END ENTITY HAD ARCHITECTURE fh1 BEGINc <= NOT(a NAND b> 。 d <= (a OR b>AND(a NAND b>END ARCHITECTURE fh1 。五、请按题中要求写出相应1.带计数使能的异步复位计数器 输入端口:OF HAD ISVHDL程序elkrsten load data输出端口:2.看下面原理图,写出相应时钟信号异步复位信号计数使能同步装载装载)数据输入, 计数输出,位宽为VHDL描述位宽为1010六、分制成下要模控器addrcnt)、内嵌双口RAMadram )。控制器制,和 adram的

23、写入操作。 Adram 疋 据。试分别回答问题旦一个LPM<con trol)RAM DP合题图是一个A/D采集系统的部 求设计其中的FPGA采集控块,该模块由三个部分构 制器Control )、地址计数 是一个状态机,完成AD574的控单元,在 wren为时允许写入数F面列出了 AD574的控制方式和控制时序图AD574逻辑控制真值表X表示任意)CECSRCK12 8A0工作状态0XXXX禁止X1XXX禁止序:位转换模式,2.3.K12_8、A0在control中如何设置 试画出control的状态机的状态图 对地址计数器模块进行VHDL描述输入端口: clki nc计数脉冲计数器情零

24、RAM读出地址,位宽 10位cntclr输出端口: rdaddr根据状态图,试对 control进行VHDL描述已知adram的端口描述如下ENTITY adram ISPORT(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岀数据>。END adram 。试用例化语句,对整个EDA一、单项

25、选择题1、2.基于EDA软件的B_4.5.写入数据写入地址读地址写使能:OUT STD_LOGIC_VECTOR (11 DOWNTO 0> -FPGA采集控制模块进行 VHDL描述試卷答案FPGA/CPLD设计流程为:原理图/HDL文本输入-_A_-综合-适配P14-编程下载-硬件测试。100X0启动12位转换100X1启动8位转换1011X12位并行输岀有效10100高8位并行输岀有效10101低4位加上尾随4个0有效A.功能仿真B.时序仿真C.逻辑综合D.配置VHDL等硬件描述语言描述的功能IP 核为 A 。P253. IP核在EDA技术和开发中具有十分重要的地位;提供用 块,但不

26、涉及实现该功能块的具体电路的A.软 IPB.固 IPC.硬IPD.全对D是错误的。P154. 综合是EDA设计流程的关键步骤,在下面对综合的描述中,A. 综合就是把抽象设计层次中的一种表示转化成另一种表示的过程。B. 综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件。C. 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。D. 综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种 映射关系是唯一的 <即综合结果是唯一的)。5. 大规模可编程器件主要有FPGA、CPLD两类,其中 CPLD通过_A_实现

27、其逻辑功能。P42B.查找表<LUT)D.输出缓冲A.可编程乘积项逻辑C.输入缓冲6. VHDL 语言是一种结构化设计语言;一个设计实体电路模块)包括实体与结构体两部分,结构体描述B。 P274A. 器件外部特性C. 器件外部特性与内部功能B. 器件的内部功能D. 器件的综合约束D. 串行化B 。 P134B. 在进程的最后完成D. 都不对A_。 P147B. 组合逻辑电路D. 三态控制电路C. 状态位直接输出型编码二、VHDL程序填空D. 格雷码编码7. 电子系统设计优化,主要考虑提高资源利用率减少功耗即面积优化),以及提高运行速度 即速度优化);下列方法中 _A _不属于面积优化。

28、P238A. 流水线设计B. 资源共享C. 逻辑优化8. 进程中的信号赋值语句,其信号更新是A. 立即完成C. 按顺序完成9. 不完整的 IF 语句,其综合结果可实现A. 时序逻辑电路C. 双向电路10. 状态机编码方式中,其中 _A _占用触发器较多,但其简单的编码方式可减少状态译码组 合逻辑资源,且易于控制非法状态。 P221A. 一位热码编码B. 顺序编码1. 下面程序是 1 位十进制计数器的 VHDL 描述,试补充完整。 LIBRARY IEEE 。USE IEEE. STD_LOGIC_1164 .ALL 。USE IEEE.STD_LOGIC_UNSIGNED.ALL 。 ENTI

29、TY CNT10 ISPORT ( CLK : IN STD_LOGIC 。Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0>>END CNT10 。ARCHITECTURE bhv OF CNT10 ISSIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0>。BEGINPROCESS (CLK>BEGINIF CLK'EVENT AND CLK = '1' THEN - 边沿检测 IF Q1 > 10 THENQ1 <= (OTHERS => '0'>。-

30、置零ELSEQ1 <= Q1 + 1。- 加1END IF 。END IF 。END PROCESS 。Q <= Q1 。END bhv 。2. 下面是一个多路选择器的 VHDL 描述,试补充完整。LIBRARY IEEE 。USE IEEE.STD_LOGIC_ENTITY bmux ISPORT ( sel :1164.ALL。IN STD_LOGIC 。A, B : IN STD_LOGIC_VECTOR(7 DOWNTOY : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0>> 。END bmux 。ARCHITECTURE bhv OF bm

31、ux IS BEGINB。END bhv 。三、VHDL程序改错仔细阅读下列程序,回答问题LIBRARY IEEE 。- 1USE IEEE.STD_LOGIC_1164.ALL 。- 2ENTITY LED7SEG IS- 3PORT ( A: IN STD_LOGIC_VECTOR(3 DOWNTO 0>- 4CLK : IN STD_LOGIC 。- 5LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0>> - 6END LED7SEG 。- 7ARCHITECTURE one OF LED7SEG IS- 8 SIGNAL TMP : ST

32、D_LOGIC 。- 9BEGIN- 10SYNC : PROCESS(CLK, A>- 11BEGIN- 12IF CLK'EVENT AND CLK = '1' THEN- 13TMP <= A 。- 14END IF 。- 15END PROCESS。- 16OUTLED : PROCESS(TMP>- 17BEGIN- 18 CASE TMP IS- 19WHEN "0000" => LED7S <= "0111111"。- 20WHEN "0001" => LED7

33、S <= "0000110"。- 21WHEN "0010" => LED7S <= "1011011"。- 22WHEN "0011" => LED7S <= "1001111"。- 23WHEN "0100" => LED7S <= "1100110"。- 24WHEN "0101" => LED7S <= "1101101"。- 25WHEN "0

34、110" => LED7S <= "1111101"。- 26WHEN "0111" => LED7S <= "0000111"。- 27WHEN "1000" => LED7S <= "1111111"。- 28WHEN "1001" => LED7S <= "1101111"。-29END CASE。-30END PROCESSo-31END one 。-321. 在程序中存在两处错误,试指出,

35、并说明理由:第14行TMP附值错误第29与30行之间,缺少 WHEN OTHERS语句2. 修改相应行的程序:错误1行号:9程序改为:TMP : STD_LOGIC_VECTOR(3 DOWNTO 0>。错误2行号:29程序改为:该语句后添加 WHEN OTHERS => LED7S <= "0000000"。四、阅读下列VHDL程序,画出原理图<RTL级)LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL 。ENTITY HAD ISPORT ( a : IN STD_LOGIC 。b : IN STD_LOGIC

36、。c : OUT STD_LOGIC 。d : OUT STD_LOGIC>oEND ENTITY HAD 。ARCHITECTURE fh1 OF HAD ISBEGINc <= NOT(a NAND b> 。d <= (a OR b>AND(a NAND b>。END ARCHITECTURE fh1 。五、请按题中要求写出相应VHDL程序1.带计数使能的异步复位计数器输入端口:elk时钟信号rst异步复位信号en计数使能load同步装载data装载)数据输入,位宽为 10输出端口:q计数输出,位宽为10LIBRARY IEEE 。USE IEEE.ST

37、D_LOGIC_1164.ALL 。USE IEEE.STD_LOGIC_UNSIGNED.ALL ENTITY CNT1024 ISPORT (CLK, RST, EN, LOAD: IN STD_LOGIC。DATA : IN STD_LOGIC_VECTOR (9 DOWNTO 0>Q : OUT STD_LOGIC_VECTOR (9 DOWNTO 0> >END CNT1024。ARCHITECTURE ONE OF CNT1024 IS BEGINPROCESS (CLK, RST, EN, LOAD, DATA>VARIABLE Q1 : STD_LOGI

38、C_VECTOR (9 DOWNTO 0>。BEGINIF RST = '1' THENQ1 := (OTHERS => 'O'>。ELSIF CLK = '1' AND CLK'EVENT THENIF LOAD = '1' THENQ1 := DATA 。ELSEIF EN = '1' THENQ1 := Q1 + 1。END IF。END IF。END IF。Q v= Q1 oEND PROCESSoEND ONE o2. 看下面原理图,写出相应VHDL描述LIBRARY IEEE

39、。USE IEEE.STD_LOGIC_1164.ALL 。ENTITY TRI_STATE ISPORT ( E, A : IN STD_LOGIC 。Y : INOUT STD_LOGIC 。 B : OUT STD_LOGIC> 。END TRI_STATE 。ARCHITECTURE BEHAV OF TRI_STATE ISBEGINPROCESS (E, A, Y>BEGINIF E = 'O' THENB <= Y oY <= 'Z' oELSEB <= 'Z' oY <= A oEND IF o

40、END PROCESS oEND BEHAV o六、综合题下图是一个 A/D采集系统的部分,要求设计其中的FPGA采集控制模块,该模块由三个部分构成:控制器 <Control )、地址计数器vaddrcnt)、内嵌双口RAMvadram )。控制器vcontrol)是一个状 态机, 完成 AD574的控制,和 adram的写入操作。Adram 是一个LPM_RAM_DP单元,在wren为时允许写入数据。试分别回答问题FPG采集控制F面列出了 AD574的控制方式和控制时序图CECSRCK12 8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011

41、X12位并行输岀有效10100高8位并行输岀有效10101低4位加上尾随4个0有效AD574逻辑控制真值表X表示任意)RCSTATUS、 20ug AD574工作时m 1. 要求AD574工作在12K12_8、A0在control中如何设置K12_8 为1 ',A0 为0'2. 试画出control的状态机的状态图类似书上图8-4序:位转换模式3.对地址计数器模块进行VHDL描述输入端口:clk inc计数脉冲cntclr计数器清零输出端口: rdaddrRAM读出地址,位宽10位library ieee 。use ieee.std_logic_1164.all。use iee

42、e.std_logic_unsigned.all。entity addr_cnt isport ( clkinc, cntclr : in std_logic。wraddr : out std_logic_vector(9downto0> >。end addr_cnt 。architecture one of addr_cnt issignal tmp : std_logic_vector (9 downto 0> beginprocess (clkinc, cntclr>beginif clkinc'event and clkinc = '1'

43、 thenif cntclr = '1' thentmp <= (others => '0'> elsetmp <= tmp + 1。end if 。end ifend process wraddr <= tmp end one 。4.根据状态图,试对 library ieee 。use ieee.std_logic_1164.all use ieee.std_logic_unsigned.all entity control isport (control进行VHDL描述addata : in std_logic_vector (

44、11 downto 0> status, clk : in std_logic cs, ce,aO, rc, k12_8,clkincoutstd_logicrddataout std_logic_vector(11downto0> >。end control 。 architecture behav of control istype con_st is (s0, s1, s2, s3, s4>。signal cst, nst : con_st 。signal lock : std_logic 。signal reg12 : std_logic_vector (11

45、downto 0>。begina0 <= '0' 。k12_8 <= '1' 。ce <= '1'。cs <= '0'。REGP : process (clk>beginif clk'event and clk = '1' then cst <= nst。end if 。end process 。COMP : process (cst, status, addata>begincase (cst> iswhen s0 => rc <= 

46、9;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 <

47、=s4 。when s4 => rc <= '1'。 lock <= '0' 。 nst <=s0 。when others => nst <= s0。end case 。end process 。LOCKP : process (lock> beginif lock = '1' and lock'event then reg12 <= addata 。end if 。end process 。 rddata <= reg12。clkinc <= lock。 -( 或者为 NOT

48、 LOCK ,延后半个时钟 >end behav5. 已知 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 DO

49、WNTO 0> - 读出数据>。 END adram试用例化语句,对整个 FPGA 采集控制模块进行 VHDL 描述 library ieee 。use ieee.std_logic_1164.all 。 entity daco isport (clk, cntclr, status : in std_logic addata : instd_logic_vector(11 downtordaddr : in std_logic_vector (9 downto 0>(11 downtocs, ce, a0, rc, k12_8 : out std_logicrddata :

50、 out std_logic_ve: instd_logic_vector(11status, clk :in std_logic。cs, ce,a0, rc, k12_8,clkincrddata: out std_logic_vectordowntoout(110> > 。end daco 。 architecture one of daco iscomponent control is port ( addata 0> 。std_logic 。downto 0> > 。end component 。 component addr_cnt isport (cl

51、kinc, cntclr : in std_logicwraddr downto 0> > 。end component 。 component adram IS PORT ( data : IN 0>。 - 写入数据 wraddress:IN0> 。 - 写入地址 rdaddress:IN0> 。 - 读地址outstd_logic_vectorSTD_LOGIC_VECTORSTD_LOGIC_VECTORSTD_LOGIC_VECTOR(9(11(9(9DOWNTODOWNTODOWNTOwren: IN STD_LOGIC := '1' 。

52、 - 写使能q : OUT STD_LOGIC_VECTOR (11 DOWNTO 0> - 读出数据>。END component 。rdaddress => rdaddr, wren =>signal rds : std_logic_vector (11 downto 0>。u1 : controlportmap(addata=>addata,status=>status,clk=> clk,cs=> cs,ce => ce,a0=> a0, rc => rc,k12_8 => k12_8,clkinc=>

53、 clkinc,rddata => rds> 。u2 : addr_cntportmap(clkinc=>clkinc,cntclr=>cntclr, wraddr => wraddr>。u3 : adramportmap (data=> rds,wraddress=>signal clkinc : std_logic 。signal wraddr : std_logic_vector (9 downto 0> beginwraddr,'1', q => rddata> end one 。全加器的VHDL程序设计

54、:全加器的逻辑表达式为:Co =<a?b)+<a?ci ) +<b ?ci )Quartus II 中创建一个 EDA 项目的流程。 计数和分频综合题ENTITY DVF ISPORT ( CLK : IN STD_LOGIC 。D : IN STD_LOGIC_VECTOR(7 DOWNTO 0> 。FOUT : OUT STD_LOGIC > 。END。ARCHITECTURE one OF DVF ISSIGNAL FULL : STD_LOGIC 。BEGINP_REG: PROCESS(CLK>VARIABLE CNT8 : STD_L0GIC_V

55、ECT0R(7 DOWNTO 0>。BEGINIF CLK'EVENT AND CLK = '1' THENIF CNT8 = "11111111" THENCNT8 := D。FULL <= '1'。ELSE CNT8 := CNT8 + 1。FULL <= 'O'。END IF。 END IF。END PROCESS P_REG。P_DIV: PROCESS(FULL>VARIABLE CNT2 : STD_LOGIC 。BEGINIF FULL'EVENT AND FULL = &

56、#39;1' THENCNT2 := NOT CNT2。IF CNT2 = '1' THEN FOUT <= '1'。ELSE FOUT <= '0'。END IF。 END IF。END PROCESS P_DIV。END。<1) 上述VHDL描述所实现的功能是一一数控分频器,D端口输入不同的数据,可以得到不同的分频输出。<2)已知CLK时钟频率是10MHZ要使输出信号的频率 FOU为50KHZ该如何实现?根据 分频原理:_ ac ,所以输入端口 D端口应该输入数据为156,标准逻辑矢量形式为:“ 1001110

57、0”,即D端口应该输入数据“ 10011100 ”,即可实现 FOUT为50KHZ数字秒表设计-用VHDL语句设计一个数字秒表,该秒表计时从 059秒<提示:60进制计数 器)。ENTITY FEN60 ISPORT(CLK : IN STD_LOGIC 。-时钟信号为 1HZRST : IN STD_LOGIC。QOUT1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0>。-秒低位QOUT2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0>。-秒高位CARRY : OUT STD_LOGIC>。-进位输出,每计满 60秒时为1E

58、ND FEN60。architecture behave of fen60 issignal tem1:std_logic_vector(3 downto 0>。signal tem2:std_logic_vector(3 downto 0>。beginprocess(clk,rst>beginif(rst='O'>thentem1<="0000"。tem2<="0000"。elsif clk'event and clk='1' thenif te m1= "1001" thentem1<="0000"if tem2="0101" then tem

温馨提示

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

评论

0/150

提交评论