X微处理器FPGA仿真的研究与实现(1)

合集下载

FPGA设计中仿真技术解决故障的方法

FPGA设计中仿真技术解决故障的方法

FPGA设计中仿真技术解决故障的方法本文针对实际开发过程中,浮现故障后定位困难、反复修改代码编译时光过长、上板后故障解决无法确认的问题,提出了一种采纳的办法来定位、解决故障并验证故障解决计划。

可以大大的节省开发时光,提高开发效率。

FPGA近年来在越来越多的领域中应用,无数大通信系统(如通信基站等)都用其做核心数据的处理。

但是过长的编译时光,在研发过程中使得解决故障的环节十分令人头痛。

本文介绍的就是一种用仿真办法解决故障从而削减研发过程中的编译次数,终于达到精确定位故障、缩短解决故障时光的目的。

文例所用到的软件开发平台为公司的 II,仿真工具为。

1 问题的提出系统开发在上板调试过程中,有时候浮现的bug是很极端的状况或很少浮现的状况,而现在通常的做法是:在故障浮现的时候通过SignalTap 把信号抓出来查找其问题的所在、修改程序;在改完版本后,先要对囫囵工程举行重新编译,然后再上板跑版本举行验证,看看故障是否解决。

这样就会浮现三个问题:①有时候故障很难定位,只知道哪个模块出错,很难定位到详细的信号上,给抓信号带来棘手。

假如故障定位不精确,漏抓了关键信号,则需要重新在SignalTap里添加信号、编译版本并再次上板定位故障,铺张时光。

②故障定位后,修改代码还需要再编译一次产生新版本的下载文件,修改后若还有问题则要重复这一过程,这样从故障定位到修改完成需要无数次编译。

③上板重新举行验证时,假如这个bug的浮现的几率很小,短时光内不再复现,并不能解释在极端状况下的故障真的被解决了。

举例解释:图1 SignalTap抓出的bug浮现时的数据图2 SignalTap抓信号界面例如在一个基带系统的FPGA规律版本中,输出模块调用了一个异步FIFO,某一时刻FIFO已空的状况下多读了一个数据,产生了bug,1所示。

该输出模块的功能是推断FIFO中是否有大于4个数据可读出,若大于则延续输出4个数据作为一组。

系统中采纳异步FIFO的内部读数据指针来做推断,而异步FIFO读写数据需要跨时钟域,需要起码2个时钟周期的握手时光,导致数据指针不精确。

FPGA初学之前后仿真分析

FPGA初学之前后仿真分析

FPGA初学之前后仿真分析最近在学习FPGA,感觉语⾔的学习到时很容易,但是由于缺乏电路图的硬件知识,所以看起来⽐较难懂,下⾯是对FPGA中仿真的⼀点理解,以后需要学习的地⽅还有很多啊。

⼀、使⽤ISE环境进⾏FPGA系统设计的时候,仿真是⼀个必不可少的步骤,即仿真过程是正确实现设计的关键环节,有两种:1.功能仿真(前仿真):在设计实现前对所创建的逻辑进⾏的验证其功能是否正确的过程,即布局布线以前的仿真。

2.时序仿真(后仿真):指布局布线后仿真,因为加⼊了线延迟信息,所以这⼀步的仿真和真正芯⽚的⾏为最接近,也是⽤于仿真芯⽚时序约束是否添加正确,布局布线后是否还满⾜时序等。

相同:两者仿真使⽤的仿真器是相同的,所需的流程和激励也是相同的;不同:时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,⽽功能仿真没有。

ISE环境中前后仿真的选项:以⼀个ALU的实现功能为例分析前后仿真的不同,其前仿真和后仿真的结果图为:前仿真图后仿真图从时序仿真图可以看出,后仿真存在着延迟。

本实验中存在的延迟也就是⼏ns,但是频率很⾼的时候,延迟可能会达到⼀个或者⼏个周期,这就要求⼯作频率不能超过最⾼⼯作频率。

那么最⾼频率怎么计算呢?⼆、计算最⼤⼯作频率⾸先需要知道FPGA中存在的延时有哪些,下⾯是常⽤的四种:1、纯组合逻辑延时(输⼊引脚到输出引脚),如图:2、输⼊引脚到同步元件之间的延时,如图delay23、同步元件到输出引脚之间的延时,如图delay34、不同时钟Clk1和Clk2之间的异步延时,如图delay4我们知道,⼏乎所有的FPGA设计平台都包含静态时序分析⼯具,利⽤这类⼯具可以获得映射或布局布线后的时序分析报告,从⽽对设计的性能做出评估。

⼯作频率的计算受到时序延时delay1、 delay2、 delay3、 delay4的影响。

在影响⼯作频率的参数中,由于针对某⼀个器件delay2 和delay3 是固定的,因此我们在设计中需要考虑的参数主要就是delay1 和delay4。

fpga应用开发与仿真 -回复

fpga应用开发与仿真 -回复

fpga应用开发与仿真-回复下面是一篇关于FPGA应用开发与仿真的1500-2000字的文章。

FPGA(Field-Programmable Gate Array)是一种被广泛应用于数字电路设计和开发的强大工具。

通过FPGA的使用,设计师可以通过编程对电路进行配置,从而实现各种功能。

而FPGA应用开发与仿真则是FPGA 设计的关键部分,本文将一步一步回答有关FPGA应用开发与仿真的问题。

首先,FPGA应用开发的第一步是选择适当的开发工具。

市面上有许多FPGA开发工具可供选择,如Xilinx的Vivado和Altera的Quartus 等。

这些开发工具提供了丰富的资源和功能,可用于设计、仿真和调试FPGA应用。

接下来,需要进行FPGA电路的设计。

设计工作通常包括学习目标系统的规格要求、定义电路结构和功能、选择适当的FPGA芯片和外设等。

设计过程中,设计师需要使用硬件描述语言(HDL)如VHDL或Verilog来描述电路。

这些HDL可以用于声明输入输出端口、描述电路内部结构、定义时序关系等。

完成设计后,需要进行FPGA应用的仿真。

在仿真过程中,可以运行HDL代码,模拟实际的电路行为,并观察电路在不同输入情况下的输出结果。

仿真可以帮助设计师验证电路的正确性与性能,并及早发现和解决问题。

常用的仿真工具包括ModelSim和Xilinx ISE等。

仿真完成后,设计师需要将FPGA应用编译为可执行位流文件。

编译过程包括将HDL代码翻译为逻辑网表、执行布局布线生成物理结构、生成位流文件等步骤。

这些步骤通常由开发工具自动完成,但也需要设计师进行必要的设置、优化和约束。

在生成位流文件后,需要将其下载到FPGA芯片中进行部署。

下载过程通常通过连接FPGA开发板和电脑进行,可以利用开发工具提供的下载工具完成。

一旦位流文件下载完成,FPGA芯片将按照设计的逻辑配置自身,并实现相应的功能。

部署完成后,可以对FPGA应用进行验证和调试。

基于fpga的微处理器设计毕业设计(论文)[管理资料]

基于fpga的微处理器设计毕业设计(论文)[管理资料]

毕业设计(论文)设计(论文)题目基于FPGA的微处理器设计摘要本文使用结构化编程方法,将微处理器内核按照功能划分为不同的模块,采用VHDL语言设计每一个模块的内部功能和外围接口,设计实现了一种基于FPGA芯片的微处理器系统。

该微处理器主要由控制器、运算器和寄存器组成,具有指令控制、操作控制、时间控制和数据加工等基本功能,可实现四位操作数的各种运算,其指令长度为16位定长,采用了直接寻址方式。

最后采用QUARTUSII对设计进行了仿真测试,结果表明设计实现了微处理器的主要功能。

关键字:FPGA,微处理器,VHDLABSTRACTA microprocessor on FPGA is realized by using structured programming. This microprocessor core is divided into several different function modules which are designed using VHDL.The microprocessor consists of controller, arithmetic unit and registers. It realizes the instruction control, operation control, time sequence control and data processing functions. The direct addressing mode is adopted. The various operations for 4bit operand can be achieved. Its instruction length is 16 bit.The design is simulated by using QUARTUSII, and the results show that the main functions of a microprocessor are achieved.Key Words:FPGA, CPU, VHDL目录摘要............................................................................................................................................. I I ABSTRACT..................................................................................................................................... I II 第1章绪论. (1)背景 (1)微处理器的概况 (1)课题研究方法及技术背景 (1)研究方法 (1)技术背景 (2)课题工作内容 (3)第二章微处理器体系结构 (4)CPU的功能和构成 (4)指令系统分析 (5)RISC 与总线结构 (5)指令系统 (6)指令时序分析 (8)RISC与流水线 (8)程序计数器与流水线 (8)CPU整体结构即设计思想 (9)CPU的外部引脚规划 (9)CPU的整体框图 (10)CPU结构的层次划分 (11)第三章CPU数据通路设计 (12)程序计数器模块PC (12)程序存储器PC_RAM (13)指令寄存器模块 (14)时钟发生器模块 (14)寄存器堆TRAM (15)ALU模块 (16)第四章CPU控制单元的设计 (18)控制器Control模块 (18)有限状态机FSM模块 (19)有限状态机 (19)利用的VHDL语言进行状态机描述 (19)第五章RISC CPU的仿真验证 (21)各模块的组合 (21)综合RTL电路图 (21)RISCCPU的功能仿真验证 (24)算术运算类指令验证 (24)逻辑运算类指令验证 (25)移位类指令验证 (25)LD数据输出指令仿真 (26)ST运算数据存储仿真 (26)总结 (27)第六章总结和展望 (28)参考文献 (29)致谢 ...................................................................................................................错误!未定义书签。

fpga应用开发与仿真

fpga应用开发与仿真

fpga应用开发与仿真FPGA应用开发与仿真引言:FPGA(Field Progamnable Gate Array)是一种集成电路(IC)的类型,它可以根据需要被编程和重新配置。

FPGA的可编程性使得它在许多应用领域都有广泛的应用,包括通信、工业控制、汽车电子、军事等等。

FPGA应用开发与仿真是在FPGA环境中实现设计和验证的重要步骤,本文将详细介绍FPGA应用开发与仿真的步骤和方法。

一、FPGA应用开发1. 设计目标确定:在进行FPGA应用开发之前,首先需要明确设计的目标和需求。

这包括设计的功能、性能要求和资源约束等。

明确的设计目标有助于确保开发过程的有效性和效率。

2. 设计流程规划:设计流程规划是为了确保设计开发的有条不紊进行。

设计流程包括采用何种设计方法(自下而上或自上而下)、设计工具的选择和设计过程中的验证步骤等。

3. 系统设计:系统设计是FPGA应用开发的第一步,涉及确定系统的架构和组件。

在这一阶段,设计者需要根据需求定义模块和接口,并进行系统级仿真验证,在这个阶段,设计者可以使用FPGA的开发板进行初步验证。

4. RTL(Register Transfer Level)设计:RTL设计是FPGA应用开发的核心步骤,他是将系统级设计转化为硬件级设计的阶段。

在这个阶段,设计者使用硬件描述语言(HDL)如VHDL或Verilog编写代码,来描述FPGA 上的逻辑电路和寄存器传输级处理。

RTL设计可以使用各种集成开发环境(IDE)进行验证和仿真。

5. 综合与布局:综合是将RTL级设计转换为门级(Gate-Level)设计的过程。

在这个过程中,设计者需要使用综合软件将RTL代码转换为门级网表,并完成布局。

布局是根据FPGA架构将逻辑元件物理位置分配的过程。

综合和布局的目标是生成一个具有所需功能和性能的可编程逻辑芯片。

6. 静态时序分析:静态时序分析是为了确保设计满足时序约束的一种分析方法。

通过静态时序分析,设计者可以确定设计是否满足电路的时序要求,并对设计进行必要的优化。

FPGA器件与MATLAB接口仿真过程(doc 8页)

FPGA器件与MATLAB接口仿真过程(doc 8页)

FPGA器件与MATLAB接口仿真过程(doc 8页)FPGA器件的开发平台与MATLAB接口仿真引言现场可编程逻辑门阵列FPGA器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。

FPGA器件集成度高、体积小,具有通过用户编程实现专门应用功能。

它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。

目前使用最多的Quartus II 软件支持几乎所有的EDA 工具,并且可以通过命令行或Tcl脚本与第三方EDA工具之间进行无缝连接。

但在很多工程设计应用中,由FPGA器件完成的主程序中只完成大量的数学运算,程序调试时以二进制输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。

对于很多工程设计人员来说MATLAB是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将FPGA与MATLAB接口,就可以快速、准确、直观地对FPGA程序进行校验和仿真,尤其在波形信号处理等工程应用领域具有实际意义。

出寄存器就可以方便的实现与MATLAB之间的接口了。

QuartusII 工具中提供了很多种类的寄存器宏模块,并能根据用户的要求进行编辑。

使用这些宏模块可以很容易地实现与MATLAB之间的接口。

下面就是几种RAM宏模块:接口的实现数据的输入很多FPGA程序在仿真时,需要输入特定条件下的数值。

程序设计时,可以在输入端口前加一个预置的存储器,那么初始数据的输入就变成了该寄存器的初始化。

一般情况下,这些初始数据很容易用MATLAB软件经过计算实现。

QuartusII中提供了两种寄存器的初始文件格式,.mif文件和.hex文件。

由MATLAB生成的数据可以方便的根据指定路径加载到寄存器模块中。

数据的输出数据输出和数据输入的原理是相同的。

将寄存器中的.mif文件或.hex文件导出,并加载到MATLAB中相应的变量中,MATLAB 的波形仿真功能就可使设计人员方便直观地观察程序结果了,这样大大地方便了设计人员在设计早期对程序进行校验。

基于FPGA的微处理器设计与测试

基于FPGA的微处理器设计与测试

基于FPGA的微处理器设计与测试基于FPGA的微处理器设计与测试1. 设计目标和需求首先,我们需要确定设计的目标和需求。

这包括处理器的架构类型(例如,单核还是多核)、指令集架构(例如,x86还是ARM)、处理器频率、内存大小等。

2. 处理器架构设计根据设计目标和需求,我们可以选择适合的处理器架构。

常见的架构包括冯·诺依曼架构和哈佛架构。

根据具体需求,我们可以选择相应的架构进行设计。

3. 指令集架构设计在确定了处理器架构后,我们需要设计适合的指令集架构。

这包括指令的类型、指令的操作数、寄存器的数量等。

通常,我们可以参考现有的指令集架构,如ARM指令集和x86指令集。

4. 处理器功能单元设计接下来,我们需要设计处理器的功能单元。

这包括算术逻辑单元(ALU)、控制单元、存储单元等。

我们可以根据指令集架构的要求来设计这些功能单元。

5. 数据通路设计设计完功能单元后,我们需要设计处理器的数据通路。

数据通路负责指令和数据的传输。

这包括寄存器堆、数据总线、地址总线等。

6. FPGA实现完成处理器的设计后,我们可以使用FPGA进行实现。

FPGA是一种可编程逻辑器件,可以根据设计需求进行配置。

将处理器的设计翻译为FPGA的配置文件,然后加载到FPGA中进行验证和测试。

7. 测试和验证在加载配置文件后,我们需要对处理器进行测试和验证。

这包括功能测试、性能测试和稳定性测试。

通过这些测试,我们可以验证处理器的正确性和性能。

8. 优化和调优在测试和验证过程中,我们可能会发现一些问题和性能瓶颈。

这时,我们需要对处理器进行优化和调优。

优化可以包括代码优化、电路优化等,以提高处理器的性能和效率。

9. 集成和应用经过测试和调优后,处理器可以集成到目标系统中进行应用。

这可以是嵌入式系统、网络设备、智能手机等。

通过集成和应用,我们可以验证处理器在具体场景下的性能和可靠性。

总结:基于FPGA的微处理器设计与测试是一个复杂而有挑战的过程。

fpga设计以及仿真流程

fpga设计以及仿真流程

fpga设计以及仿真流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 设计规划:确定设计目标和功能需求。

选择合适的 FPGA 器件和开发工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[ 4] [ 5] [ 6] [ 4]
2
高性能微处理器结构
X 微处理器 是一款 64 位通 用微处理 器, 基 于 IA 64 架构 , 采用 EPIC( 显式并行指令计算 ) 设计哲 学。EP IC 继承了超长指令字能够开发更大的指令 级并行性的能力及超标量 RISC 处理器指令长度固 定、 支持寄存器 寄存器型操作的优势, 克服了超长 指令字代码空间浪费和兼容性差的缺点, 提供了分 支提示信息、 Cache 提示信息等 , 以指导相应的硬件 结构。同时 , EP IC 机制采用多个不同的执行部件 , 能够并行执行多条指令。具有丰富的硬件资源 , 包 括: 128 个通用寄存器、 128 个浮点寄存器、 64 个谓 词寄存器、 6 个 整数 AL U 、 4 个 load/ st or e 部件、 2 个浮点部件、 3 个分支部件以及 6 个多媒体执行部 件。 X 微处理器体系结构如图 1 所示。
第 38 卷第 3 期 2008 年 6 月
微 电 子 学 Microelectronics
Vo l 38, N o. 3 Jun 2008
X 微处理器 FPGA 仿真的研究与实现
姚丽娜, 胡建国
( 湖南广播电视大学 , 长沙 410004)
摘 要:
X 微处理器是一款具有完全自主知识产权的通用 64 位高性能微处理器 , 规模大、 复杂度
、 禁
忌搜索 、 遗传算法 、 图划分、 整数规划 、 启发式 [ 7] 算法( GCL P) 、 基于调度的算法、 解空间平滑算法 等。比较常用的 F PGA 划分方法有双划分 [ 8] 、 多路 划分 、 约束驱动的划分、 基于性能的划分 、 基于 [ 10] 结构的划分 。已有的 FP GA 划分方法不能很好 地保证整个系 统划分后的时序正确性 和信号完整 性 , 很难直接应用于 X 微处理器的多片 F PGA 划分 过程。本文根据 X 微处理器设计的特点, 提出了一 种基于系统功能和流水线 ( Pipeline) 结构的 F PGA 划分方法, 通 过对关键模块的复用, 利用 F PGA 芯 片中 DCM 灵活可调特性 , 实现模块间的倍频传输, 确保流水线时序的正确执行和信号传输的完整性。 基于系统功能和流水线结构的 F PGA 划分方 法的基本思想: 根据系统功能对关键模块复用, 独立 的功能部件和流水线每一站 ( 级 ) 不细分 , 划分只在 流水线站间进行, 并按照各个功能部件的大小、 I/ O 数和流水线的执行顺序进行划分。要划分的微处理 器系统结构如图 1 所示。 X 微处理器的 F PGA 划分实现步骤如下:
n 维矩阵 IO n n 和尺寸的 1
n维
矩阵 S ; 4) 定 义 每个 F PGA 芯 片的 最 大 设计 空 间 为 Pin, Gat e , Pin 是 F PGA 最大用户 I/ O 数, Gat e 是 FP GA 系统门数量; 5) 定 义 每个 F PGA 芯 片的 实 际 设计 空 间 为 pin, gat e , pin 是实际所用 I/ O 数 , gate 是实际占 用门数量 ; 6) 在满足 流水线全局时序 运行正确性的 条件 下, 求解 pin 减 Pin 和 Gate 减 gat e 的最小值。得到 最优化的划分结果, 基本确定每片 FP GA 的资源使 用情况和功能模块的分配。 7) 保证全局时序的正确, 复用部分模块或逻辑 确保控制 逻辑的 锁步执行 , 加入 虚拟 I/ O 设计 逻 辑, 减少 FP GA 片间互连 I/ O 数目和本身的 I/ O 数 目。 系 统 最 终 划 分 为 6 片 Xilinx Virt ex II XC2V8000 的 F PGA 来实现。划分 后每片 FP GA 模块的分配如图 2 所示, 其中 , 3、 4 片 F PGA 中复用 指控部件 , 1、 5 片 F PGA 中复用 T L B 控制逻辑。
实现用户待验证的设计 , 利用测试向量, 或通过真实 目标系统产生激 励, 验证 和测试芯片的逻 辑功能。 F PGA 仿真的突出优点是速度快, 能够实时仿真用 户设计对各种输入激励的真实响应, 并充分考虑了 芯片/ 电路的操作时序。 FP GA 仿真在设计的早期 即可验证 CPU 功能的正确性, 支持硬件、 软件及整 个系统的并行开发 , 并能检查硬件和软件兼容性 , 在 目标系统中同时测试系统中运行的实际软件 。 F PGA 仿真为数字系统提供了与设计芯片功能 等价的硬件原型, 以接近实际运行速度的方式执行 设计模型。随着设计规模和电路系统复杂度的快速 增长, 单片 F PGA 芯片经常不能实 现整个设计, 整
Key words: F PGA emulation; F PGA partitioning ; V erificatio n platfo rm; M icr oprocessor EEACC: 1265F 程数据 , 下载该数据到 FP GA 器件 ; 用 F PGA 器件
1
引 言
X 微处理器芯片规模与功能上的扩展使得其功
[ 9] [ 8]
图1
X 处理器微体系结构
Fig. 1 A rchitecture o f X micro processor
3
FPGA 仿真平台的实现
FP GA 实现的设计与最终的设计在功能上具有
1) 分析系统体系结构设计和整个流水线的全局 时序执行过程, 确定需要复用的关键模块 ; 2) 把功能模块基于流水线结构进行布局; 3) 分别对 各功能 模块 的 RT L 级 代码进 行编 译、 综合 , 得到各功能模块的尺寸和 I/ O 链接关系,
[ 1, 2]
能正确性验证越来越困难 , 出错的概率也大大增加。 能否及时发现设计中存在的错误 , 对保证设计的正 确性和缩短设计周期至关重要。对微处理器全芯片 的验证, 如果采用软件模拟的方式来验证其设计的 正确性, 即使用最快的计算机 , 其速度仍然令人难以 忍受。因此, 需要更快捷、 更接近设计目标的验证手 段。 FP GA 仿真提供了有效机制。 FP GA 仿真使用 可动态配置的 F PGA 实现待验证的设计 , 利用专用 软件, 把用户的设计转换成仿真器所需的 F PGA 编
[ 3]
际运行速度的方式执行设 计模型。与 模拟验证相 比 , FP GA 仿真难以调试 , F PGA 仿真验证通常须在 软件模拟验证进行了一定阶段之后, 且用户设计的 逻辑正确性已经得到基本保证的前提下才开始, 而 且实现复杂、 成本代价高, 不便于故障诊断和调试。 随着设计规模和电路系统复杂度的快速增长 , 整个 电路或设计不得不划分为多片 F PGA 来实现。 3. 1 FPGA 划分 X 微处理器规模庞大, 含有 128 个通用寄存器 和浮点寄存器、 多个应用寄存器、 2 级缓存 ( cache) 、 整数 AL U 、 浮点 AL U 、 多媒体 AL U 、 分支( branch) 等功能部件, 设计规模达到千万门级。这样的规模 显然不可能用单片 F PGA 实现 , 需采用多片 F PGA 并通过专门设计的 F PGA 仿真板互连来实现 , 并对 整个待验证设计进行 FP GA 划分。由于 F PGA 的 容量和 I/ O 约束, FP GA 划分比 VL SI 划分更加困 难 , FP GA 容量和 I/ O 数目限制一直是 FP GA 划分 的瓶颈 ; 同时 , X 微处理器设计复杂度极高 , 如何保 证其信号完整性也是多片 F PGA 实现的难题。 关于 FP GA 划分的主要算法有模拟退火
一致性, 时序上非常接近 ; F PGA 仿真为 IC 设计提 供了与设计芯片功能等价的硬件原型, 并以接近实
第3期
姚丽娜 等 : X 微处理器 F PG A 仿真的研究与实现
387
初步确定 F PGA 的使用片数。假设有 n 个模块, 构 造一个 I/ O 的 n
1xn
点 , 基于流水线顺序执行时序 正确性, 提出了虚拟 I/ O 技术来扩展 I/ O 数量。 虚拟 I/ O 技术是利 用信号发送端 和接收端加 入打包逻辑和解包逻辑来扩展 F PGA 的 I/ O 数量。 打包逻辑和解包逻辑通过寄存器、 信号接收发送控 制开关和触发器实现, 如图 3 所示。打包逻辑首先 把要复用的信号用寄存器暂存起来, 通过一个计数 器实现的控制开关控制信号传输, 同时用倍频时钟 控制的触发器把复用信号发送出去; 计数器的位宽 与复用的信号数一致 , 并且计数器的时钟与触发器 的控制时钟一致; 解包逻辑用一个倍频时钟控制的 触发器接收打包逻辑发送的信号, 通过一个计数器 实现的控制开关, 将接收的信号分解到寄存器暂存, 通过寄存器输出给信号接收逻辑, 计数器的位宽与 时钟 打 包 逻 辑 一样 ; 倍 频 时 钟 由 F PGA 内 部 的 DCM 提供, 图 4 是 4 信号复用的打包逻辑和解包逻 辑电路图。
plex it y. Based on F PGA emulation of X micr opro cessor , diff iculties in F PG A emulatio n, including F PG A par tit io ning, FP GA pin r eplicating and sig nal transmission integr ity o f inter connected F PGA s, w ere discussed. V ir tual I/ O technique and F PG A par titioning based o n system function and pipeline structure wer e pro po sed. Fur ther mor e, a reconfig ur able general pur po se F PG A emulat ion board was dev elo ped. U sing these techniques, problems w ith emu latio n o f X processor based o n multi FP GA s wer e so lv ed.
相关文档
最新文档