基于SOPC的虚拟嵌入式开发系统
一种Javacard虚拟机IP软核设计

一种Javacard虚拟机IP软核设计0 引言虚拟机技术的出现,满足了人们不断增强的计算需求,确保了各种平台上应用的正确性与可靠性。
在资源受限的智能卡领域,规范化的Javacard 已经成为智能卡技术发展的一个重要方向[1]。
相比传统智能卡,Javacard 在ISO7816 的基础上具有面向对象开发环境、平台无关性、多应用共存性、Java 程序动态编辑、应用程序接口等方面优势。
Javacard 虚拟机是一种规范定义的抽象的计算机,存在着用户应用执行效率低的性能问题。
软件编译器无法解决Java 程序运行时高编译时耗。
硬件解释器、专用处理器、协处理器以及高性能FPGA 支持是主要的硬件方式研究趋势。
本文从虚拟机硬件实现的角度出发,对基于可编程逻辑器件的Javacard 虚拟机软核进行了广泛的研究探讨,并对可编程片上系统技术中的Avalon 交换式总线技术和用户自定义逻辑元件问题进行了的分析和研究。
面向Javacard 虚拟机的SOPC 原型系统指出了SOPCBuilder 的通用系统开发方法。
Avalon 总线互连IP 组成的系统,在并行数据处理、现场可配置性、可扩展性方面有着良好表现,具有广泛的嵌入式应用前景。
1 相关研究Javacard 虚拟机是Java 虚拟机的子集。
Java 技术兴起不久,大量研究开始重点关注于借助硬件方式来解决Java 虚拟机性能缺陷。
特别是随着FPGA 性能的提高使得为Java 虚拟机设计提供更高的硬件支持成为可能。
动态内存管理[2]、堆栈访问[3]、面向Java 虚拟机的片上网络[4]等方面研究通过为Java 虚拟机设计提供FPGA 硬件支持在性能上均获益颇丰。
在常规方法加速不够情况下,协同设计Java 虚拟机很划算。
合适的体系结构及协同设计方法,Java 虚拟机性能会得到很大的提高且可以通过应用在Java 虚拟机基准程序来评估。
Java 软/硬协同设计及Java 协处理器的研究[4~7]逐渐成为了另一个关注重点。
SOPC_系统设计实例

Sopc系统设计实例Sopc系统设计实例 (1)1 sopc系统设计流程 (1)2 SOPC 系统设计实例 (2)1.建立工程 (3)2.建立顶层设计文件 (10)3.用SOPC Builder建立一个新的SOPC硬件系统 (12)4.向系统中添加Nios II处理器 (14)5.添加片上存储器 (20)6.添加JTAG UART (22)7.添加定时器 (24)8.添加自定义组件七段数码管控制器 (25)9.自动设置基地址 (34)10.加入System ID模块 (34)11.生成系统 (35)12.例化Nios II处理器 (37)13.导入引脚分配 (38)14.编译并下载设计 (41)15.启动Nios II IDE (42)16.建立新工程 (42)17.修改系统库属性 (46)18.修改代码 (47)19.编译并运行工程 (49)1 sopc系统设计流程SOPC系统的设计流程如图1所示。
设计者首先根据任务要求决定系统需求,然后用SOPC Builder建立自己的SOPC系统,完成这项工作之后,硬件工程师和软件工程师可以开始协同工作。
硬件工程师首先建立一个顶层设计文件,将生成的SOPC系统例化,并设置引脚分配,时序要求及其他设计约束,,然后编译硬件设计并将FPGA设计下载到目标板中。
在硬件工程师工作的同时,软件工程师可以用Nios II IDE开发应用软件,并在Nios II IDE中使用Nios II 指令仿真器(ISS)运行并调试软件,等硬件工程师把硬件设计下载到目标板中之后,软件工程师将可执行软件下载到目标板上的Nios II 系统中,并在目标板上运行调试软件,如果发现软件设计不满足设计要求,则再改进硬件和软件的设计。
图1 sopc系统设计流程2 SOPC 系统设计实例用SOPC系统在DE2平台上实现一个计数器。
先在DE2平台上建立SOPC 系统的硬件,这个系统包括一个NIos II/s 嵌入式处理器、存储器、一个JTAG UART及一个定时器,一个ID模块。
基于cyclone

基于cycloneⅡ的虚拟示波器设计摘要以LabWindows/CVI为开发平台,利用嵌入NIosⅡ软核的FPGA构成SOPC系统,设计了1种双通道虚拟示波器,详细阐述了虚拟示波器的数据采集电路的设计方法,信息处理部分电路设计方法,SOPC系统的构建方法,USB通信接口的设计方法,完成了虚拟示波器上位机软件设计,实际测试结果表明,该虚拟器可以实现多种触发方式,界面友好,操作简单。
关键字:虚拟示波器 SOPC系统 CycloneⅡ芯片 NiosⅡ处理器0 引言虚拟示波器是采用基于计算机的虚拟技术,用以模拟虚拟示波器的面板操作和处理功能,也就是使用个人计算机及其接口电路来采集现场或实验室信号,并通过图形用户界面(GUI)来模仿示波器的操作面板,完成信号采集,调理,分析和显示输出等功能。
CycloneⅡ系列FPGA是Altera公司的低成本FPGA,具有以下特性:支持NiosⅡ软核处理器;嵌入式存储资源支持各种存储器应用;有从低到中等速度的I/O和存储器接口;使用片内锁相环管理片内和片外系统时序;支持串行总线和网络接口及各种通信协议;采用新的串行配置器件的低成本配置方案;广泛的IP核支持。
CycloneⅡ器件主要由嵌入式存储器块,逻辑阵列块(LAB),锁相环(PLL),内嵌乘法器模块和I/O单元(IOE)等模块组成。
嵌入式存储器包括数十个M4K存储器块。
每个M4K存储器块具有很强的伸缩性,可以实现最大4608位的存储器。
联合使用多个M4K存储器块可以形成更大存储容量的存储器。
使用这些嵌入式存储器能够实现双端口存储器,单端口存储器或者FIFO存储器。
LAB是由一系列相邻的LE构成的。
每个LAB包含16个LE,LE进位链和级联链,LAB 控制信号,LAB局部互联,LUT链和寄存器链。
CycloneⅡ中设置了复杂的全局时钟网络,以减少时钟信号的传输延迟。
有2~4个锁相环,可以用来调整时钟信号的波形,频率和相位。
ARM与FPGA的接口实现

4.2 基于Altera公司的Excalibur 系列芯片实现的图像采集处理系统
4.2 基于FPGA+ARM实现的星敏感器
4.2.1 星敏感器的原理框图
星空
光学 系统
图像 传感器
信号 处理
星点 提取
星图 识别
姿态 计算
姿态
导航星库
星表/导航星
观测星图/观测星
4.2.2 星敏感器的相关技术
镜头设计 图像传感器选择 图像驱动 图像处理(星图识别)
3 SOPC开发工具及开发流程
QUARTUS II + SOPC Builder + Nios II IDE
EDK(XPS+SDK) + ISE
-参考书 《基于EDK的FPGA嵌入 式系统开发》
4 嵌入式系统应用实例
4.1 基于Altera公司的Excalibur 系列芯片的EPXA10开发板
2 FPGA的嵌入式处理器
选择软核处理器还是硬核处理器?
对处理器的性能要求不高(仅要求几个到一两百个DMIPS,采用不多的 FPGA资源就可以,则采用嵌入软核处理器是合适的选择。
需要数据、协议处理能力超过300DMIPS,且难以由多个处理器分担,则
采用1,100MIPS的高性能PowerPC嵌入硬核处理器较合适。 FPGA中嵌入的处理器应当与FPGA及其所面向的市场、应用需求相匹配。
是否需要在FPGA中嵌入处理器?
FPGA适合用于逻辑控制、接口控制、规则数据处理,设计具有复杂算 法和逻辑控制系统时,需要结合使用嵌入式处理器 对系统集成度要求较高,将处理器嵌入FPGA能最大限度地提高系统集 成度,降低系统设计复杂度,加快上市时间。 对需求变化提供较大的灵活性,在FPGA中嵌入处理器较为合适。FPGA 与芯片处理器的结合的优点是无
实验七 SOPC 基础实验

实验七SOPC 基础实验SOPC即System-On-a-Programmable-Chip(可编程片上系统),本章通过一系列的实验,使学习者对SOPC的应用有较为深刻的认识,并对FPGA的仿真与设计环境有深入的了解,为进一步的工作奠定基础。
7.1 SOPC概述SOPC是PLD和ASIC技术融合的结果,它是一种特殊的嵌入式系统。
首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
由于FPGA无论在逻辑门密度还是在运行频率等诸多方面都取得了长足进步,基于FPGA的嵌入式系统成为SOPC的热点。
目前已经可以把处理器软核、ASIC硬核、数字信号处理器件以及网络控制等各种数字逻辑控制器以IP核的形式集成到FPGA芯片里,构成嵌入式系统。
7.2 基本硬件设计实验嵌入式开发环境EDK是用于设计嵌入式处理系统的集成软件,是利用嵌入式PowerPC™硬处理器核和/或Xilinx MicroBlaze™软处理器核进行Xilinx平台FPGA设计时所需的全部技术文档和IP。
EDK包括硬件部分和软件部分:1. 硬件部分:Xilinx Platform Studio (XPS)XPS是设计嵌入式处理器系统硬件部分的开发环境和用户图形界面。
可使用底层系统生成器BSB(Base System Builder )创建XPS工程,BSB能够快速和有效地创建工程设计。
Xilinx推荐使用BSB向导来创建任何新的嵌入式设计工程,BSB能够满足你所有设计的需要,并且可以帮助你节省很多时间。
使用BSB创建XPS的过程如下:创建顶层工程文件(*.xmp File)选择板型选择和配置处理器选择和配置多重I/O口添加内部的外围设备设置软件观看系统摘要页2. 软件部分:Software Development Kit (SDK)SDK是综合的开发环境,是对XPS的补充,可用C/C++进行嵌入式软件应用的编写和验证。
SOPC方案

SOPC方案引言:在当今数字技术高速发展的时代,各类电子设备的设计与开发成为了不可或缺的一环。
嵌入式系统的设计需求越来越复杂,为了满足这一需求,诞生了SOPC(System on a Programmable Chip)方案。
本文将详细介绍SOPC方案的定义、优势以及应用领域,以便更好地理解和应用该方案。
定义:SOPC是一种将系统级硬件和软件集成在一个可编程芯片上的设计方案。
通过SOPC方案,用户可以根据自己的需求灵活设计硬件系统,并利用编程方式控制系统的功能和性能。
SOPC方案的核心是可编程逻辑器件,如FPGA(Field Programmable Gate Array)。
优势:1. 灵活性:SOPC方案采用可编程芯片,使得系统硬件可以根据需求进行灵活定制。
不同于传统固定功能的硬件电路,SOPC方案可以根据用户的具体需求进行设计和修改,提供更加灵活的解决方案。
2. 可重构性:利用SOPC方案,用户可以通过重新配置硬件逻辑通过编程方式快速修改和调整系统功能。
这种可重配置性使得系统在设计阶段和实际应用中具备更强的适应性和可扩展性。
3. 性能优化:通过SOPC方案,用户可以根据应用的需求和资源限制精确控制系统的功能和性能。
此外,由于硬件和软件的紧密结合,SOPC方案有助于提高系统的运行效率和优化功耗。
4. 开发效率:SOPC方案通过软件和硬件的集成,简化了系统设计的流程。
借助现成的IP核(Intellectual Property Core)和开发工具,开发人员可以快速搭建嵌入式系统,并且可以使用高级编程语言进行开发。
应用领域:1. 通信领域:SOPC方案在通信设备的设计中得到了广泛应用。
通过SOPC方案,通信设备可以适应不同的接口、协议和传输速率,并且可以进行灵活的调试和维护。
2. 工业自动化:SOPC方案可以用于工业自动化控制系统的设计与开发。
通过SOPC方案,工控系统可以根据具体要求进行硬件逻辑的编程,实现自动化控制和数据采集等功能。
SOPC开发流程及开发平台简介
案例二:智能门禁系统的SOPC开发
要点一
总结词
要点二
详细描述
智能门禁系统是SOPC开发的另一个应用领域,通过集成微 处理器、读卡器、显示屏等模块,实现门禁的智能化管理 。
智能门禁系统SOPC开发同样涉及硬件设计、逻辑设计、 系统集成等多个环节。在硬件设计方面,需要选择合适的 读卡器、显示屏等器件,并设计合理的电路板布局和布线 。在逻辑设计方面,需要编写门禁控制程序和算法,实现 门禁的智能化管理。在系统集成方面,需要将各个模块进 行整合,并进行测试和调试,确保系统的稳定性和可靠性 。
IP核
可重用的硬件模块,用于加速SOPC系统的开发,如处理器核、存储器控制器等。
硬件描述语言
用于描述硬件逻辑的编程语言,如VHDL和Verilog。
软件开发平台
嵌入式操作系统
提供多任务管理和系统资源 管理功能,如Linux、 VxWorks等。
1
开发工具
用于编写、编译和调试应用 程序的软件工具,如Eclipse
IP核
用于设计可复用的硬件模块,如CPU、DSP、GPU等。IP核可以由第三方提供,也可以 自己开发。
软件开发工具
编译器
01
调试器
பைடு நூலகம்02
03
集成开发环境(IDE)
用于将高级语言编写的程序编译 成机器码,常见的编译器有GCC、 Clang等。
用于调试程序,常见的调试器有 GDB、JTAG等。
用于编写、编译、调试程序,常 见的IDE有Eclipse、Visual Studio等。
通信领域
信号处理
SOPC技术在通信领域广泛应用于信号处理,如调制解调、信道编解码等。
高速串行接口
SOPC技术可以实现高速串行接口,如PCI Express、Serial RapidIO等,用于高速数据传输。
基于Nios Ⅱ的SOPC系统设计
能囤 l
建立项层图
l
用S OPCBule建 i r d 立 Nis 理 器及 o处
所需外设接口
段. 借助 于 以计 算 机 为平 台的 E A工具 进行 _。 D 2 j
2 基 于 No l S C 设 计 流 程 is l的 0P
基本的 S P O C系统 , 致 可 以分 为 F G 存 大 P A、
1 概
述
S P S s m O rga a l C i1 O C fyt nP ormm be hp 即可 编 e
程 的片上 系统 是 一种 特殊 的片 上系 统(o )其 实 s c,
质就 是 S C技术 f O 由单 个 芯 片 完成 整 个 系统 的 主 要 逻辑 功 能1只 是 它利 用 了 F G , P A或 C L P D器 件 的可编 程 性来 进 行 S C设 计 n。S P O ] O C最早 是 由 美 国 At a 司 于 2 0 lr 公 e 0 0年 提 出来 的 , 同时推 出 并
于设计 工程 Байду номын сангаас件 ,建立 N o 核 。具 体流 程 如 图 2 is
所 示 [。 3 ]
21 硬 件 设 计 .
根 据 系统 要实 现 的功 能 . 定 No 处 理器 和 确 is
外 围器件 , : 如 显示 屏 、 钮 、 按 蜂鸣器 、 储器等 。 存 接
下 来 ,在 S P ule 中 建 立 系 统 要 添 加 的模 O CB i r d 块 , 括 : i I3 bt P 定 时 器 、 键 P O、 包 No I 2 i C U、 s 按 I L D PO、 部 R C I 外 AM 总 线 ( ao Avl n三 态 桥 ) 外 部 、
嵌入式SOPC实时图像处理技术研究
嵌入式SOPC实时图像处理技术研究摘要:嵌入式SOPC技术的出现,该系统不仅体积小,而且能耗小,可靠性好,电磁兼容性好,可重构性好,为嵌入式系统的发展开辟了新的途径。
本文以SOPC嵌入式系统为背景,着重于嵌入式 SOPC系统的软硬件协同设计技术的研究;在此基础上,结合 SOPC系统的发展趋势,提出了基于嵌入式 SOPC系统的硬件协同设计方法,阐述了嵌入式SOPC关键技术。
关键词:嵌入式SOPC;图像处理系统;软件开发0 引言目前,图像处理主要采用软件技术,但是随着最新的技术发展,可以采用SOPC技术对复杂的硬件进行精细的处理,将图像处理算法嵌入 FPGA芯片;将Nios1I芯片嵌入到图像处理系统中,可以大大加快图像处理的速度。
由于SOPC技术支持软/硬协同工作,所以,对人机接口,系统管理和常规功能都可以由软件完成。
1 整个系统的总体规划与软硬件的开发系统对SOPC技术在 FPGA芯片上的便携图像采集和数据的需求。
该系统可以将所获取的海量载体信息通过 USB接口或RS-232接口向 PC和 GPRS发送,并将所获取的新信息发送到数据中心进行验证。
该系统以Nios1I为核心的 FPGA为核心,周边设备及芯片由图像采集装置、显示器及片外 SDRAM、 FLASH存储器、输入设备等组成。
该系统的工作流程为:在完成系统的组态后,通过视频采集,将各画面进行变换,形成相应的影像资料,然后输入到 SDRAM中;Nios1I处理器负责后续的处理与控制。
通过数字模拟变换,将处理后的图像实时地显示在显示器上。
1.1图像采集接口电路设计该系统使用OV7640数字彩色CMOS图像传感器,美国 OmiVision。
本芯片具有640x480的分辨率,每秒30帧的图像,采用逐行扫描的方法,以数字信号的形式输出。
该方法主要包括:NIOS对OV7640中的各个内存进行初始化,并进行查询和等候,OV7640将条形图采集到数据存储中,再以 DMA形式存储;NIOS将从SDRAM中抽取并解码。
NIOS2平台简要介绍
基于NIOS2的SOPC系统构建1 NIOS II体系结构Nios2处理器是Altera公司推出的32位RISC嵌入式处理器它是SOPC的核心。
具有200DMIPS 用来计算同一秒内系统的处理能力它的单位以百万来计算以上的运算能力处理器以软核的形式实现具有高度的灵活性和可配置性。
Nios II系列包括三种产品1 Nios II/f快速最共的系统性能中等FPGA使用量 2 Nios II/s标准高性能低FGPA使用量 3 Nios II/e经济低性能最低的FGPA 使用量。
Nios II系列支持使用专用指令。
专用指令是用户增加的硬件模块它增加了算术逻辑单元ALU。
开发者能为系统中使用的每个Nios II 砥鞔唇ǘ啻?56个专用指令这使得设计者能够细致地调整系统硬件以满足性能目标。
专用指令逻辑和本身Nios II指令相同能够从多达两个源寄存器取值可选择将结果写回目标寄存器。
同时Nios II系列支持60多个外设选项通过选择合适的外设获得最合适的处理器、外设和接口组合而不必支付根本不使用的硅片功能。
Nios II特性全32位指令集、数据和地址路径32个通用寄存器32个外部中断源单指令3232乘法器、除法器可产生32位的结果专门用于计算64位和128位乘法的指令用于单精度浮点运算的浮点运算指令单指令筒形移位寄存器可以同很多片上外设、接口、片外存储器和片外外设接口使用IDE驱动硬件调试模块可以轻松的对处理器进行开始、停止、中断等操作图1.1是Nios II处理器核的结构图各模块将分别做简要介绍。
图1.1 Nios II处理器核模块图数据处理主要由算术逻辑单元ALU完成现有的Nios II 内核中暂时没有协处理器。
用户逻辑接口Custom Instruction Logic用来连接用户定制的逻辑电路与Nios II内核。
在上图中可以看出Nios II采用哈佛结构数据总线和指令总线分开。
为了调试方便Nios II处理器集成了一个JTAG调试模块可以方便的与IDE 环境联合调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SOPC的虚拟嵌入式开发系统
对于“虚拟”的理解 设计一个嵌入式开发板,有这样一些硬件: 微处理器,USB接口,LED指示灯,LCD显 示器,外部SDRAM,输入按键,以及下载代 码所需的JTAG接口。 如何通过FPGA来创建这些硬件,并让它们 合理的连接在一起呢?
USB外设
SDRAM
嵌入式开发系统的开发流程
硬件开发以及调试 软件开发以及调试
概念设计
硬件环境搭建
驱动程序以及应用软件编写
软件下载入硬件中调试
嵌入式开发系统的开发流程
开发流程一:选择具体的处理器或者微处理,并选 定具体的外围硬件电路,构成一个硬件开发环境。
嵌入式开发系统的开发流程
开发流程二:根据所选择的硬件系统,选择合适的 软件开发环境,开发相应的应用软件或者驱动程序。
OUTPUT OUTPUT
OUTPUT
pin_name19
OUTPUT
pin_name20
OUTPUT OUTPUT
pin_name21
pin_name22 pin_name23 pin_name24 pin_name25 pin_name26
pin_name27
OUTPUT OUTPUT OUTPUT OUTPUT
clk_0 reset_n LineState_to_the_USB2_0[1..0] RxActive_to_the_USB2_0 RxError_to_the_USB2_0 RxValid_to_the_USB2_0 TxReady_to_the_USB2_0 usb_vbus_to_the_USB2_0 in_port_to_the_button_pio[7..0] LCD_E_from_the_lcd LCD_RS_from_the_lcd LCD_RW_from_the_lcd LCD_data_to_and_from_the_lcd[7..0] out_port_from_the_led_pio[7..0] out_port_from_the_seg_pio[7..0] address_to_the_ssram_0[20..0] adsc_n_to_the_ssram_0 bw _n_to_the_ssram_0[3..0] bw e_n_to_the_ssram_0 chipenable1_n_to_the_ssram_0 data_to_and_from_the_ssram_0[31..0] outputenable_n_to_the_ssram_0
虚拟嵌入式开发系统相对于传统的嵌入式开发而言,有许多的优点:
1.
2.
3.
具有很强的裁剪性。不同于传统的开发系统,虚拟嵌入式开发 系统可以任意增减硬件设备,而不需要对整体做很大改动。 极大的减小了技术风险。在开发中,技术竞争是一个十分大的 风险,对技术的评估如果通过传统开发模式进行,会加大风险。 实时性很强。嵌入式系统的一个特点就是实时性很强,某时某 刻有哪些行为,必须要很好的得到控制。传统的开发系统,通 过寄存器,指示灯,或者其它显示设备来观察信号,不具有很 强实时性,而虚拟嵌入式系统则有很强的实时性。
1.传统嵌入式系统的开发流程; 2.基于SOPC虚拟嵌入式开发系统的开发流程; 3.基于软件SOPC Builder的虚拟嵌入式开发系统开 发流程 ; 4.自行设计硬件处理器,验证虚拟嵌入式开发系统 对于其它处理器的可行性; 5.基于SOPC的虚拟嵌入式开发系统未来预测;
基于SOPC的虚拟嵌入式开发系统
开始设计
嵌入式软件的编写
C8051硬件IP和的创建
生成二进制文件
利用二进制文件创建 对应的ROM或者RAM 硬件结合并仿真分析
定时器模块 存储器控制模块 中断寄存器控制 模块
指令控制模块
特殊寄存器控制 模块
串行数据传输 模块
ALU模块
端口控制模块
时钟控制模块
C8051:my_c8051
ale codefetche1 datafetche1 debugack fetch flush intromsel1 pcince1 psen ramoe clk ramwe debugprog romoe debugreq sfroe debugstep sfrwe ea acc[7..0] reset p0o[7..0] p0i[7..0] p1o[7..0] p1i[7..0] p2o[7..0] p2i[7..0] p3o[7..0] p3i[7..0] rom_oe rom_datao[7..0] rom_addr[13..0] ramdatai[7..0] ramaddr[7..0] sfrdatai[7..0] cycle1[3..0] phase1[2..0] pclreg1[7..0] pchreg1[7..0] instr_show[7..0] ramdatao[7..0] databus_show[7..0] a2_show[7..0] regsbank_show[1..0] sfrdatao[7..0] sfraddr[6..0] romdatai[7..0] ramdatao[7..0] romaddr[13..0]
嵌入式开发系统的开发流程
开发流程三:将开发的软件下载到硬件开发板上,在 硬件开发板上观看软件的运行正确与否。
基于SOPC的虚拟嵌入式开发系统
SOPC简介 SOPC(System On a Programmable Chip ),片 上可编程系统的简称。SOPC是一种特殊的嵌入
式系统,它是片上系统(SOC),即由单个芯 片(FPGA\CPLD)完成整个系统的主要逻辑 功能。但它不仅是简单的SOC,它也是可编程 系统, 具有灵活的设计方式,可裁减、可扩 充、可升级,并具备软硬件在系统可编程的 功能。
基于SOPC的虚拟嵌入式开发系统
对于“虚拟”的理解 这里所说的“虚拟”,指的是在不需要硬件 环境的支持下,通过软件来仿真硬件的行为。 在开发的过程中,不需要真正的硬件,而是 利用FPGA的硬件可编程性,通过FPGA软件, 创建嵌入式开发所需要的硬件设备,然后将 这些“硬件设备”连接起来,从而构成一个 由软件组成的嵌入式开发环境。
基于SOPC的虚拟嵌入式开发系统
比如,要产生JTAG的IP核,首先,需要了解它 的工作原理。在此基础上,可以编写如下代码:
JTAG_IP
代码通过验证后,即可使用。 这里要注意的是:在编写一个硬件IP的时候,必须要 先考虑微处理器与硬件外设之间是如何连接的,即采 用怎样的总线进行连接,可以采用Avalon总线, WishBone总线,PCI等总线,不同的总线提供给硬件 设备不同的接口。
clk debugprog debugreq debugstep ea reset p0i[7..0] visual_rom:my_visual_rom
ale codefetche1 datafetche1 debugack fetch flush intromsel1 pcince1 psen ramoe_show ramwe_show romoe1 sfroe sfrwe acc[7..0] p0o[7..0] p1o[7..0] p2o[7..0] p3o[7..0] romaddr1[13..0] cycle1[3..0] phase1[2..0] pclreg1[7..0] pchreg1[7..0] instr_show[7..0] databus_show[7..0] a2_show[7..0] regsbank_show[1..0] sfrdatao[7..0] sfraddr[6..0] ramdatao_show[7..0] ramaddr_show[7..0]
OUTPUT OUTPUT
pin_name9
pin_name10 pin_name11 pin_name12 pin_name13 pin_name14
Oቤተ መጻሕፍቲ ባይዱTPUT OUTPUT OUTPUT OUTPUT
pin_name8
pin_name15
pin_name16 pin_name17 pin_name18
基于SOPC Buidler的开发流程
软硬件都创建好之后,将其导入到第三方 软件Modelsim中进行分析。以下是仿真 后的时序波形图:
LED灯的时序图
CPU数据总线时序图
CPU指令总线时序图
SOPC Builder由于使用的局限性,只能生成 分析以软核NIOS II为核心的虚拟嵌入式开发 系统。如今,商业领域中一般使用的是以 MC8051或者ARM为核心的开发板,如果要 生产上述两种核心的虚拟开发系统,该如何 操作?能否有一种通用的设计模式?
visual_ram:my_visual_ram
clk ramoe ramwe ramaddr[7..0] ramdatain[7..0]
p1i[7..0] p2i[7..0] p3i[7..0]
romdatai1[7..0] ramdatai_show[7..0]
frdatai[7..0]
基于SOPC的虚拟嵌入式开发系统未来预测
基于SOPC的虚拟嵌入式开发系统
按照同样的方式,创建其它硬件的IP核,将 它们通过Avalon总线连接起来,即可构成一 个硬件系统。
unnamed
pin_name
pin_name1
INPUT VCC INPUT VCC
INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC
应用群体:传统嵌入式开发的开发人员重点还是在 软件上,对于硬件的了解也只是概念性的;而 SOPC开发人员主要关注硬件的架构设计,从属于 硬件开发群体。 基于SOPC的虚拟嵌入式开发系统主要运用如下: 验证嵌入式程序的可实现性,其中硬件的设计,对 于开发者而言应该是一个黑箱;硬件对于开发者而 言,只有特定的功能引脚具有可见性,所以该系统 主要针对软件开发者。