leon2pdf不完全翻译Word文档下载推荐.docx

上传人:b****1 文档编号:5365734 上传时间:2023-05-05 格式:DOCX 页数:19 大小:81.56KB
下载 相关 举报
leon2pdf不完全翻译Word文档下载推荐.docx_第1页
第1页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第2页
第2页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第3页
第3页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第4页
第4页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第5页
第5页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第6页
第6页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第7页
第7页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第8页
第8页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第9页
第9页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第10页
第10页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第11页
第11页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第12页
第12页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第13页
第13页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第14页
第14页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第15页
第15页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第16页
第16页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第17页
第17页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第18页
第18页 / 共19页
leon2pdf不完全翻译Word文档下载推荐.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

leon2pdf不完全翻译Word文档下载推荐.docx

《leon2pdf不完全翻译Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《leon2pdf不完全翻译Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。

leon2pdf不完全翻译Word文档下载推荐.docx

这个时候从执行级读出并暂存的数据被写回到datacache。

5.WR(写回级):

任何ALU,logical,shift,或cache读操作的结果都被写回到registerfile。

2.3乘法指令

2.4乘法和累加器指令

2.5除法指令

2.6处理器复位操作

所有其他寄存器保持自己的价值(或未定义)。

寄存器

复位值

PC(programcounter)

0x0

nPC(nextprogramcounter)

0x4

PSR(处理机状态寄存器)

ET=0,S=1

CCR(cache控制寄存器)

2.7例外

陷阱类型

陷阱级别

说明

复位

1

上电复位

写错误

2

写缓冲区错误

指令访问错误

3

取指令错误

非法指令

5

UNIMP或其他未定义指令

特权指令

4

在用户模式下执行特权指令

FP禁用

6

FP指令,而此时浮点处理机被禁用

CP禁用

CP指令,而此时协处理机被禁用

观察点检测

7

指令或数据观察点匹配

窗口上溢

8

保存到无效的窗口

窗口下溢

恢复到无效的窗口

寄存器硬件错误

9

寄存器文件EDAC错误(仅限LEON-FT)

存储器地址未对齐

10

内存访问未对齐的地址

FP例外

11

FPU例外

CP例外

Co-processor例外

数据访问例外

13

在加载或存储指令期间访问错误

标签溢出

14

标记算术溢出

除法异常

15

被除数为0

中断级1

31

异步中断1

中断级2

30

异步中断2

中断级3

29

异步中断3

中断级4

28

异步中断4

中断级5

27

异步中断5

中断级6

26

异步中断6

中断级7

25

异步中断7

中断级8

24

异步中断8

中断级9

23

异步中断9

中断级10

22

异步中断10

中断级11

21

异步中断11

中断级12

20

异步中断12

中断级13

19

异步中断13

中断级14

18

异步中断14

中断级15

17

异步中断15

陷阱指令

16

软件陷阱指令(TA)

2.8观察点

2.9浮点单元和协处理机

3Cache子系统

3.1概述

4指令Cache

4.0.1操作

4.0.2指令cache冲刷

4.0.3诊断cache访问

4.0.4指令cache标签

4.1数据cache

4.1.1操作

4.1.2写缓冲

4.1.3数据cache冲刷

4.1.4诊断cache访问

4.1.5数据cache标签

4.2Cache控制寄存器

 

5AMBA片上总线:

5.1概述

两个片上总线被实现:

AMBAAHB总线和APB总线。

APB总线被用来访问片上的外围功能寄存器,而AHB总线则用于高速数据的传送.。

AMBA的总线规范可以从ARM网站下载,

.完整的AHB/APB总线标准和AHB/APB总线控制器通过TARGET包实现和定制。

附加的(用户定义)AHB/APB外部设备将被添加到MCORE模块。

5.2AHB总线

LEON使用AMBA-2.0AHB总线来连接处理器的cache控制器到memory控制器和其他的(可选的)高速单元。

在默认配置中,处理器是总线上唯一的主设备,两个从设备被同时实现:

memory控制器和APB桥。

表6列出了默认的地址分配。

地址范围

大小

映射

模块

0x00000000-0x1FFFFFFF

0x20000000-0x3FFFFFFF

0x40000000-0x7FFFFFFF

512M

1G

Prom

MemorybusI/O

Ram

Memorycontroller

0x80000000-0x8FFFFFFF

256M

On-chipregisters

APBbridge

0x90000000-0x9FFFFFFF

Debugsupportunit

DSU

表6:

AHB地址分配

试图访问一个不存在的设备将产生一个AHB错误响应。

5.3APB总线

APB桥作为一个从设备被连接到AHB总线。

并且作为APB总线上(仅有的)主设备。

大多数片上外设的访问都是通过APB总线.。

APB总线的地址映射可以查看表7。

5.4AHBtransfersgeneratedbytheprocessor

处理器通过指令cache和数据cache控制器连接到AHB总线。

两个cache控制器之间的访问冲突在本地得到解决。

只有一个AHB主设备被连接到AHB总线。

处理器将执行突发

转移到取指令cache行或读/写data作为结果of双load/

store指令。

字节,半字和字load/storeinstructionswillperformsingle(non-

sequentialaccesses.仅仅执行锁定转移LDST和SWAP指令。

Doubleload/storetransfersarehoweveralsoguaranteedtobeatomicsincethearbiterwill

notre-arbitratethebusduringbursttransfers.

11ModelConfiguration(模块配置)

该模块是可配置的,允许不同大小的cache数值,乘法器性能,时钟生成和目标工艺。

在DEVICEpackage包中有效的配置记录被选择后,多种配置被定义在TARGETpackage包的常数记录中。

12Simulation(仿真)

12.1Un-packingthetar-file(将tar文件解包)

该模型是一个gzip压缩的tar分发文件:

leon-2.x.x.tar.gz。

在unix系统中,使用命令gunzip-cleon-2.x.x.tar.gz|tarxf-’去解开当前目录里的模块。

leon模块具有以下的目录结构:

leontopdirectory(顶层目录)

leon/Makefiletop-levelmakefile(顶层makefile)

leon/leon/LEONvhdlmodel(leon源代码)

leon/modelsim/Modelsimsimulatorsupportfiles(Modelsim仿真器支持文件)

leon/pmonBoot-monitor(引导监督程序)

leon/synSynthesissupportfiles(综合支持文件)

leon/tbenchLEONVHDLtestbench(LEONVHDL测试台)

leon/tsourceLEONtestbench(Csource)(LEON测试台,C源代码)

12.2Compilationofthemodel(模块的编译)

在unix系统中,使用make命令在顶层目录中建立LEONVHDL模块和测试台。

执行make命令的时候如果没有指定目标(或者执行makeall)将使用编译器建立模块和测试台。

执行makevss时将和SynopsysVSS一起建立模块。

使用其他的仿真器,在leon和tbench子目录的makefile文件必须修改,以适应模拟器命令。

在非unix系统中(如windows),在leon和tbench目录中的文件compile.bat被用来编译正确的模块。

12.3通用测试台:

这个通用的测试平台中提供了tbench/tbgen.vhd。

通过设置适当的属性,该测试台可以产生leon系统模型的各种内存大小和配置。

试验台的默认配置,TBDEF,在tbench/tbdef.vhd中。

文件tbench/tbleon.vhd包含使用其他配置数量的通用测试平台。

一旦leon模块被编译,测试平台(如TBDEF)可以通过模拟来验证模型的行为。

模拟将在顶层目录开始。

模拟的输出如下:

##***StartingLEONsystemtest***

##Memoryinterfacetest

##Cachememory

##Registerfile

##Interruptcontroller

##Timers,watchdogandpower-down

##ParallelI/Oport

##UARTs

##TestcompletedOK,haltingwithfailure(测试完成,OK。

停止与失败:

#**Failure:

TESTCOMPLETEDOK,endingwithFAILURE(失败:

测试完成,以失败结束)。

仿真由于产生了一个失败而停止。

12.4反汇编

SPARC的反汇编器在DEBUGpackage中提供。

它使用测试台拆卸执行指令并打印它们到stdout(如果已使能)。

测试台的配置在一个以'

_d'

结尾的名字有分解使能。

12.5测试套件

由提供的套件决定哪一个测试台运行并且仅仅测试片上的外围设备和接口。

遵从经过测试的SPARC标准以及具有知识产权的测试向量,不提供相关模型。

重新编译测试程序,需要安装GaislerResearch()公司提供的LEON/ERC32GNU交叉编译器系统(LECCS)。

测试程序在tsource目录中,在顶层目录或tsource目录执行‘maketests’时被建立。

makefile将建立程序并且为测试台(testbench)生成prom和ram镜像。

预编译的镜像被提供所以可以不用安装编译器而运行。

测试程序探测LEON配置寄存器以确定选择哪一个特定的LEON配置并被使能。

只测试这些,如果没有FPU的存在。

测试程序将不尝试执行浮点运算单元测试。

12.6模拟器的具体支持

文件ModelSim/wave.do是Modelsim的宏文件用来显示leon有用的内部信号。

ModelSim的初始化文件(modelsim.ini)是在顶层目录并且leon和tbench目录提供相应的库映射存在。

完整的模型可以通过执行ModelSim内部的ModelSim/compile.do文件被编辑。

vsim>

domodelsim/compile.do

A.synopsys_vss.setup文件在顶层目录及leon和tbench目录,为SynopsysVSS提供适当的库映射。

12.7合成后模拟

提供的测试台,可用于模拟合成网表。

使用下列步骤:

1.编译完成模型(在顶层执行make命令)。

这一步至关重要,在综合过程中要使用相同的配置!

这一步是必要的,因为测试台(testbench)使用target,config和devicepackages。

2.在顶层目录,先编译你的ASIC/FPGA技术仿真库,然后再编译你的VHDL网表。

3.进入tbench,然后执行‘makecleanall’。

这将重建testbench。

‘linking’它与你的网表。

4.返回顶层目录,照常模拟testbench。

5.如果在模拟期间遇到‘X’问题,在tsource/leon_test.c中使能cache-raminitialisation例程,并且重建测试程序(makeall)。

13(Synthesis)综合

13.1概括

Themodeliswrittenwithsynthesisinmindand并且经过SynopsysDC的测试,Synopsys的FPGA编译器(FPGA-Express),Synplicity公司的Synplify综合工具。

Technologyspecificcells被用于实现IU/FPU寄存器文件,cacherams和pads。

这些cells可以自动推测(SynplifyandLeonardoonly)或者从targetlibrary直接例化(Synopsys公司)。

不可综合的代码被嵌入各种嵌入式编译指示设置,如下所示:

--pragmatranslate_off

...non-synthesisablecode...

--pragmatranslate_on

这个工作与大多数综合工具,尽管在Synopsys时需要将hdlin_translate_off_skip_text常量设置成“true”。

13.2(Synthesisprocedure)综合过程

综合将在‘syn’目录完成。

它包括Synplify的scripts/project-files(脚本/项目文件),Synopsys-DC,Synopsys-FC2和Leonardo。

源文件从leon目录读出,因此TARGET和DEVICEpackages被正确配置是至关重要的。

为了简化综合过程,在TARGETpackage包中提供了一组预先定义的配置。

在DEVICEpackage包中挑选的有效配置被使用。

下表显示了一些预定义配置的特征:

Configuration

cache

regfile

mul/div

rom

pads

target

syntool

fpga_2k2k

inferred

none

any

synp,leo

fpga_2k2k_softprom

fpga_2k2k_v8_softprom

fpga_2k2k_blockprom

instance

virtex

any

fpga_2k2k_v8_blockprom

gen_atc25

ATC25

gen_atc35

ATC35

gen_fs90

FS90AB

Table20:

Somepre-definedsynthesisconfigurations(表20:

一些预定义的综合配置)

注意:

8/16-bit内存支持是可选的,如果需要请确保option(s)使能。

确保DEVICEpackage中挑选正确的配置及有关的综合工具和目标工艺。

13.2.1Synplify—Synplicity公司的逻辑综合工具Synplify

使用Synplify工具来综合leon,启动Synplify在SYN目录和打开leon.prj。

一个综合运行大约需要1GHz的奔三电脑(128MB的RAM的必要)运行5分钟。

下表显示了一些获得的综合结果(布局后的时间):

Icache(Kbyte)

Dcache(Kbyte)

Regfileimplement.

Device

Freq(MHz)

Area

EAB

EPF10K200E-1

5800LC

blockram

XCV300E-8

45

5000LUT

RAM16X1

XCV400E-8

48

6300LUT

表21:

Synplify工程文件

FSMcomplier不幸的存在一些bugs并且必须关闭活一部分模块(包括适配器)将不能正确的被综合.。

同时synplify_pro,re-timing和Pipelining也同样必须被关闭以确保产生正确的结果。

13.2.2Synopsys-DC

使用Synopsys-DC来综合leon。

在syn目录开始综合并执行脚本‘leon.dcsh’。

在执行脚本之前,编辑脚本以确定库的搜索路径符合synopsys的默认安装设置路径。

并且时序约束正确:

/*******************************************/

/*ScripttocompileleonwithsynopsysDC*/

/*JiriGaisler,GaislerResearch,2001*/

/*Listpathstoyoursources,target,andlinklibrariesbelow.*/

includeatc35setup.dcsh

/*constraints-tailortoyourowntechnology.*/

frequency=62.5

clock_skew=0.25

input_setup=2.0

output_delay=5.0

/*don’ttouchanythingfromhereunlessyouknowwhatyouaredoing*/

顶层约束用于生成适当的synopsys约束控制。

13.2.3Synopsys-FC2和Synopsys-FE

使用Synopsys-FC2/FE来综合leon,在syn目录的fc2_shell(fe2_shell)开始执行脚本‘leon.fc2’

脚本将分析所有的源文件并且创建一个‘leon’工程。

编辑和优化被留给用户。

FC2/FE-3.4不支持自动推理的RAM单元,rams直接从targetlibrary例化。

目前,只有Xilinx的VIRTEX工艺通过TECH_VIRTEX包被支持。

13.2.4Leonardo

使用ExemplarLeonardo通过下面步骤来综合leon:

*启动Leonardo,并且选择目标的工艺和设备。

*阅读工艺库

*设置工作库到leon/syn。

*运行'

leon.tcl'

脚本进行分析和精心的设计。

编译和优化留给用户。

至关重要的是,在dont_elaborateswitch状态下源文件是只读的。

或Leonardo将不能够正确地解决某些生成报表。

只有Leonardoversion2001.1a或以后版本能被使用,早期的2000.x版本类型解析函数(typeresolutionfunctions)有缺陷,并且在模块分析期间将失败。

Leonardo有能力为registerfile和cache自动预测必需的ramcells。

14Portingtoanewtechnologyorsynthesistool(移植到新的工艺或综合工具)

14.1概述

leon使用technologydependantcells三种类型的工艺单元;

cache存储器的rams,IU/FPU寄存器堆的3端口寄存器文件,和pads。

这些存储单元能够被综合工具推断出或者从一个目标工艺库直接例化(targetspecificlibrary)。

对于每一个(technology)或实例方法,提供一个特定的包,选择例化方法和目标库是通过TARGETpackage的配置记录实现的。

如下是被提供的technologydependantpackages包。

package

Function

Instantiationmethod

TECH_GENERIC

Behaviouralmodels

inferred

TECH_VIRTEX

GeneratorsforXilinxVIRTEX

directinstantiated

TECH_ATC25

GeneratorsforAtmelATC25

TECH_ATC35

GeneratorsforAtmelATC35

TECH_FS90

GeneratorsforUMCFS90A/B

TECH_UMC18

GeneratorsforUMC0.18umCMOS

directinst

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2