SOPC系统设计与实践知识点.docx

上传人:b****5 文档编号:6847791 上传时间:2023-01-11 格式:DOCX 页数:14 大小:157.96KB
下载 相关 举报
SOPC系统设计与实践知识点.docx_第1页
第1页 / 共14页
SOPC系统设计与实践知识点.docx_第2页
第2页 / 共14页
SOPC系统设计与实践知识点.docx_第3页
第3页 / 共14页
SOPC系统设计与实践知识点.docx_第4页
第4页 / 共14页
SOPC系统设计与实践知识点.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

SOPC系统设计与实践知识点.docx

《SOPC系统设计与实践知识点.docx》由会员分享,可在线阅读,更多相关《SOPC系统设计与实践知识点.docx(14页珍藏版)》请在冰豆网上搜索。

SOPC系统设计与实践知识点.docx

SOPC系统设计与实践知识点

SOPC系统设计与实践知识点

一课程概述

1.FPGA:

FieldProgrammableGateArray

现场可编程门阵列,一类超大规模集成电路芯片,硬件范畴

2.SOC:

3.SOPC:

(P2)

SystemOnProgrammableChip

可编程片上系统,系统层级概念,既包括硬件系统也包括软件系统

4.HDL:

5.VHDL:

(P3)

VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage),意为超高速集成电路硬件描述语言。

6.简要论述这门课程的目的。

(P3)

掌握数字逻辑的基本理论、基本分析和设计方法,具备使用VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)或VerilogHDL(HardwareDescriptionLanguage)语言进行数字逻辑设计的能力,熟悉在FPGA上构建嵌入式SOPC硬件系统的方法。

7.写出本课程所讲述的两部分主要内容。

(P5)

一个部分是基础的FPGA系统设计,另外一个部分是基于FPGA的嵌入式SOPC系统设计。

8.写出本课程主要讲解的两个软件和一个硬件开发系统的名称(P5)

QuartusII,NiosII和DE2硬件开发系统

9.论述本课程内容的三个层次(P6~7)

⏹基于FPGA芯片的数字逻辑设计

掌握现代EDA技术及其基本概念,熟悉基本设计方法和设计语言,能够实现简单的数字逻辑电路,掌握FPGA芯片的基本结构和功能。

⏹基于FPGA芯片的数字综合系统设计

在第一层次的基础上,利用专有开发软件搭建较为复杂的FPGA数字综合系统,掌握

FPGA芯片更为复杂的功能

⏹基于FPGA的嵌入式SOPC系统设计

在前两个层次基础上,搭建基于FPGA芯片的嵌入式SOPC系统,涉及到使用专有软件的系统原理设计、系统仿真和调试、程序下载、硬件调试等环节;该部分是本课程的学习重点。

二专业动态

1.论述下国家大力发展集成电路的原因?

(P5)

•社会发展的需要:

集成电路是最能体现知识经济特征的典型产品之一。

•经济发展的需要:

现代经济发展的数据表明,GDP每增长100元,需要10元左右电子工业产值和1~2元集成电路产值的支持。

2010年,我国集成电路产业销售额1424亿元,同比增长28.4%,设计业销售384亿,同比增长41.9%。

2010年集成电路市场增速达29.5%,实现销售额7349.5亿元。

目前发达国家信息产业产值已占国民经济总产值的40%~60%,国民经济总产值增长部分的65%与集成电路有关。

•国家安全的需要:

集成电路是信息化的基础,芯片的供应和芯片的安全性问题。

2.列出7个国家级集成电路设计产业化基地。

(P9)

北京、上海、杭州、无锡、西安、成都、深圳

3.我国集成电路目前发展遇到的障碍。

(P14)

资金、技术、人才

4.集成电路技术演进路线。

(P20)

一是芯片集成度不断提高。

集成电路技术未来一段时间仍将按摩尔定律继续前进,以CPU为代表的芯片集成度和处理能力仍会继续增长,半导体存储器存储容量持续加大。

目前32纳米工艺已量产,2012年导入22纳米,2014年导入18纳米。

二是功能多样化趋势明显。

集成电路产品以价值优先和功能多样化为目标,更加注重集成运算和存储之外的新功能,集成了射频通信、功率控制、无源元件和传感器等功能的产品越来越多,系统级封装(SIP)等先进封装技术应用更加广泛。

5.写出系统集成芯片技术的三个方面的技术。

(P39)

 

6.写出SOC的三种嵌入式核并指出灵活性最高的是哪类核。

(P43~44)

•软核是用可综合的RTL描述或者通用库元件的网表形式表示的可复用模块。

用户须负责实际的实现和版图。

(最灵敏)

•固核是指在结构和拓扑针对性能和面积通过版图规划,甚至可用某种工艺技术进行优化的可复用模块。

它们以综合好的代码或通过库元件的网表形式存在。

•硬核是指在性能、功率和面积上经过优化并映射到特定工艺技术的可复用模块。

它们以完整的布局布线的网表和诸如GDSII(一种版图数据文件格式)格式的固定版图形式存在。

7.列出四种代表性的HDL语言。

(P65~68)

1.VHDL

2.VerilogHDL

3.Superlog

4.SystemC

三VHDL语言

1.论述VHDL的特点。

(P4)

1).支持从系统级(特大型)至门级电路的多层次描述;支持结构描述、行为描述、数据流描述及混合描述。

2).支持自底向上(bottom-up)及自顶向下(top-down)的设计;支持模块化、层次化设计;支持函数、过程及自定义程序包和库,可设计共享。

3). 支持组合逻辑电路和时序电路;支持延迟功能。

4). 使用类属语句进行参数化设计。

5). 支持断言语句,报告系统信息和错误信息。

6). 数据类型丰富、安全性好,既有预定义数据类型,又可自定义数据类型。

2.写出利用VHDL描述电路系统的5个定义区及其相应的功能,并且列出第4个定义区中详细定义部分。

(P5)

1.USE定义区定义元件库

2.PACKAGE定义区定义使用哪些自定义库

3.ENTITY定义区定义电路实体的外观:

I/O接口规格

4.ARCHITECTURE定义区描述电路的内部功能,说明电路执行什么动作或功能Component定义区信号定义BehaviorProcess描述DataFlow描述Structure描述

5.CONFIGURATION定义区决定哪一个architecture被使用

(Project)

3.利用VHDL设计两位二进制数比较器。

a和b分别代表两个二进制数;equ是比较器的输出端口。

比较器的逻辑功能是:

若a=b则输出equ为1,否则equ为0。

(P8)

4.在entity的定义中,如果定义成端口表(ports),端口的四种模式分别是什么?

(P12)

实体说明中的每一个I/O信号称为端口。

有四种端口模式:

1)输入(in)用于时钟输入及各种控制输入,如置位,复位,使能及置数等。

2)输出(out)通常用作终端输出。

3)缓冲(buffer)允许数据流出端口及内部反馈。

允许内部引用该端口的信号。

4)双向(inout)允许数据流入或流出实体,也用于内部反馈。

5.VHDL语言的三种构成要素分别是什么?

命名的规则是怎样的?

(P16)

英文字母、数字和下划线

1)首字符必须是英文字母;

2)末字符不能是下划线;并且不允许出现两个连续的下划线;

3)大、小写英文字母等效,可混合输入;

4)VHDL语言的关键字不能作标识符。

6.说明下面几个非法标示符的错误出在哪里?

(P17)

(1)signal,

(2)old_state_,(3)New#type,(4)8home

signal--保留字不能用作基本标识符

old_state_--最后字符不能是下划线;

New#type--有非法字符#

8home--不能用数字开头

7.定义一个实数型的常数量Us并赋值12.0。

(P18)

constantUs:

real:

=12.0;

8.定义一个整数型的变量j并赋值2.(P20)

variablej:

integer:

=2;

9.论述信号和变量的不同。

(P21)

10.定义一个四位二进制矢量信号量bus。

(P22)

signalwidth:

integer;

signalbus:

bit_vector(3to0);

signalz:

bit;

z<=‘1’;

width<=12;

bus<=“1010”;

11.列出信号和变量的赋值符号。

(P22)

信号赋值号<=

常量、变量赋值号:

=

12.在数据类型中,标量类型包括哪几种?

复合类型包括哪几种?

(P23)

标量类型的数据对象在某一时刻只对应一个值。

整数类型、浮点类型、物理类型和枚举类型

复合类型的数据对象在某时刻可持多个值。

是单值类型元素的集合。

复合类型包括数组类型和记录类型

13.列出VHDL中预定义的物理时间类型的几种时间等级,并指出其中最小的时间单位和最常用的时间单位。

(P27)

fs;--飞秒,相当于10-15秒,VHDL中最小的时间单位

ps=1000fs;--皮秒,相当于10-12秒

ns=1000ps;--纳秒,相当于10-9秒

us=1000ns;--微秒,相当于10-6秒

ms=1000us;--毫秒,相当于10-3秒

sec=1000ms;--秒最长用?

min=60sec;--分

hr=60min;--时

endunits;

14.给出VHDL中数组类型的定义,它包括哪两种类型?

(P28)

typebusisarray(3downto0)ofstd_logic;

typesetisarray(0to7)ofinteger

15.利用信号类属性中的’event属性分别定义“检测时钟在上升沿有效”和“检测时钟在下降沿有效”。

(P34)

信号类属性有多种类型,其中最为常用的是’event属性。

例如:

信号clk(std_logic类型)的’event属性列写如下:

clk’eventandclk=’1’--1检测时钟在上升沿有效

clk’eventandclk=’0’--2检测时钟在下降沿有效

16.列出VHDL中的几种并行语句类型。

(P36)

进程语句

并行信号赋值语句

元件例化语句

块语句

断言语句

17.利用带敏感表的结构体进程实现两位二进制等值比较器。

(P38)

architecturebehave_processofecomp2is

begin

eqcome:

process(a,b)--以敏感表(a,b)代替显式wait语句

begin

if(a=b)thenequ<=’1’;

elseequ<=‘0’;

endif;

endprocesseqcome;

endbehave_process;

18.利用带wait语句的结构体进程实现两位二进制等值比较器。

(P39)

与其等效的使用显式wait语句的进程如下:

architecturebehave_processofecomp2is

begin

process--无敏感信号表

begin

if(a=b)thenequ<=’1’;

elseequ<=‘0’;

endif;

waitona,b;--本进程无敏感表则必须有显式wait语句

endprocess;

endbehave_process;

19.按照下图结构,利用元件例化语句设计两位二进制等值比较器。

(P43~46)

libraryieee;

useieee.std_logic_1164.all;

entityecomp2is--两位等值比较器,第一层实体

port(a,b:

instd_logic_vector(1downto0);

equ:

outstd_logic);

endecomp2;

architecturestructofecomp2is

signalx:

std_logic_vector(1downto0);

componentxnor2--对元件xnor2进行元件说明

port(i1,i2:

instd_logic_vector(1downto0);

o1:

outstd_logic);

endcomponent;

componentand2--对元件and2进行元件说明

port(i1,i2:

instd_logic_vector(1downto0);

o1:

outstd_logic);

endcomponent;

begin--结构体描述使用元件例化语句

u0:

xnor2portmap(a(0),b(0),x(0));--位置关联方式

u1:

xnor2portmap(i1=>a

(1),i2=>b

(1),o1=>x

(1));--名称关联方式

u2:

and2portmap(x(0),x

(1),equ);

endstruct;

useieee.std_logic_1164.all;--须再次打开std_logic_1164

entityxnor2is--二端同或门模块,第二层实体

port(i1,i2:

instd_logic_vector(1downto0);

o1:

outstd_logic);

endxnor2;

architecturexnor2ofxnor2is

begin

o1<=i1xnori2;

endxnor2;

useieee.std_logic_1164.all;--须再次打开std_logic_1164

entityand2is--二端与门模块,第二层实体

port(i1,i2:

instd_logic_vector(1downto0);

o1:

outstd_logic);

endand2;

architectureand2ofand2is

begin

o1<=i1andi2;

endand2;

20.列出VHDL中的几种顺序语句类型。

(P49)

变量赋值语句

信号赋值语句

if语句case语句loop语句

next语句exit语句null语句

wait语句report语句

21.利用变量赋值语句的性质判断下面两个进程最终的a和b的值。

(P50~51)

--第一个进程

signala:

integer:

=5;

signalb:

integer:

=10;

process(a,b)

begin

a<=b;

b<=a;

endprocess;

--进程执行后a=10,b=5

--第二个进程

process

variablea:

integer:

=5;

variableb:

integer:

=10;

begin

a:

=b;

b:

=a;

endprocess;

--进程执行后a=10,b=10

22.利用case语句实现4选1多路选择器进程。

(P55)

mux_1:

process(a,b,c,d,s)

begin

casesis

when“00”=>x<=a;

when“01”=>x<=b;

when“10”=>x<=c;

whenothers=>x<=d;

endcase;

endprocessmux_1;

23.写出architecture的四种常用描述方式。

(P64)

行为描述

描述中采用进程语句。

数据流描述

描述中采用除进程外的其他并发语句。

结构化描述

用来调用低层次设计模块,支持大型设计逻辑分解。

混合描述

大型设计中,常采用行为描述与结构描述相结合的混合描述。

 

24.程序包由哪两个部分构成?

两个部分的对外特性区别是怎样的?

在程序中如何使用程序包?

(P65)

程序包说明和程序包体

只有在程序包说明部分说明的标识符在程序包之外可见,在包体部分中说明的标识符对其他设计不可见;使用之前必须先用use语句将程序包打开再进行调用。

25.设计4—2线优先编码器.(P75~76)

libraryieee;

useieee.std_logic_1164.all;

entityencoderis

port(in0,in1,in2,in3:

instd_logic;

out0,out1:

outstd_logic);

end;

architecturebehaveofencoderis

signalou:

std_logic_vector(1downto0);

begin

ou<="11"whenin3='1'else

"10"whenin2='1'else

"01"whenin1='1'else

"00"whenin0='1'else

"00";

out1<=ou

(1);out0<=ou(0);

endbehave;

26.设计一位十进制编码器。

(P77~78)

libraryieee;

useieee.std_logic_1164.all;

entitydecodeis

port(in0,in1,in2,in3,in4,in5,in6,in7,in8,in9:

in

std_logic;

out_decode:

outstd_logic_vector(3downto0));

enddecode;

architecturebehaveofdecodeis

signals_vec:

std_logic_vector(9downto0);

begin

s_vec<=(in9,in8,in7,in6,in5,in4,in3,in2,in1,in0);

withs_vecselect

out_decode<="1001"when"1000000000",--数字9

"1000"when"0100000000",--数字8

"0111"when"0010000000",--数字7

"0110"when"0001000000",--数字6

"0101"when"0000100000",--数字5

"0100"when"0000010000",--数字4

"0011"when"0000001000",--数字3

"0010"when"0000000100",--数字2

"0001"when"0000000010",--数字1

"0000"whenothers;--数字0

endbehave;

27.设计JK触发器。

(P81~82)

libraryieee;

useieee.std_logic_1164.all;

entityjkffis

port(clk,j,k:

instd_logic;

q,notq:

outstd_logic);

endjkff;

architecturebehaveofjkffis

signalq_temp:

std_logic;

signaljk:

std_logic_vector(1downto0);

begin

jk<=j&k;--注意此处连接符的使用

process(clk,jk)

begin

if(clk'eventandclk='1')then

if(jk="01")thenq_temp<='0';

elsif(jk="10")thenq_temp<='1';

elsif(jk="11")thenq_temp<=notq_temp;

endif;

endif;

q<=q_temp;notq<=notq_temp;

endprocess;

endbehave;

28.设计四位双向移位寄存器。

(P83~84)

libraryieee;

useieee.std_logic_1164.all;

entityshiftis

port(clk,rst,load,left_right:

instd_logic;

--时钟、复位、置数、移位控制信号

din:

instd_logic_vector(3downto0);

--预置数输入信号

dout:

inoutstd_logic_vector(3downto0));

--输出信号

endshift;

architecturebehaveofshiftis

constantlen:

integer:

=3;

begin

process(clk,rst,load,left_right,din)

begin

ifrst=’1’thendout<=”0000”;--异步复位

elsifrising_edge(clk)then

if(load='1')thendout<=din;--同步置数

elsif(left_right='0')then--循环右移

dout<=dout(0)&dout(lendownto1);

elsif(left_right='1')then--循环左移

dout<=dout(len-1downto0)&dout(3);

endif;

endif;

endprocess;

endbehave;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1