eda技术实用教程verilog答案.docx
- 文档编号:20126635
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:20
- 大小:24.93KB
eda技术实用教程verilog答案.docx
《eda技术实用教程verilog答案.docx》由会员分享,可在线阅读,更多相关《eda技术实用教程verilog答案.docx(20页珍藏版)》请在冰豆网上搜索。
eda技术实用教程verilog答案
eda技术实用教程verilog答案
【篇一:
eda技术实用教程课后答案---潘松,黄继业】
端有四个输入:
s0、s1、s2、s3。
当且
仅当s0=0时:
y=a;s1=0时:
y=b;s2=0时:
y=c;s3=0时:
y=d。
--解:
4选1多路选择器vhdl程序设计。
libraryieee;
useieee.std_logic_1164.all;entitymux41ais
port(a,b,c,d:
instd_logic;s0,s1,s2,s3:
instd_logic;y:
outstd_logic);endentitymux41a;architectureoneofmux41ais
signals0_3:
std_logic_vector(3downto0);begins0_3=s0s1s2s3;
y=awhens0_3=0111elsebwhens0_3=1011elsecwhens0_3=1101elsedwhens0_3=1110elsez;
endarchitectureone;
3-4给出1位全减器的
1)首先设计1位半减器
h_suber是半减器,diff
axin(diff=x-y),s_out
diff_outc
yin
b
vhdl描述;最终实现8位全减器。
要求:
然后用例化语句将它们连接起来,图4-20中
是输出差
是借位输出(s_out=1,xy),sub_in是借位输入。
图3-191位全加器
--解(1.1):
实现1位半减器h_suber(diff=x-y;s_out=1,xy)
libraryieee;
useieee.std_logic_1164.all;entityh_suberis
port(x,y:
instd_logic;diff,s_out:
outstd_logic);endentity
h_suber;
architecturehs1ofh_suberisbegin
diff=xxor(noty);
s_out=(notx)andy;
endarchitecturehs1;
--解(1.2):
采用例化实现图4-20的1位全减器
libraryieee;--1位二进制全减器顺层设计描述
ieee.std_logic_1164.all;entityf_suberis
port(xin,yin,sub_in:
instd_logic;sub_out,diff_out:
out
std_logic);endentityf_suber;
architecturefs1off_suberis
use
componenth_suber--调用半减器声明语句port(x,y:
in
std_logic;diff,s_out:
outstd_logic);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位减法器(上图所示)。
libraryieee;
useieee.std_logic_1164.all;entitysuber_8is
port(x0,x1,x2,x3,x4,x5,x6,x7:
instd_logic;
y0,y1,y2,y3,y4,y5,y6,y7,sin:
in
std_logic;diff0,diff1,diff2,diff3:
out
std_logic;diff4,diff5,diff6,diff7,sout:
outstd_logic);endentity
suber_8;
architectures8ofsuber_8is
componentf_suber--调用全减器声明语句port(xin,yin,sub_in:
instd_logic;sub_out,diff_out:
outstd_logic);endcomponent;
signala0,a1,a2,a3,a4,a5,a6:
std_logic;--定义1个信号作为内部
的连接线。
begin
u0:
f_suberport
map(xin=x0,yin=y0,diff_out=diff0,sub_in=sin,sub_out=a0);
u1:
f_suberport
map(xin=x1,yin=y1,diff_out=diff1,sub_in=a0,sub_out=a1);
u2:
f_suberport
map(xin=x2,yin=y2,diff_out=diff2,sub_in=a1,sub_out=a2);
u3:
f_suberport
map(xin=x3,yin=y3,diff_out=diff3,sub_in=a2,sub_out=a3);
u4:
f_suberport
map(xin=x4,yin=y4,diff_out=diff4,sub_in=a3,sub_out=a4);
u5:
f_suberport
map(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_suberport
map(xin=x7,yin=y7,diff_out=diff7,sub_in=a6,sub_out=sout);
endarchitectures8;
3-8设计一个求补码的程序,输入数据是一个有符号的8位二进制
(原码)数。
--解:
5-9设计一个求补码的程序,输入数据是一个有符号的8位二
进制数。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;entityorg_patchis
port(org_data:
instd_logic_vector(7downto0);--
patch_data:
outstd_logic_vector(7downto0));--
原码输入
补码输出end
org_patch;
architecturebhvoforg_patchisbegin
process(org_data)begin
if(org_data(7)=0)then
patch_data=org_data;--org_data=0,补码=原码。
elsepatch_data=org_data(7)(notorg_data(6downto0))+1;--org_data0,补码=|原码|取反+1。
endif;endprocess;
endbhv;
3—10
libraryieee;
useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityaddis
port(a:
instd_logic_vector(7downto0);b:
instd_logic_vector(7downto0);ci:
instd_logic;co:
outstd_logic;
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;
endprocess;endbhv;
3-14用循环语句设计一个7人投票表决器,及一个4位4输入最大数值检测电路。
--解:
5-7用循环语句设计一个7人投票表决器,及一个4位4输出最大数值检测电路。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;entityvote_7is
port(din:
instd_logic_vector(6downto0);--7位表决输入(1:
同
意,0:
不同意)g_4:
outstd_logic;--超过半数指示
cnth:
outstd_logic_vector(2downto0));--表决结果统计数end
vote_7;
architecturebhvofvote_7isbegin
process(din)
variableq:
std_logic_vector(2downto0);begin
q:
=000;
fornin0to6loop--n是loop的循环变量if(din(n)=1)then
q:
=q+1;endif;endloop;cnth=q;
ifq=4theng_4=1;elseg_4=0;endif;endprocess;endbhv;
5-7用vhdl设计一个功能类似74ls160的计数器。
--解:
3-10用vhdl设计一个功能类似74ls160(异步复位和同步使能加载、计数的十进制加法计数器)的计数器。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;entitycnt10is
port(clk,rst,en,load:
instd_logic;
data:
instd_logic_vector(3downto0);--4位预置数dout:
out
std_logic_vector(3downto0);--计数值输出cout:
outstd_logic);
--计数进位输出endcnt10;
architecturebehavofcnt10isbegin
process(clk,rst,en,load)
variableq:
std_logic_vector(3downto0);begin
ifrst=0thenq:
=(others=0);--计数器异步复位elsifclkeventand
clk=1then--检测时钟上升沿
ifen=1then--检测是否允许计数或加载(同步使能)ifload=0then
q:
=data;--允许加载else
允许计数,检测是否小于
elseq:
=(others=0);--大于等于9时,计数值清零endif;endif;
endif;endif;
ifq=9thencout=1;--计数大于9,输出进位信号
【篇二:
eda技术与vhdl程序开发基础教程课后答案】
eda的英文全称是electronicdesignautomation2.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
cispdesignexpertdsyplifypro
4.下列几种仿真中考虑了物理模型参数的仿真是(a)
a时序仿真
b功能仿真
c行为仿真
d逻辑仿真
5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真
b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载
6.下列编程语言中不属于硬件描述语言的是(d)
avhdl
bverilog
cabeldphp
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.目前市场份额较大的生产可编程逻辑器件的公司有
xillinx、lattice
altera
、
5.根据器件应用技术fpga6.快速通道/互联通道包括行互连、列互联、逻辑阵列块、逻辑单元
7.常用的的fpga配置方式为8.实际项目中,实现fpga的配置常常需要附加一片
9.球状封装的英文缩写为bga
10.cpld/fpga2.8.2选择
1.在下列可编程逻辑器件中,不属于高密度可编程逻辑器件的是
(d)
aepld
bcpld
cfpga
dpal
2.在下列可编程逻辑器件中,属于易失性器件的是(d)
aepld
bcpld
cfpga
dpal
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)
axc4000
bvirtex
cspartan
dcyclong
6.下列fpga中不属于alter公司产品的是(b)aflex10k
bvirtexcstratixdcyclone
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的逻辑单元阵列(
cellarray)为例,基本结构如图2-20所示。
lca
,logic
模块
图
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设计初步
通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 技术 实用教程 verilog 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)