EDA期末考试题大全
eda期末考试复习题

eda期末考试复习题EDA期末考试复习题一、选择题(每题2分,共20分)1. EDA(Electronic Design Automation)是指:A. 电子设计自动化B. 电子数据交换C. 电子文档自动化D. 电子设备自动化2. 在EDA工具中,用于设计和仿真数字逻辑电路的软件是:A. MATLABB. VHDLC. SPICED. AutoCAD3. 下列哪个不是硬件描述语言(HDL)?A. VerilogB. VHDLC. C++D. SystemVerilog4. FPGA(Field-Programmable Gate Array)是一种:A. 可编程逻辑器件B. 微处理器C. 存储器D. 网络设备5. 在VHDL中,以下哪个关键字用于定义实体?A. entityB. architectureC. processD. package6. 以下哪个是模拟电路设计中常用的EDA工具?A. Quartus IIB. ModelSimC. CadenceD. Xilinx ISE7. 以下哪个不是数字电路设计中的基本逻辑门?A. ANDB. ORC. NOTD. XOR8. 在VHDL中,以下哪个是并行赋值语句?A. ifB. caseC. loopD. when9. 在EDA设计流程中,仿真验证的目的是:A. 检查电路是否能正常工作B. 检查电路的物理尺寸C. 检查电路的功耗D. 检查电路的散热性能10. 以下哪个不是EDA设计流程中的步骤?A. 电路设计B. 仿真验证C. 版图设计D. 电路测试二、填空题(每空2分,共20分)11. 在VHDL中,用于定义端口的关键字是________。
12. FPGA的编程方式包括________和________。
13. 一个完整的EDA设计流程通常包括________、________、________、________和________。
14. 在数字电路设计中,________是一种用于描述电路行为的建模方式。
eda期末考试试题及答案

eda期末考试试题及答案EDA期末考试试题及答案一、选择题(每题2分,共20分)1. EDA(电子设计自动化)主要应用于以下哪个领域?A. 机械设计B. 建筑设计C. 电子电路设计D. 软件开发答案:C2. 在EDA软件中,以下哪个不是常见的设计流程?A. 原理图设计B. 电路仿真C. 手动布线D. 封装设计答案:C3. 下列哪个不是EDA工具的组成部分?A. 原理图编辑器B. PCB布局工具C. 3D建模软件D. 仿真分析工具答案:C4. 在EDA设计中,PCB指的是什么?A. 印刷电路板B. 个人计算机C. 程序控制板D. 功率控制板答案:A5. 以下哪个是EDA设计中常用的文件格式?A. .txtB. .pdfC. .schD. .jpg答案:C...(此处省略其他选择题)二、简答题(每题10分,共30分)1. 简述EDA设计流程的主要步骤。
答案:EDA设计流程通常包括原理图设计、电路仿真、PCB布局、布线、封装设计、测试与验证等步骤。
2. 解释什么是PCB布线,并说明其重要性。
答案:PCB布线是指在印刷电路板上将电子元件的引脚通过导电路径连接起来的过程。
布线的重要性在于它直接影响电路的性能、可靠性和生产成本。
3. 描述电路仿真在EDA设计中的作用。
答案:电路仿真在EDA设计中用于模拟电路在不同条件下的行为,帮助设计者预测电路的性能,优化设计,并在实际制造之前发现潜在的问题。
三、计算题(每题15分,共30分)1. 给定一个简单的RC电路,计算其时间常数τ。
答案:时间常数τ是电容C和电阻R的乘积,即τ = R * C。
2. 假设一个电路的输入信号频率为1kHz,计算其周期T。
答案:周期T是频率f的倒数,即T = 1/f = 1/1000Hz = 1ms。
四、设计题(20分)设计一个简单的放大器电路,并使用EDA工具绘制其原理图。
答案:(此处应有原理图,但无法提供图像,故省略)五、论述题(20分)论述在现代电子设计中,EDA工具的重要性及其对设计流程的影响。
EDA技术期末试卷含答案资料

精品文档一、单项选择题(30分)9.嵌套使用IF语句,其综合结果可实现 A 。
A.带优先级且条件相与的逻辑电路1.以下描述错误的是 C B.条件相或的逻辑电路C.三态控制电路是A.QuartusIIAltera提供的FPGA/CPLD集成开发环境D.双向控制电路10.在VHDLAlteraB.是世界上最大的可编程逻辑器件供应商之一语言中,下列对时钟边沿检测描述中,错误的是 D 。
A.if clk'event and clk = ‘1' then B.if falling_edge(clk) then 前一代C.MAX+plusII是AlteraFPGA/CPLD集成开发环境QuartusII的更C.if clk'event and clk = ‘0' then 新换代新产品D.if clk'stable and not clk = ‘1' then11.下列那个流程是正确的基于.DQuartusII完全支持VHDL、Verilog的设计流程EDA软件的FPGA / CPLD设计流程 BA.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试开发工具中的专用综合器的是2.以下工具中属于FPGA/CPLD BB.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试C .Active HDL D.QuartusII Leonardo Spectrum .AModelSim B.C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试;.3以下器件中属于Xilinx 公司生产的是 C/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试D.BMAX系列器件.原理图A.ispLSI系列器件)语句的语句结构及语法规则语言中,下列对进程(PROCESS系列器件C.XC9500系列器件D.FLEX 12.在VHDL 。
A 的描述中,正确的是以下关于信号和变量的描述中错误的是4. B为一无限循环语句;敏感信号发生更新时启动进程,执行完..信号是描述硬件系统的基本数据对象,它的性质类似于连接线PROCESSAA .信号的定义范围是结构体、进程B 成后,等待下一次进程启动C.除了没有方向说明以外,信号与实体的端口概念是一致的B.敏感信号参数表中,应列出进程中使用的所有输入信号CD.在进程中不能将变量列入敏感信号列表中.进程由说明部分、结构体部分、和敏感信号参数表三部分组成D.当前进程中声明的变量也可用于其他进程以下关于状态机的描述中正确的是5. BB MooreA.型状态机其输出是当前状态和所有输入的函数13.下列语句中,不属于并行语句的是语句B.CASE 型的输出变化要领先一个时钟周期型状态机相比,.与BMooreMealy A.进程语句…语句…ELSE D.WHEN .元件例化语句MealyC.型状态机其输出是当前状态的函数 C设计现行工作VHDL语言共支持四种常用库,其中哪种库是用户的14.以上都不对D .VHDL B 下列标识符中,.库是不合法的标识符。
eda技术实用教程期末考试题及答案

eda技术实用教程期末考试题及答案一、选择题(每题2分,共20分)1. EDA技术中,FPGA代表的是()。
A. 现场可编程逻辑阵列B. 现场可编程门阵列C. 现场可编程逻辑器件D. 现场可编程门器件答案:B2. 在EDA技术中,VHDL是一种()。
A. 硬件描述语言B. 软件描述语言C. 系统描述语言D. 网络描述语言答案:A3. 下列哪个不是EDA工具的主要功能()。
A. 逻辑综合B. 电路仿真C. 代码编译D. 布局布线答案:C4. 在VHDL中,下列哪个关键字用于定义并行语句()。
A. ifB. beginC. loopD. process答案:B5. 在EDA技术中,用于测试和验证数字电路的EDA工具是()。
A. 逻辑综合工具B. 电路仿真工具C. 布局布线工具D. 测试生成工具答案:B6. 下列哪个不是FPGA的配置方式()。
A. 在系统可编程B. 串行配置C. 并行配置D. 网络配置答案:D7. 在VHDL中,用于定义信号的关键字是()。
B. constantC. signalD. type答案:C8. 在EDA技术中,用于描述数字电路行为的模型是()。
A. 结构模型B. 数据流模型C. 行为模型D. 混合模型答案:C9. 在VHDL中,下列哪个关键字用于定义过程()。
A. procedureB. functionD. entity答案:C10. 在EDA技术中,用于优化电路性能的EDA工具是()。
A. 逻辑综合工具B. 电路仿真工具C. 布局布线工具D. 测试生成工具答案:C二、填空题(每题2分,共20分)1. EDA技术中的“EDA”代表的是______、______和______。
答案:电子设计自动化2. VHDL中的并发语句包括______、______、______和______。
答案:信号赋值、条件信号赋值、选择信号赋值、元件实例化3. 在FPGA设计中,______是用于存储配置数据的非易失性存储器。
EDA期末复习题试题

复习题(开卷)一、填空题与简答题1、ASIC的中文含义是:专用集成电路。
2、在VHDL中主要有哪三种重载现象参数类型的重载;参数数目的重载;函数返回类型的重载。
3、简单可编程逻辑器件的主要有PROM、PLA、PAL、GAL4、CPLD内部含有多个逻辑单元块,每个逻辑单元块相当于一个GAL器件:5、在设计中,常常采用的设计方法有直接设计方法、自顶向下和自底向上的设计方法。
6、CPLD的一般采用“与-或阵列”结构。
7、一个完整的VHDL程序包括库、程序包、实体、结构体和配置五个部分。
8、PLD的中文含义是:可编程逻辑器件。
9、“与-或”结构的可编程逻辑器件主要由四部分构成:输入电路、可编程“与”阵列、可编程或阵列、输出电路10、FPGA的一般采用“查找表”结构。
11.VHDL的全拼Very high speed integrated Hardware Description Language12.子程序有即过程(PROCEDURE)、函数〔FUNCTION〕两种类型。
13、CPLD的中文含义是复杂可编程逻辑器件。
14、复杂可编程逻辑器件的主要有CPLD 和FPGA 。
15、FPGA的中文含义是现场可编程门阵列。
16.CPLD的基本结构看成由可编程逻辑宏单元可编程I/O控制模块和可编程内部连线组成。
17.FPGA由可编程逻辑块(CLB)、可编程互连单元(I/O)和可编程互连三种可编程电路和一个SRAM结构的配置存储单元组成。
18.EDA:电子设计自动化B:逻辑阵列块20.ESB:嵌入式系统块21.FAST TRACK:快速通道22.同步:各个逻辑单元共用一个时钟23.信号与变量使用时有何区别?答:(1)值的代入形式不同。
(2)变量值可以送给信号,信号值不能送给变量。
(3)信号是全局量,变量是局部量。
(4)操作过程不同。
24.VHDL语言在结构上分为哪几部分?答:VHDL语言在结构上一般分为实体(ENTITY)与结构体(ARCHITECTURE)两大部分。
EDA技术实用教程期末考试

一.填空题1.术语CPLD表示什么意思?(a)(a)复杂可编程逻辑器件;(b)组合可编程逻辑器件;(c)组合可编程局部器件.2.术语FPGA表示(b).(a)正规的可编程门阵列;(b)现场可编程门阵列;(c)有限可编程门阵列。
3.术语HDL代表(a)(a)硬件描述语言; (b)美元崇拜者;(c)硬件开发语言; (d)高级设计语言。
4.关于自上而下的EDA设计,选择所有正确的说法.(abcdef)(a)可做到更好的资源分配;(b)使得每一个小的功能模块可以被单独仿真;(c)加速仿真;(d)使器件的行为建模更容易;(e)导致一个低功耗的设计;(f)可在设计组的各成员之间有效地分割一个设计项目5。
测试的10/10规则是(C )。
(a)应该每10天测试10次。
(b)对于设计的每个10%的部分应该进行10次测试.(c)测试电路的规模不应超过整个电路规模的10%,而且设计和调试测试电路所占用的时间不应超过设计和调试原电路所用时间的10%.6.术语“功能仿真"的含义是(a)(a)仿真一个设计的功能如何,而不关心其定时;(b)仿真一个设计的功能等效性;(c)仿真设计所代表的精确功能;(d)仿真一个设计的功能和时间特性。
7。
VHDL程序输入方法主要有(原理图输入法),(文本输入法)和(参数化宏功能块LPM设计法)8.下列说法正确的是(a,c)(a)进程的启动必须有敏感信号;(b)进程语句process 必须有敏感信号列表;(c)进程可以用wait语句启动;(d)进程中的语句顺序颠倒一下不会改变所描述电路的功能.9.VHDL用于综合的数据类型主要有(标量)型、复合型和子类型,其中第一种类型包括所有的简单类型如(整数型)、(实数型)、(枚举型)等.10。
VHDL中的数据对象有(信号)、(变量)、(常量)三种,端口属于(信号)。
11。
下列有关时钟上升沿触发的描述正确的是(a,d,e)。
(a)clock'event and clock=’1’;(b)not clock’stable and clock=’0’;(c)clock'event; (d)clock’event and(clock'last_lalue=’0');(e)rising_edge(clock).12。
EDA期末试卷

《EDA》期末试卷一、选择题(每小题3分,共30分)1、在下图中,F0的逻辑关系为:A.A0⊕A1 B.A0⊙A1 C.A0·A1 D.A0·A12、在VHDL中,用语句()表示clock的下降沿。
A.clock='1'B.clock'EVENT AND clock='1'C.clock='0'D.clock'EVENT AND clock='0'3、如果p1=’1’,p2=’1’,则执行z <= a WHEN p1 = '1' ELSE b WHEN p2 = '1' ELSE c ;之后z 的值为:A.aB.bC.cD.不确定4、进程中的信号赋值语句,其信号更新是:A.按顺序完成 B.比变量更快完成 C.在进程最后完成 D.都不对5、不完整的IF语句,其综合结果可实现:A.时序逻辑电路B.组合逻辑电路C.双向电路D.三态控制电路6、reg的数据类型为std_logic_vector(7 downto 0),初值为FF,执行reg(0)<=’0’;reg(7 downto 1)<=reg(6 downto 0);之后,reg的值为:A.FF B.FE C.FC D.FD7、在VHDL中()不能将信息带出对它定义的当前进程。
A. 信号B. 常量C. 数据D. 变量8、执行下列语句后Q的值等于:……SIGNAL E: STD_LOGIC_VECTOR (2 TO 5);SIGNAL Q: STD_LOGIC_VECTOR (9 DOWNTO 2);……E<=(2=>’1’, 4=>’1’, OTHERS=>’0’);Q<=(2=>E (2), 4=>E (3), 5=>’1’, 7=>E (5), OTHERS=>E (4));……A.”11011011”B.”00110100”C.”11011001”D.”00101100”9、在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面那个赋值语句是错误的。
(完整word版)EDA期末考试试卷及答案

第1页(共5页)班级 学号 姓名密 封 线 内 不 得 答 题一、单项选择题(30分,每题2分) 1.以下关于适配描述错误的是 BA .适配器的功能是将综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件B .适配所选定的目标器件可以不属于原综合器指定的目标器件系列C .适配完成后可以利用适配所产生的仿真文件作精确的时序仿真D .通常,EDAL 软件中的综合器可由专业的第三方EDA 公司提供,而适配器则需由FPGA/CPLD 供应商提供2.VHDL 语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。
A .器件外部特性B .器件的综合约束C .器件外部特性与内部功能D .器件的内部功能 3.下列标识符中, B 是不合法的标识符。
A .State0B .9moonC .Not_Ack_0D .signall4.以下工具中属于FPGA/CPLD 集成化开发工具的是 DA .ModelSimB .Synplify ProC .MA TLABD .QuartusII 5.进程中的变量赋值语句,其变量更新是 A 。
A .立即完成B .按顺序完成C .在进程的最后完成D .都不对6.以下关于CASE 语句描述中错误的是 AA .CASE 语句执行中可以不必选中所列条件名的一条B .除非所有条件句的选择值能完整覆盖CASE 语句中表达式的取值,否则最末一个条件句的选择必须加上最后一句“WHEN OTHERS=><顺序语句>”C .CASE 语句中的选择值只能出现一次D . WHEN 条件句中的选择值或标识符所代表的值必须在表达式的取值范围7.以下哪个程序包是数字系统设计中最重要最常用的程序包 B A .STD_LOGIC_ARITH B .STD_LOGIC_1164C .STD_LOGIC_UNSIGNEDD .STD_LOGIC_SIGNED8.基于EDA 软件的FPGA / CPLD 设计流程为:原理图/HDL 文本输入→ A →综合→适配→时序仿真→编程下载→硬件测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附带:一.问答题1信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?●信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。
信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。
●信号赋值符号为“<=”变量赋值用“:=”。
信号赋值符号用于信号赋值动作,不立即生效。
变量,赋值符号用于变量赋值动作,立即生效。
2进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?●进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。
当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。
3什么是库、程序包、子程序、过程调用和函数调用?●库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。
子程序由过程和函数组成。
在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。
若子程序调用的是一个过程,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。
过程调用、函数调用都是子程序调用。
二.改错题1.已知sel为STD_LOGIC_VECTOR(1 DOWNTO 0)类型的信号,而a、b、c、d、q均为STD_LOGIC类型的信号,请判断下面给出的CASE语句程序片段:●CASE sel IS●WHEN“00”=>q<=a;●WHEN“01”=>q<=b;●WHEN“10”=>q<=c;●WHEN“11”=>q<=d;●END CASE;●答案:CASE语句缺“WHEN OTHERS”语句。
2.已知data_in1, data_in2为STD_LOGIC_VECTOR(15 DOWNTO 0) 类型的输入端口,data_out为STD_LOGIC_VECTOR(15 DOWNTO 0)类型的输出端口,add_sub为STD_LOGIC类型的输入端口,请判断下面给出的程序片段:●LIBRARY IEEE;●USE IEEE.STD_LOGIC_1164.ALL;●ENTITY add IS● PORT(data_in1, data_in2:IN INTEGER;● data_out:OUT INTEGER);●END add;●ARCHTECTURE add_arch OF add IS●CONSTANT a:INTEGER<=2;●BEGIN●data_out<=( data_in1+ data_in2) * a;●END addsub_arch;答案:常量声明时赋初值的“<=”符号应改用“:=”符号。
3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片段:●ARCHITECTURE test_arch OF test IS●BEGIN●SIGNAL B:STD_LOGIC;●Q<= B;END test_arch答案:信号SIGNAL的声明语句应该放在BEGIN语句之前。
4.已知A和Q均为BIT类型的信号,请判断下面的程序片段:●ARCHITECTURE archtest OF test IS●BEGIN●CASE A IS●WHEN ‘0’=>Q<=‘1’;●WHEN ‘1’=>Q<=‘0’;●END CASE;●END archtest;答案:CASE语句应该存在于进程PROCESS内。
三.程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER4B IS --4位二进制并行加法器PORT(CIN:IN STD_LOGIC; --低位进位A: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位加数B: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位被加数S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --4位和CONT: OUT STD_LOGIC);END ADDER4B;ARCHITECTURE ART OF ADDER4B ISSIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL AA,BB: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINAA<='0'& A; --将4位加数矢量扩为5位,为进位提供空间 BB<='0'& B; --将4位被加数矢量扩为5位,为进位提供空间 SINT<=AA+BB+CIN ;S<=SINT(3 DOWNTO 0);CONT<=SINT(4);END ART;2@ 8位二进制加法器的源程序ADDER8B.VHD LIBRARY IEEE;USE IEEE_STD.LOGIC_1164.ALL;USE IEEE_STD.LOGIC_UNSIGNED.ALL:ENTITY ADDER8B IS--由4位二进制并行加法器级联而成的8位二进制加法器PORT(CIN:IN STD_LOGIC;A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT:OUT STD_LOGIC);END ADDER8B;ARCHICTURE ART OF ADDER8B ISCOMPONENET ADDER4B--对要调用的元件ADDER4B的界面端口进行定义PORT(CIN:IN STD_LOGIC;A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CONT:OUT STD_LOGIC);END COMPONENT ;SIGNAL CARRY_OUT:STD_LOGIC; --4位加法器的进位标志BEGINU1:ADDER4B --例化(安装)一个4位二进制加法器U1PORT MAP(CIN=>CIN,A=>A(3 DOWNTO 0),B=>B(3 DOWNTO0),S=>S(3 DOWNTO 0),COUT=>CARRY_OUT);U2:ADDER4B --例化(安装)一个4位二进制加法器U2PORT MAP(CIN=>CARRY_OUT,A=>A(7 DOWNTO 4),B=>B(7 DOWNTO 4), S=>S (7 DOWNTO 4);CONT=>CONT);END ART;3.@触发器和缓冲器D触发器:Process(clk) beginif(clk’event and clk=‘1’) thenq <= d;end if;end process;缓冲器:Process(clk)beginif(clk=‘1’) thenq <= d;end if; end process;T触发器:Process(clk)beginif(clk’event and clk=‘1’) thenif(t = ‘1’) thenq <= not(q);elseq <= q;end if;end if;end process;4.@16位锁存器的源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B IS --16位锁存器PORT (CLK:IN STD_LOGIC;--锁存信号CLR:IN STD_LOGIC;--清零信号D:IN STD_LOGIC_VECTOR (8 DOWNTO 0) --8位数据输入 Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--16位数据输出END REG16B;ARCHITECTURE ART OF REG16B ISSIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);--16位寄存器设置BEGINPROCESS (CLK,CLR)BEGINIF CLR = '1' THEN R16S<= "00000";--异步复位信号ELSIF CLK'EVENT AND CLK = '1' THEN--时钟到来时,锁存输入值R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1);--右移低8位R16S(15 DOWNTO 7)<=D;--将输入锁到高能位END IF;END PROCESS;Q<=R16S;END ART;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;--8位右移寄存器ENTITY SREG8B ISPORT (CLK:IN STD_LOGIC; LOAD :IN STD _LOGIC;BIN:IN STD_LOGIC_VECTOR(7DOWNTO 0);QB:OUT STD_LOGIC );END SREG8B;ARCHITECTURE ART OF SREG8B ISSIGNAL REG8B:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINPROCESS (CLK,LOAD)BEGINIF CLK'EVENT AND CLK= '1' THENIF LOAD = '1' THEN REG8<=DIN;--装载新数据 ELSE REG8(6 DOWNTO0)<=REG8(7 DOWNTO 1);--数据右移END IF;END IF;END PROCESS;QB<= REG8 (0);--输出最低位END ART;6@8位乘法器的源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; --8位乘法器顶层设计ENTITY MULTI8X8 ISPORT(CLK:IN STD_LOGIC;START:IN STD_LOGIC;--乘法启动信号,高电平复位与加载,低电平运算A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位被乘数B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); --8位乘数ARIEND:OUT STD_LOGIC; --乘法运算结束标志位DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--16位乘积输出END MULTI8X8;ARCHITECTURE ART OF MULTI8X8 ISCOMPONENT ARICTL --待调用的乘法控制器端口定义PORT(CLK:IN STD_LOGIC;START:IN STD_LOGIC;CLKOUT:OUT STD_LOGIC;RSTALL:OUT STD_LOGIC;ARIEND:OUT STD_LOGIC);END COMPONENT;COMPONENT ANDARITH --待调用的控制与门端口定义PORT(ABIN:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT:OUT_STD_LOGIC_VECTOR( 7 DOWNTO 0) );END COMPONENT;COMPONENT ADDER8B --待调用的8位加法器端口定义COMPONENT SREG8B --待调用的8位右移寄存器端口定义...COMPONENT REG16B --待调用的16右移寄存器端口定义...SIGNAL GNDINT:STD_LOGIC;SIGNAL INTCLK:STD_LOGIC;SIGNAL RSTALL:STD_LOGIC;SIGNAL QB:STD_LOGIC;SIGNAL ANDSD:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DTBIN:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL DTBOUT:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINDOUT<=DTBOUT;GNDINT<= '0';U1:ARICTL PORT MAP(CLK=>CLK, START=>START,CLKOUT=>INTCLK, RSTALL=>RSTALL, ARIEND=>ARIEND);U2:SREG8B PORT MAP(CLK=>INTCLK, LOAD=>RSTALL.DIN=>B, QB=>QB);U3:ANDARITH PORT MAP(ABIN=>QB,DIN=>A,DOUT=>ANDSD);U4:ADDER8B PORTMAP(CIN=>GNDINT,A=>DTBOUT(15 DOWNTO 8),B=>ANDSD, S=>DTBIN(7 DOWNTO 0),COUT =>DTBIN(8));U5:REG16B PORT MAP(CLK =>INTCLK,CLR=>RSTALL,D=>DTBIN, Q=>DTBOUT);END ART;7@有时钟使能的十进制计数器的源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;--有时钟使能的十进制计数器ENTITY CNT10 ISPORT (CLK:IN STD_LOGIC;--计数时钟信号CLR:IN STD_LOGIC;--清零信号END:IN STD_LOGIC;--计数使能信号CQ:OUT INTEGER RANGE 0 TO 15; --4位计数结果输出CARRY_OUT:OUT STD_LOGIC); --计数进位END CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI :INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA)BEGINIF CLR= '1' THEN CQI<= 0;--计数器异步清零ELSIF CLK'EVENT AND CLK= '1' THENIF ENA= '1' THENIF CQI<9 THEN CQI<=CQI+1;ELSE CQI<=0;END IF;--等于9,则计数器清零END IF;END IF;END PROCESS;PROCESS (CQI)BEGINIF CQI=9 THEN CARRY_OUT<= '1';--进位输出ELSE CARRY_OUT<= '0';END IF;END PROCESS;CQ<=CQI;END ART;8@) 六进制计数器的源程序CNT6.VHD(十进制计数器的源程序CNT10.VHD与此类似)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 ISPORT (CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA: IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT: OUT STD_LOGIC );END CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)BEGINIF CLR='1' THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENIF CQI=“0101” THEN CQI<=“0000”;ELSE CQI<=CQI+'1';END IF;END IF;END IF;END PROCESS;PROCESS(CQI)BEGINIF CQI=“0000” THEN CARRY_O UT<='1';ELSE CARRY_OUT<='0';END IF;END PROCESS;CQ<=CQI;END ART;9@十进制计数器LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count10 ISPORT(clk: IN STD_LOGIC;seg: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END count10;ARCHITECTURE a1 OF count10 ISsignal sec: STD_LOGIC;signal q : STD_LOGIC_VECTOR(21 DOWNTO 0);signal num: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINprocess(clk) ----get 1 hz clock pulsebeginif clk'event and clk='1' then q<=q+1; end if;sec<=q(21); --get 1 hz clock pulseend process;timing: process(sec) beginif sec'event and sec='1' thenif num<9 then num<=num+1; else num<="0000"; end if; end if;end process;B1: block --bcd-7segsBegin --gfedcbaseg<= "0111111" when num=0 else"0000110" when num=1 else"1011011" when num=2 else"1001111" when num=3 else"1100110" when num=4 else"1101101" when num=5 else"1111101" when num=6 else"0000111" when num=7 else"1111111" when num=8 else"1101111" when num=9 else"0000000";end block;END a1;10@4MHz到1Hz的分频器LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count ISPORT( clk: in STD_LOGIC;q: out STD_LOGIC;END count;ARCHITECTURE a OF count ISsignal tmp: STD_LOGIC_vector(21 downto 0);Beginprocess(clk) beginif clk'event and clk='1' then tmp<=tmp+1;end if; end process;q<=tmp(21);END a;11@与门ENTITY shili2 isport (input1 : in std_logic; inptu2 : in std_logic; output1 : out std_logic );end entity;architecture one of shili2 is beginoutput1<=input1 and input2; end entity;12@.四输入与门电路library ieee;use ieee.std_logic_1164.all;entity and4 isport(a,b,c,d:in std_logic; y:out std_logic; end and4;architecture and4_1 of and4 is beginy<= a and b and c and d;end nand4_1; 法二(与非门):library ieee;use ieee.std_logic_1164.all entity nand4 isport(a.b,c,d:in std_logic;y:out std_logic); end nand4;architecture nand4_2 of nand4 si beginp1:process(a,b,c,d)variabletmp:std_logic_vector(3 downto 0); begintmp:=a&b&c&d;case tmp iswhen"0000"=>y<='1';when"0001"=>y<='1';when"0010"=>y<='1';when"0011"=>y<='1';when"0100"=>y<='1';when"0101"=>y<='1';when"0110"=>y<='1';when"0111"=>y<='1';when"1000"=>y<='1';when"1001"=>y<='1';when"1010"=>y<='1';when"1011"=>y<='1';when"1100"=>y<='1';when"1101"=>y<='1';when"1110"=>y<='1';when"1111"=>y<='1';when others=>y<='x';end case;end process;end nand4_2;13@四位全加器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity add isport(a,b:in std_logic_vector(3 downto 0); cin:in std_logic;s:out std_logic_vector(3 downto 0); cout:out std_logic);end add;architecture beh of add isbeginprocess(a,b,cin)ariable x:std_logic_vector(3 downto 0); variable m,n,l:integer;beginm:=conv_integer(a);n:=conv_integer(b);l:=m+n+conv_integer(cin);x:=conv_std_logic_vector(l,4);s<=x(3 downto 0);cout<=x(3);end process;end beh;14@N位移位寄存器:page7015@8位通用寄存器:page13716@串入串出移位寄存器:page13817@10位计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT ( CLK ,clr : IN STD_LOGIC ;CQ : OUT STD_LOGIC_VECTOR ( 3 DOWNTO 0 ));END ENTITY CNT10;ARCHITECTURE ONE OF CNT10 ISBEGINPROCESS ( CLK , clr )VARIABLE LCQ : STD_LOGIC_VECTOR ( 3 DOWNTO 0 );BEGINIF RST = ‘1’ THEN LCQ := “0000”;ELSIF CLK’EVENT AND CLK = ‘1’ THENIF LCQ < 9 THEN LCQ := LCQ + 1;ELSE LCQ := “0000” ;END IF; END IF;CQ <= LCQ ;END PROCESS;END ARCHITECTURE ONE;18@八位串行二进制全加器use ieee.std_logic_1164.all;entity product_adder_subtracter isport(a,b:in std_logic_vector(7 downto 0);s:out std_logic_vector(8 downto 0));end;architecture behavioral of product_adder_subtracter isbeginbehavior:process(a,b) isvariable carry_in:std_logic;variable carry_out:std_logic;variable op2:std_logic_vector(b'range);beginop2:=b;end if;for index in 0 to 7 loopcarry_in:=carry_out;s(index)<=a(index) xor op2(index)xor carry_in ;carry_out:=(a(index)and op2(index))or(carry_in and (a(index) xor op2(index))); end loop;s(8)<=a(7) xor op2(7) xor carry_out;end process;end;EDA知识要点:1、目前流行的HDL语言有那些?;2、什么是ASIC。