tag 标签: SOPC

相关博文
  • 热度 25
    2014-8-6 10:18
    3041 次阅读|
    0 个评论
      1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活定制NiosII CPU的许多特性甚至指令,可使用Altera公司提供的大量IP核来加快开发Nios II外设的速度,提高外设性能,也可以使用第三方的IP核或VHDL来自行定制外设。完成Nios II的硬件开发后,SOPC Buider可自动生成与自定义的Nios II CPU和外设系统、存储器、外设地址映射等相应的软件开发包SDK。在生成的SDK基础上,启动Nios II IDE(传统的)或 Nios II SBT for Eclipse(7.0版本以后的)进入Nios II软件开发流程。用户可使用汇编或C,甚至C++来进行嵌入式程序设计,使用GNU工具或其它第三方工具进行程序的编译连接以及调试。   2、 Qsys是Altera公司为Quartus II 10.0版本推出的新的嵌入式处理器硬件设计工具,Qsys系统级集成工具可以使嵌入式设计人员面向Nios II, 以及基于ARM或MIPS的嵌入式处理器和可配置Intel Atom处理器开始硬件设计。Qsys利用了业界首创的FPGA优化芯片网络技术来支持多种业界标准IP协议,提高了结果质量,具有很高的效能。Qsys采用类似SOPC Builder的界面,支持与现有嵌入式系统移植的后向兼容。而且,这一高级互联技术将支持分层设计、渐进式编译以及部分重新配置方法。 Qsys是Altera SOPC Builder工具的后续产品,引入了FPGA优化芯片网络技术,与SOPC Builder相比,存储器映射和数据通路互联性能提高至两倍,SOPC Builder适合单层次设计,而Qsys提高了系统级设计效能,适合多层次设计,并且,Qsys支持业界标准IP接口,如AMBA,使之可以支持设计重用。   3、 Altera公司建议用户从Quartus II 10.0版本开始使用Qsys设计Nios II硬件系统, 老版本SOPC Builder的设计可以移植到Qsys,具体参考Altera的“SOPC Builder to Qsys Migration Guidelines”(AN-632-2.0,SOPC Builder到Qsys移植指南)。
  • 热度 31
    2011-4-30 18:43
    3501 次阅读|
    1 个评论
    !-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -- 一、项目简述 该项目是基于 ACTEL 公司的 Smartfusion 系列的芯片为核心,搭建的一个最小系统板。将相关的引脚和接口甩到插头上,用来增加扩展板,从而实现各种功能。 首先,从器件的选型说起。 选择核心处理芯片 A2F200M3 ,理由有很多,主要有以下几点: 1 、如同芯片资料所介绍的那样,该芯片由 FPGA , ARM CORTEX M3 核和可编程模拟通道组成,足以在很小的体积实现如此多的功能,确实非常吸引人。 2 、该芯片不像 ALTERA 或者 XLINX 出的 FPGA 芯片那样,不用配置芯片,它将程序保存在芯片自带的 FLASH 上,这样显然在上电速度上有了很大的提高,同时也避免了在程序在下载过程中的意外情况,增加了一部分的可靠性。 3 、 ACTEL 在西安的代理公司能提供给我三个样片,而且他们的售后也比较好,也许是比 ALTERA 小的缘故吧。 4 、封装选用了 256 管脚的 FBGA 封装。 在该板上,一共使用了两种电源,分别是 +3.3V 和 +1.5V ,输入是 +5V 的电源。 +3.3V 的电源转换芯片选用了 LM1117DT-3.3V ,这是个低压降正负电压调节器,主要特点是限流,热关闭。最大输出电流 800mA ,电压输出偏差 ± 2% 。封装选用了贴片的 TO-252/TD03B_N 封装。 +1.5V 的电源转换芯片选用了 LMS1587CS-1.5V ,同样是个低压降正负电压调节器,该芯片的主要特点是快速响应。其最大输出电流 3000mA ,电压输出偏差 ± 1% 。封装选用了贴片的 TO-263/TS3B_N 。封装 这个芯片选的挺失败的,一是没有考虑其主要特点,二是查询 RS 之后得知在上海只有 7 片,量非常少。所以后边如果继续生产的话肯定得改。 电源芯片的选型目前看来一是根据系统需求考虑其主要特点,二是根据系统需要计算出其负载,如功率,电流等是否能够满足。这个还需要在后边的设计中不断完善。 A2F200M3 芯片内部提供了 100MHz 的晶振,但是也可以加外部晶体。这里在外部按照评估板上的例子选择了 32768Hz 和 20MHz 的两个晶体。 32768Hz 的晶体选了一个比较好的,频率稳定性 60ppm ,温度范围 -20 ~ +60 0 C 。封装是直插型, 2 ∅ X6.2mm 。 20MHz 晶体同样选了一个直插型,频率稳定性 50ppm ,温度范围 -20 ~ +70 0 C 。 参照评估板的电路,复位芯片选用 DS1818 ,封装选用 SOT-23 。 在该最小系统上,增加了一块 SPI 接口的 FLASH 芯片,这里选用 M25P80 。这是一款 8M , 75Hz SPI 总线接口的 FLASH 芯片。 JTAG 接口借鉴评估板的资料绘制,没有什么改动。其余也就是些接头。 二、电路板的设计与关键点 1 、电路板采用 6 层板。 2 、核心芯片 A2F200M3 的电源引脚加 0.01uF 的去耦电容。 3 、在 +5V 电源输入处加 100pF , 0.01uF , 0.1uF , 1uF , 10uF ,在电源转换芯片附近 +3.3V 和 +1.5V 输出的地方加 100pF , 0.01uF , 0.1uF , 1uF , 10uF 的去耦电容。 4 、该芯片有个 JTAG SEL 引脚,我按照评估板的原理图绘制。但是 ACTEL 的工程师建议拉高。后来我还是增加了选择的地方。   三、经验及问题 1 、在设计板卡时,最好增加上电的 POWER GOOD LED 灯和调试参考的 DEBUG LED 灯,选择贴片的封装,大约是 0805 电容的大小,这样更直观和方便。 2 、最好在关键位置留出检测点。 四、改进 1 、参考了 emcraft 的板子 ,他们在板子上增加了 16M PSRAM 和 8M NOR Flash 。在此需要考虑硬件的存储容量是否能满足系统要求。 2、该电路板上应用了uCOS-ii作为实时系统,对于其实时性和多任务的性能,目前还在测试中。
  • 热度 26
    2011-4-30 18:40
    3228 次阅读|
    0 个评论
    !-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -- 一、背景 SOPC 是个很时髦的概念,计划基于 Cyclone3 系列的 FPGA 芯片,使用软核 NIOS Ii 为核心,设计一个具有数字输入输出, AD 采集和 DA 转换和串口的系统。 二、芯片选型 核心芯片选用 Cyclone III 系列的芯片。 Cyclone III 是 ALTERA 新推出的 FPGA 芯片。在这里选用 EP3C25E144C7 ,封装是 144 pin EQFP 。 配置芯片选择了 EPCS16SI16N , 16M 的。 ALTERA 的 FPGA 芯片可以设计成多种配置模式。有 AS 配置模式, AP 配置模式, PS 配置模式和 FPP 配置模式。在这里我选择了 AS 配置模式,就是串行配置模式。 JTAG 配置中有一种模式是可以将数据保存再配置芯片里的,但是当时没选择,其实应该选的。应该是 JTAG 和 AS Configuration 配置。 设计输入是 +5V 电源,电源转换芯片选用了 HT7333 , HT7325 , HT7318 ,因为核心芯片需要 +1.2V 的电压,故在 HT7318 芯片后增加了一个电阻分压电路。 HT73XX 系列芯片是低功耗的低压差线性稳压器,因为以前用过,所以在这里选用。其实这几个芯片的选型是很冒失的。而且最后由于 HT7318 后的电阻分压电路无效,串接了一个二极管才成功。 而且 HT73XX 系列芯片的输出最大只有 250mA ,所以这个板子的电源部分设计是个失败。基本没做太多的考虑。 这里记一下稳压器 LDO 的四大要素:压差 Dropout 、噪音 Noise 、电源抑制比 PSRR 、静态电流 Iq 。 Ad 选择了 AD7888 ,这是一个 SPI 接口的 AD 采集芯片。 Da 选择了 MAX521 ,同样是一个 SPI 接口的 DA 转换芯片。 232 串行芯片选择了 MAX3222EWN ,这个没什么可说的。 422 穿行芯片选择了 MAX3490 ,同样没什么可说的。 三、电路设计 该电路板采用了 8 层板的设计,其实现在想来最多 6 层就够了。 四、经验及教训 1 、最愚蠢的事情是我把 50MHz 的晶振的封装选错了,太小,结果板子回来后发现无法焊接。最后只能半翘着焊接,不过最神奇的是板子最后竟然调通了。 2 、电源部分的设计实在是个渣,连设计都算不上,随便选了三个稳压器就放上去了,最后还得需要加了个二极管才顺利的实现 +1.2V 的电压。 3 、 JTAG 部分的电路应该当时再慎重一些, AS 配置方式才是当时最好的选择。 五、改进建议 1 、板子其实可以再稍微大点,布局如果安排的好的话, 4 层也许就能下来。 2 、封装的选择一定要慎重,要努力做到一版成功。 3 、芯片的周围最好还是要多加 0.01uF 的电容,该板上加的很少。 4 、由于后来改用 ACTEL 芯片的原因,没有在这个板子的调试上花费太多时间,所以对 CycloneIII 系列芯片的特点摸的不是很清楚。如果后边有时间的话,最好还是能将其重新拾起来,好好的调试调试,摸一摸芯片的特性。
  • 热度 19
    2011-3-25 15:39
    2350 次阅读|
    0 个评论
    SDRAM是经常用到的外设。有时候一次操作成功,有时候不断出现不同的错误。在此将自己学习过程有关SDRAM的经验和教训总结起来,供大家分享和批评。 1、出现如下错误: 原因 (1)sdram的数据端没有用双向端口bidir (2)误将sdram_cas_n写成了sdram_cas,虽然编译没有错误。但点击这个端口时会发现,没有指定的引脚标号。其他引脚名称也需要注意,防止类似错误。 (3)sdram_clk的偏移量是个很重要的因素,也很复杂。我的是sdram和cpu都得是50Mhz,sdram_clk的偏移量是-75deg.
  • 热度 19
    2011-3-16 21:41
    2580 次阅读|
    0 个评论
    在FPGA开发板上都有几种不同的存储器,比如SDRAM,FLASH,EPCS,还有内部onchip memory,这几种存储器间是如何通信或者构建一个系统。该如何搭配他们呢,不少人都问到这个问题。在这里我做个总结以方便初学者的学习。 首先看看在sopc builder中reset address和nios IDE中System Library中的program memory(.text)、read-only data memory(.rodata)等 这几个地址的关系和作用 根据altera 的文档解释如下: .text :代码执行区 .rodata:只读数据区,存放静态全局变量 .rwdata:可读写数据区,存放可读写变量和指针变量 .bss:未初始化变量区 .text-the actual executable code .rodata-where read only data used in the execution of the code .rwdata-where read/write variables and pointers are stored heap-where dynamically allocated memory is located stack-where function call parameters and other temporary data SOPC builder 在Nios II more "cpu_0" setting 标签中的reset address决定了flash programmer 的下载存储器(一般是选EPCS controller 或者CFI flash),并且决定了程序从此处开始启动。exception address指定的是异常处理地址。当然,程序在运行前所有的数据都是存放在flash(EPCS或者CFI FLASH)中如果你设计的系统reset address与其它地址的设置不相同,比如reset address 和exception address ,reset address 和IDE中的program memory(.text)设成不同的存储器,那么系统从reset address启动时都会从flash中把相关数据自动下载到相应的地址或者初始化相应地址。 通过上面的认识,我们就比较清楚了各存储器间可进行哪些搭配了,reset address的选择可选EPCS controller 或者CFI flash ;program memory(.text)可选择onchip memory ,SDRAM,CFI flash等。如果reset address为EPCS则在使用flash programmer时程序是下载到EPCS芯片中。如果reset address选择CFI flash,则flash programmer时程序是下载到CFI flash芯片中。 需要注意的是这里有个特殊情况。例如在开发板上经常有这么一个简单的系统,CPU+onchip memory +LED_PIO,reset address选择onchip memory;感觉整个系统都没有用到flash。而且onchip memory在系统断电后数据就会消失,那么程序代码是存在哪,系统是如何从onchip memory启动听呢?先来看看onchip memory模块的描述信息:在onchip_memory.v中有这么一段the_altsyncram.init_file = "onchip_memory.hex",很明显onchip memory的初始数据来自"onchip_memory.hex",而"onchip_memory.hex"是在Nios IDE的System Library中存储器有选择onchip_memory(至少有一项是选择onchip_memory,如果都不选,就不会生成)时,在build结束的时候生成的。于是当我们把System Library中存储器的选择都选择onchip_memory时,在IDE中build结束后所有的程序代码都生成在"onchip_memory.hex"中,再在QII中全编译一次时,系统通过onchip_memory.v调用"onchip_memory.hex"从而把所有的程序代码以及配制信息都生成在POF和SOF文件中,使用QII的programmer直接下载到EPCS芯片或者FPGA芯片内程序都会立即执行。因为这里的特殊性就有很多网友询问了,reset address 选择onchip memory,而IDE中把代码区都选择SDRAM调试的时候程序正常运行,再在QII全编译后下载POF文件就运行不了呢?问题就是出在这了,在这里可以总结出一点,要让程序在onchip memory之外的存储器中运行,那么reset address就必然选EPCS 或者CFI flash,并且要通过flash programmer把程序下载到flash中。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangyanquen/archive/2010/07/05/5714806.aspx
相关资源