eda技术实用教程verilog答案Word文件下载.docx
《eda技术实用教程verilog答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《eda技术实用教程verilog答案Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。
![eda技术实用教程verilog答案Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/60dfd53d-633b-43b7-aa5e-8a75ef0d0c20/60dfd53d-633b-43b7-aa5e-8a75ef0d0c201.gif)
h_suber是半减器,diff是输出差
axin(diff=x-y),s_out是借位输出(s_out=1,xy),sub_in是借位输入。
diff_outcyin
b
图3-191位全加器
--解(1.1):
实现1位半减器h_suber(diff=x-y;
s_out=1,xy)libraryieee;
entityh_suberisport(x,y:
diff,s_out:
endentityh_suber;
architecturehs1ofh_suberisbegin
diff=xxor(noty);
s_out=(notx)andy;
endarchitecturehs1;
--解(1.2):
采用例化实现图4-20的1位全减器libraryieee;
--1位二进制全减器顺层设计描述use
ieee.std_logic_1164.all;
entityf_suberisport(xin,yin,sub_in:
sub_out,diff_out:
endentityf_suber;
architecturefs1off_suberis
componenth_suber--调用半减器声明语句port(x,y:
diff,s_out:
endcomponent;
signala,b,c:
std_logic;
--定义1个信号作为内部的连接线。
begin
u1:
h_suberportmap(x=xin,y=yin,diff=a,s_out=b);
u2:
h_suberportmap(x=a,y=sub_in,diff=diff_out,s_out=c);
sub_out=cor
b;
endarchitecturefs1;
(2)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是x-y-sun_in=difft)。
串行借位的8位减法器diff1diff0soutdiff7
--解
(2):
采用例化方法,以1位全减器为基本硬件;
实现串行借位的8位减法器(上图所示)。
entitysuber_8isport(x0,x1,x2,x3,x4,x5,x6,x7:
y0,y1,y2,y3,y4,y5,y6,y7,sin:
instd_logic;
diff0,diff1,diff2,diff3:
outstd_logic;
diff4,diff5,diff6,diff7,sout:
endentitysuber_8;
architectures8ofsuber_8is
componentf_suber--调用全减器声明语句port(xin,yin,sub_in:
sub_out,diff_out:
signala0,a1,a2,a3,a4,a5,a6:
--定义1个信号作为内部
的连接线。
beginu0:
f_suberportmap(xin=x0,yin=y0,diff_out=diff0,sub_in=sin,sub_out=a0);
f_suberportmap(xin=x1,yin=y1,diff_out=diff1,sub_in=a0,sub_out=a1);
u2:
f_suberportmap(xin=x2,yin=y2,diff_out=diff2,sub_in=a1,sub_out=a2);
u3:
f_suberportmap(xin=x3,yin=y3,diff_out=diff3,sub_in=a2,sub_out=a3);
u4:
f_suberportmap(xin=x4,yin=y4,diff_out=diff4,sub_in=a3,sub_out=a4);
u5:
f_suberportmap(xin=x5,yin=y5,diff_out=diff5,sub_in=a4,sub_out=a5);
u6:
f_suberport
map(xin=x6,yin=y6,diff_out=diff6,sub_in=a5,sub_out=a6);
u7:
f_suberportmap(xin=x7,yin=y7,diff_out=diff7,sub_in=a6,sub_out=sout);
endarchitectures8;
3-8设计一个求补码的程序,输入数据是一个有符号的8位二进制
(原码)数。
--解:
5-9设计一个求补码的程序,输入数据是一个有符号的8位二
进制数。
useieee.std_logic_unsigned.all;
entityorg_patchis
port(org_data:
instd_logic_vector(7downto0);
--原码输入
patch_data:
outstd_logic_vector(7downto0));
--补码输出end
org_patch;
architecturebhvoforg_patchisbeginprocess(org_data)beginif(org_data(7)=0)thenpatch_data=org_data;
--org_data=0,补码=原码。
elsepatch_data=org_data(7)(notorg_data(6downto0))+1;
--org_data0,补码=|原码|取反+1。
endif;
endprocess;
endbhv;
3—10libraryieee;
useieee.std_logic_unsigned.all;
entityaddisport(a:
instd_logic_vector(7downto0);
b:
ci:
co:
count:
outstd_logic_vector(7downto0));
endadd;
architecturebhvofaddisbeginprocess(a,b,ci)variabledata:
std_logic_vector(1downto0);
variablec:
std_logic;
beginc:
=ci;
fornin0to7loop
data:
=(0a(n))+(0b(n))+(0c);
count(n)=data(0);
c:
=data
(1);
endloop;
co=c;
endbhv;
3-14用循环语句设计一个7人投票表决器,及一个4位4输入最大数值检测电路。
5-7用循环语句设计一个7人投票表决器,及一个4位4输出最大数值检测电路。
entityvote_7is
port(din:
instd_logic_vector(6downto0);
--7位表决输入(1:
同
表决结果统计数end
意,0:
不同意)g_4:
outstd_logic;
--超过半数指示
cnth:
outstd_logic_vector(2downto0));
--vote_7;
architecturebhvofvote_7isbeginprocess(din)
variableq:
std_logic_vector(2downto0);
beginq:
=000;
fornin0to6loop--n是loop的循环变量if(din(n)=1)thenq:
=q+1;
endloop;
cnth=q;
ifq=4theng_4=1;
elseg_4=0;
endprocess;
5-7用vhdl设计一个功能类似74ls160的计数器。
3-10用vhdl设计一个功能类似74ls160(异步复位和同步使能加载、计数的十进制加法计数器)的计数器。
libraryieee;
entitycnt10isport(clk,rst,en,load:
位预置数dout:
outcout:
data:
instd_logic_vector(3downto0);
--4std_logic_vector(3downto0);
--计数值输出
--计数进位输出endcnt10;
architecturebehavofcnt10isbeginprocess(clk,rst,en,load)variableq:
beginifrst=0thenq:
=(others=0);
--计数器异步复位elsifclkeventand
clk=1then--检测时钟上升沿
ifen=1then--检测是否允许计数或加载(同步使能)ifload=0thenq:
=data;
--允许加载else
ifq9thenq:
--允许计数,检测是否小于9
elseq:
=(others=0);
--大于等于9时,计数值清零endif;
endif;
ifq=9thencout=1;
--计数大于9,输出进位信号
篇二:
eda技术与vhdl程序开发基础教程课后答案】
eda的英文全称是electronicdesignautomation
2.eda系统设计自动化eda阶段三个发展阶段
3.eda技术的应用可概括为
4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入
6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为edif
8.布局布线主要完成9.
10.常用的第三方eda工具软件有synplify/synplifypro、
leonardospectrum
1.8.2选择
1.eda技术发展历程的正确描述为(a)
acad-cae-eda
beda-cad-cae
ceda-cae-cad
dcae-cad-eda
2.altera的第四代eda集成开发环境为(c)
amodelsim
bmux+plusii
cquartusii
dise
3.下列eda工具中,支持状态图输入方式的是(b)
aquartusii
bise
cispdesignexpert
dsyplifypro
4.下列几种仿真中考虑了物理模型参数的仿真是(a)
a时序仿真
b功能仿真
c行为仿真
d逻辑仿真
5.下列描述eda工程设计流程正确的是(c)
a输入-综合-布线-下载-仿真
b布线-仿真-下载-输入-综合
c输入-综合-布线-仿真-下载
d输入-仿真-综合-布线-下载
6.下列编程语言中不属于硬件描述语言的是(d)
avhdl
bverilog
cabel
dphp
1.8.3问答
1.结合本章学习的知识,简述什么是eda技术?
谈谈自己对eda技术的认识?
答:
eda(electronicdesignautomation)工程是现代电子信息工
程领域中一门发展迅速的新技术。
2.简要介绍eda技术的发展历程?
答:
现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。
它的成熟主要经历了计算机辅助设计(cad,computeraideddesign)、计算机辅助工程设计
(caed,computeraidedengineeringdesign)和电子设计自动
化(eda,electronicsystemdesignautomation)三个阶段。
3.什么是soc?
什么是sopc?
soc(systemonchip,片上系统)
sopc(systemonaprogrammablechip,片上可编程系统)
4.对目标器件为cpld/fpga的vhdl设计,主要有几个步骤?
每步的作用和结果分别是什么?
一个完整的eda工程通常要涉及到系统建模、逻辑综合、故障测试、功能仿真、时序分析、形式验证等内容。
而对于设计工程师而言,系统建模中的器件模型有生产厂商给出,工程师只需要完成系统设计、逻辑综合、布局布线、仿真验证和下载测试几个步骤。
5.简述asic设计和cpld/fpga设计的区别?
专用集成电路(asic)采用硬接线的固定模式,而现场可编程门阵列(fpga)则采用可配置芯片的方法,二者差别迥异。
可编程器件是目前的新生力量,混合技术也将在未来发挥作用。
6.阐述行为仿真、功能仿真和时序仿真的区别?
行为仿真只考虑逻辑功能。
功能仿真仅仅完成了对vhdl所描述电路的逻辑功能进行测试模拟,以观察其实现的功能是否满足设计需求,因而仿真过程并不涉及任何具体器件的硬件特性。
时序仿真则是比较接近真实器件运行的仿真,在仿真过程中已经对器件的物理模型参数做了恰当的考虑,所以仿真精度要高得多。
7.详细描述eda设计的整个流程?
系统规格制定(definespecification)设计描述(designdescription)功能验证(functionverification)逻辑电路合成(logicsynthesis)逻辑门层次的电路功能验证(gate-levelnetlistverification)
配置与绕线(placeandrouting)绕线后的电路功能验证(postlayoutverification)
8.为什么要进行硬件电路的后仿真验证和测试?
后仿真考虑了实际器件的模型参数,能够更好的模拟实际电路工作状态。
测试是检验设计合格的最直接的方式。
2.8.1填空
1.可编程逻辑器件的英文全称是2.可编程逻辑器件技术经历了三个发展阶段
3.cpld个部分
4.目前市场份额较大的生产可编程逻辑器件的公司有altera、
xillinx、lattice
5.根据器件应用技术fpga6.快速通道/互联通道包括行互连、列互联、逻辑阵列块、逻辑单元
7.常用的的fpga配置方式为8.实际项目中,实现fpga的配置常常需要附加一片
9.球状封装的英文缩写为bga
10.cpld/fpga2.8.2选择
1.在下列可编程逻辑器件中,不属于高密度可编程逻辑器件的是(d)
aepldbcpldcfpgadpal
2.在下列可编程逻辑器件中,属于易失性器件的是(d)aepldbcpldcfpgadpal
3.下列逻辑部件中不属于altera公司cpld的是(a)a通用逻辑块(glb)
b可编程连线阵列(pia)
c输入输出控制(i/o)
d逻辑阵列块(lab)
4.下列逻辑部件中不属于lattice公司cpld的是(d)a通用逻辑块(glb)
b全局布线区(grp)c输出布线区(orp)d逻辑阵列块(lab)
5.下列fpga中不属于xilinx公司产品的是(d)
axc4000bvirtex
cspartan
dcyclong
6.下列fpga中不属于alter公司产品的是(b)
aflex10kbvirtexcstratix
dcyclone
7.下列配置方式不属于fpga配置模式的是(d)a主动串行配置模式
b被动串行配置模式c主动并行配置模式d被动从属配置模式
8.下列因素中通常不属于cpld/fpga选型条件的是(d)
a逻辑资源
b功耗和封装
c价格和速度
d产地
2.8.3问答
1.结合本章学习的知识,简述cpld的基本结构?
虽然cpld种类繁多、特点各异,共同之处总结起来可以概括为三个部分:
•可编程逻辑阵列块;
•输入/输出块;
•互联资源;
其中,可编程逻辑阵列块类似于一个低密度的pal/gal,包括乘积项的与阵列、乘积项分配和逻辑宏单元等。
乘积项与阵列定义了每个宏单元乘积项的数量和每个逻辑块乘积项的最大容量,能有效的实现各种逻辑功能。
2.结合本章学习的知识,简述fpga的基本结构?
基于sram编程的fpga以xilinx的逻辑单元阵列(lca,logiccellarray)为例,基本结构如图2-20所示。
模块
图
2-20fpga的基本机构反熔丝技术fpga器件的逻辑结构采用基于多路选择器的基本逻辑单元,配置数据放在反熔丝开关矩阵中,通过编程使部分反熔丝介质击穿,导通开关从而实现器件的编程。
如图2-21所示
互联
资源逻辑阵列
2-21反熔丝技术的fpga结构
3.基于sram编程的fpga有哪些特征?
优缺点?
fpga器件的优点:
•可以反复编程,对于一般规模的器件,上电几十毫秒就可以完成配置数据的加载;
•开发设计不需要专门的编程器;
•与cmos工艺的存储器兼容,价格较低;
fpga器件的缺点:
•由于器件掉电后sram容易丢失配置数据,因而常常在fpga外部添加一个制度春初期prom或eprom来保存这些配置数据,从而给配置数据的保密带来了困难;
•器件内部可编程连线和逻辑定义通过大量的传输门开关实现,从而导致电阻变大,传递信号的速度收到影响,限制工作频率;
4.简述max7000器件的结构及特点?
篇三:
eda技术课程大纲】
课程英文译名:
edatechnology课程编号:
课内总学时:
64学分:
3
开课对象:
电子信息工程/电子信息科学与技术/电子科学与技术/集成电路设计专业本科学生课程类别:
学院定必修一、课程的任务和目的本课程是电类专业的专业基础课,要求学生通过本课程的学习和实验,初步掌握常用eda工具的使用方法、fpga的开发技术以及vhdl语言的编程方法。
能比较熟练地使用quartusii等常用eda软件对fpga和cpld作一些简单电路系统的设计,同时能较好地使用vhdl语言设计简单的逻辑电路和逻辑系统,学会行为仿真、时序仿真和硬件测试技术,为现代eda工程技术的进一步学习,asic器件设计以及超大规模集成电路设计奠定基础。
作为一门专业基础课,除了为现代电子线路课程,软件无线电课程奠定理论和实践方面的基础外,还是其他一些课程的先修课,如微电子导论、现代asic设计、硬件描述语言仿真/综合器设计、大规模集成电路设计等。
二、课程内容与基本要求
(一)概论
介绍现代eda技术,vhdl概况,介绍自顶向下的系统设计方法以及fpga和cpld的基本技术,要求对现代eda技术及实现工具的使用方法和发展情况有一初步了解。
(二)eda设计流程及工具首先介绍基于eda软件的fpga/cpld开发流程和asic设计流程,然后分别介绍与这些设计流程中各环节密切相关的eda工具软件,最后简述quartusii的基本情况和ip。
(三)fpga/cpld结构与应用主要介绍几类常用的大规模可编程逻辑器件的结构和工作原理。
对cpld的乘积项原理和fpga的查找表原理分别进行剖析。
最后介绍相关的编程下载和测试技术。
(四)vhdl设计初步通过数个简单、完整而典型的vhdl设计示例,使学生初步了解用vhdl表达和设计电路的方法,并对由此而引出的vhdl语言现象和语句规则能逐步趋向系统的了解。
(五)quartusii应用向导通过实例,详细介绍基于quartusii的vhdl文本输入设计流程,包括设计输入、综合、适配、仿真测试和编程下载等方法,以及quartusii包含的一些有用的测试手