13341|16

27

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

红色飓风:Spartan605试用报告--汇总 [复制链接]

试用报告(一) 拿到开发板了, 把试用心得,体会和大家分享一下. 先上张板子的酷图 <验证平台> 硬件的东西验完了,下面对板子进行测试, 简单看了一下U盘中带的资料 其中 \Driver_and_Tools : 主要是USBUART的驱动,SP605的一个BSP. \CompactFlash_Demo_Image: CF卡中的镜像文件. \SP605_Embedded_kit: 是相关的文档和例程 参考文档\Xilinx_USB_stick\SP605_Embedded_Kit\Documentation\ ug727_sp605_Getting_Started_Guide.pdf 进行开发板的检测, 提供两个demo进行检测,程序的镜像都存在ACE CF卡中. 按照文档中的步骤 step by step,即可看到现象 1>. Video Demo 使用资源:

MicroBlaze soft processor

External DDR3 Memory Interface

External Memory Controller (EMC) for Flash memory

On-chip Memory (RAM)

Networking (Gigabit Ethernet)

UART (connected from SP605 board via the USB-UART connector)

Interrupt Controller (Intc) & Timer

Compact Flash Interface (SystemACE)

GPIO (LEDs, LCD, Switches)

Video Pipeline DSP Cores

现象: webserver + DVI输出 +Gigabit图片传输 + DSP处理 + 串口输出 2>. PetaLinux Demo 使用资源:

• MicroBlaze soft processor

• External DDR3 Memory Interface

• External Memory Controller (EMC) for Flash memory

• On-chip Memory (BRAM)

• Networking (Gigabit Ethernet)

• UART (connected from SP605 board via the USB-UART connector)

• Interrupt Controller (Intc) & Timer

• Compact Flash Interface (SystemACE)

• GPIO (LEDs, LCD, Switches) 现象: 通过UART输出Linux启动信息,UART作为控制台 现象都正确,说明板子是正常工作地 写的有点简单,因为文档很详细,图配的也多~ 大家可以去官网直接下载程序和相关文档,链接 http://www.xilinx.com/products/boards/s6embd/reference_designs.htm 有问题欢迎讨论
此帖出自FPGA/CPLD论坛

最新回复

不错,就是没有系统个工程文件,如果有就好了   详情 回复 发表于 2016-12-12 15:32
点赞 关注
个人签名红色飓风-简化FPGA设计
http://www.fpgadev.com
 

回复
举报

27

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

<试用SDK>

<试用SDK>

一直没摸过XilinxMicroBlaze,现在终于有机会试一下了J
感谢EEWorldXilinx提供的这次机会~

SP605开发套件中,提供软件ISE11.1,还有一张光盘是升级到11.4的Update Patch,
全部装完后,
打开XPS,
按照ug728_sp605_hardware_tutorial.pdf step by step ,即可完成一个硬件平台的搭建以及测试.


XPS是一个完整的定制CPU系统的工具,
包括综合,引脚分配,生成下载文件,简单C程序的编写,编译,下载等.
完成的东西比sopcbuilder,这可能也是编译慢的原因.


比如在XPS下即可完成一些基本的调试,


1>. 直接利用XMD,用命令行的方法调试,
有关XMD调试的详细文档可见
http://www.xilinx.com/support/documentation/dt_edk_edk11_xpsandsdk.htm
xilinx的文档写的比较详细,就不说了.

2>. 直接在XPSApplication里新建一个测试程序,
比如一个LED的测试程序
#include "xparameters.h"
int main()
{

int *led_base;


led_base = 0x81420000;


(*led_base) = 0x0000000a;


return 0;



}

经编译,初始化到BRAM, update bitstream,再下载,即可看到现象.
适合不喜欢用命令行的人J


使用的感受:
XilinxXPS使用起来相当不方便,界面做的非常复杂,
每添加一个IP或是configure IP,都会有10s左右的等待,
每个需要exportIO,必须得一个个的make external,而每次都得很长时间,
Generate Bitstream时更基,会长达30min左右 - -||
Alterasopcbuilder就很快,界面也简洁.


另外自己新建了一个MicroBlaze的工程,
XPS下加了DDR3,UART,LED_PIO,
并在SDK下写了一个测试LED的程序,
把工程传上来供大家参考.

standard.rar (13.98 MB, 下载次数: 222)

此帖出自FPGA/CPLD论坛
个人签名红色飓风-简化FPGA设计
http://www.fpgadev.com
 
 

回复

103

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
“Generate Bitstream时更基,会长达30min左右 - -||
Alterasopcbuilder就很快,界面也简洁.”
;P

那倒是真的,就这点而言,Altera做的的确好,无法辩驳
此帖出自FPGA/CPLD论坛
 
 
 

回复

265

帖子

0

TA的资源

一粒金砂(高级)

4
 
这板子的资源够设计的了,软件应该能接受吧
此帖出自FPGA/CPLD论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

5
 
恩,希望能试用
此帖出自FPGA/CPLD论坛
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

6
 

Spartan605试用报告(二)

SP605 试用分享
(引用)如今的存储器工艺、性能发展之快真是让人岑木结舌,但是随之而来的控制复杂度也大大增加,对于PCB设计要求、如何使存储器跑到最大带宽,都是工程师们要考虑的事。对于电子市场来讲,现在一片1Gbit的800M速率的DDR3颗粒价格不到50元,无论从成本和性能讲都有绝对大的优势。
      XILINX 公司率先在FPGA芯片中集成了MCB硬核,它可以支持到DDR3,而且对于大多数厂家的芯片系列都支持,这也是spartan6系列闪耀的地方。对于工程来讲,其MCB硬核优秀的误码校验和偏移时钟校验,以及PLL_ADV工作时的稳定、高精度都大大保证了项目产品的质量。而对于用户接口又是以FIFO的读写方式,代替复杂的ddr3读写逻辑。以sram的地址映射方式代替复杂的行列地址选择。可见spartan6 ——MCB控制器的诞生是值得大家高兴的。
因为时间仓促,对于sp605只是跑了下它上面的MCB硬核部分,其实这个板卡得功能还是很强大的,不仅有光纤接口、DVI接口,还有常用的千兆网,基础配置很高DDR3,还配置了256Mbit的norflash(不仅可以用作存储fpga程序而且还可以做为sopc系统的存储),而2GB的CF卡的灵活性也是板卡的一个亮点。下面我就分享下如何使用MCB来读写605上的ddr3.


Spartan6 LX45T 产品


MCB ——CLK设计须知

1.        MCB -CLK驱动说明
(1)        对于两个以上的MCB同时使用,对于同端的PLL输出clkout0、clkout1要共用。
如果只应用一个,Xilinx建议首先要选择3_bank,这样不会占用配置引脚和复用引脚。
  MCB布局
从PLL输出的时钟只有两条时钟线可以到达硬件的左右两侧,并与IO_clk网络相连,因此同侧的MCB要共用一样的IO_clk网络、跑相同的速率。(如clkin200M则clkout0、1=400M).

(2)        BUFPLL_MCB驱动器内部参数为DIVIDE=2,2x_clk提供给ddr2的通讯速率为doudle rate,是pll输入时钟的两倍,而1xclk则给ddr2的硬件主时钟。
MCB驱动器示意图
(3)Calibration clk校验时钟则要求时钟设计在min=50M / max=100M
(4)HDL内部逻辑时钟则与MCB端口设置的宽度有关 最佳设置公式如下,时钟应该大于等于这个clk0:Clk0(内部逻控制辑同步时钟)=system_clk(硬件输入时钟)*2(double rate)*X(X=ddr2的数据宽度*16 or*8 or*4)/MCB端口的设置宽度128 or 64 and etc。
(5)CMD_FIFO的读写clk建议要使用一致的时钟,如使用Clk0(内部逻控制辑同步时钟)。

2. 关于程序中时钟PLL的设置

module memc3_infrastructure # 中主要是设计时钟源的文件,系统的时钟都在这里设置
(1)        内部差分时钟输入可以根据自己设计选择加入或否
(比如你愿意出高价格买差分的晶振“100M差分170RMB”,你可以加上如下的BUF转成单时钟,反之修改设计中的这部“如下”注销即可,并将NET“sys_clk_ibufg” LOC=“单端晶振”)
//   IBUFDS SYS_CLK_INST
//     (
//      .I  (sys_clk_p),
//      .IB (sys_clk_n),
//      .O  (sys_clk_ibufg)
//      );
(2)内部时钟输入相位和频率可以根据自己设计选择参数,具体如下:
(后面有对其评估的详细报告)
PLL_ADV #
        (
         .BANDWIDTH          ("OPTIMIZED"),
         .CLKIN1_PERIOD      (CLK_PERIOD_NS),
         .CLKIN2_PERIOD      (1),
         .CLKOUT0_DIVIDE     (1),  //******用于处理外部的ddr2数据的2X时钟
         .CLKOUT1_DIVIDE     (1),  //******用于处理外部的ddr2数据的2X_180时钟
         .CLKOUT2_DIVIDE     (6) ,  //*******内部logic工作时钟
         .CLKOUT3_DIVIDE     (6),  //*******校验时钟50---100M
         .CLKOUT4_DIVIDE     (1),  //*******可选频率端口
         .CLKOUT5_DIVIDE     (1),  //*******可选频率端口
         .CLKOUT0_PHASE      (0.000),
         .CLKOUT1_PHASE      (180.000),
         .CLKOUT0_DUTY_CYCLE (0.500),
         .CLKOUT1_DUTY_CYCLE (0.500),
         .CLKOUT2_DUTY_CYCLE (0.500),
         .CLKOUT3_DUTY_CYCLE (0.500),
         .COMPENSATION          ("SYSTEM_SYNCHRONOUS"),
         .DIVCLK_DIVIDE          (1),
         .CLKFBOUT_MULT         (6),//**参数设置 MUSLT/clkoutx*clkinbuf=actecl clk
         .CLKFBOUT_PHASE        (0.0),
         .REF_JITTER               (0.005000)
         )


说明:设输入的时钟为X
       CLKOUT0_DIVIDE= X * CLKFBOUT_MULT/ CLKOUT0_DIVIDE _paramater
此帖出自FPGA/CPLD论坛
个人签名红色飓风-简化FPGA设计
http://www.fpgadev.com
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

7
 

Spartan605试用报告(三)

CORE  GENERATER
1.新建工程(ise11.1以上版本)file—>new project



2. 选择spartan6_etc配置如下(选择新片类型)




这里选择Spartan6_Xc6slx45T 核心芯片-3速度等级的fgg484封装器件



3.选择语言Verilog,点击OK下一步设置(其他配置如下图:


4.在Memory ——IP中选中MIG如下图


                                      然后的两个对话框都为next下一步。

5选择硬件在bank3调用MCB, DDR3器件



6.选择DDR3的输入时钟,以及型号为MT41J64M16XX-187E

7.选择阻抗匹配参数和自动刷新有效,这里得MIG3.3_IPCore多了高温检测自动刷新。

8.我们选择128bit位宽得双向接口,并且按照raw,bank,column排列虚拟映射地址

9.都可以按照默认情况,最后我们注意一下system clock,3.3以上得ip都可以自己选择输入的时钟类型差分还是单端的(以下版本MIG需要手动改动输入时钟)

10.后面的界面完全可以按照默认,next。
这样在选定的目录下可以看到刚刚生成得。Ucf文件。在里面更改:
NET  "c3_sys_clk_n"                              LOC = "K22" ;
NET  "c3_sys_clk_p"                              LOC = "K21" ;
NET  "led0"                                      LOC = "W15" ;
NET  "led1"                                      LOC = "D21" ;
NET  "led2"                                      LOC = "AB4" ;
NET  "led5"                                      LOC = "D17" ;
在源文件中加入显示状态指示灯:
/////////////////////////////////////////////////////////////display///////////////////////////////////////////////////////////////////
assign  c3_p0_wr_mask    = 16'b0000_0000_0000_0000;
assign  led0              = LED_BEGIN_DISPLAY;     //开始写首地址指示灯亮起
assign  led1              = LED_FINISH_DISPLAY;     //结束地址指示灯亮起
assign  led2              = error_data_display;          //如果读出的数据错误指示灯亮起
assign  led5              = LED_CLK_COUNT[24];     //200M的时钟是否工作为1HZ点亮
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
此帖出自FPGA/CPLD论坛
个人签名红色飓风-简化FPGA设计
http://www.fpgadev.com
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

8
 

Spartan605试用报告(四)--软件设计

重ddr3的其实地址向内其写入递增数据,当写满数据后与数据源比较,如有错误error指示信号为高电平。并通过逻辑分析仪采样看是否出现错误,计算误码,评估系统稳定性。
刚刚设置后CORE GEN生成的文件目录如下:


(1)对于example_design为用户测试使用测试功能参见ug388文件的debug部分

(2)User_design为用户实际使用的工程,里面有源文件以及基础的约束文件(我们开发主要应用这里的东西)

说明:在example的文件下里的chipscope工程可以直接用来仿真,而且里面提供编译的批量处理文件。这样很方便的运行逻辑,然后下载chipscope仿真即可。而且测试工作方式很全面。
时序、使用说明:

1.
如框图所示对于用户端口有单独的cmd指令端口,对于指令的操作类似于fifo的控制模式,其深度为4_deepth

主要信号功能描述
  1. ************************CMD 指令部分*********************

  2. .c3_p0_arb_en(1'b1),                    //注意仲裁使能引入为高电平
  3. .c3_p0_cmd_clk(c3_clk0),               //c3_p0_cmd_clk
  4. .c3_p0_cmd_en(c3_p0_cmd_en),          //CMD时能en、高有效
  5. .c3_p0_cmd_instr(c3_p0_cmd_instr),      //为3bit命令接口如3’b000写命令 当然这里也支持数据刷新,我们为自动刷新,控制字参考UG388的用户接口说明
  6. .c3_p0_cmd_bl(c3_p0_cmd_bl),           //64深度的fifo向ddr2搬运的数据数量里最多为64个和fifo深度想通
  7. .c3_p0_cmd_byte_addr(c3_p0_cmd_byte_addr),    //32map地址如软件测试
  8. .c3_p0_cmd_empty(c3_p0_cmd_empty),          //高有效空flag
  9. .c3_p0_cmd_full(c3_p0_cmd_full),               //高有效满flag

复制代码


Cmd
发送命令时序关系:



读写数据接口功能描述


1.
然后就是读写的数据的有关接口,对于128bit设置的端口模式,其中端口的主要参数如上,他们共用的fifo数据深度为64_deepfifo
  1. ***********************WRITE FIFO部分***********************
  2. .c3_p0_wr_clk(c3_clk0),                  //c3_p0_wr_clk
  3. .c3_p0_wr_en(c3_p0_wr_en),              //写数据的使能
  4. .c3_p0_wr_mask(c3_p0_wr_mask),         //屏蔽数据的宽度
  5. .c3_p0_wr_data(c3_p0_wr_data),           //写数据接口
  6. .c3_p0_wr_full(c3_p0_wr_full),            //写满数据flag
  7. .c3_p0_wr_empty(c3_p0_wr_empty),        //写空数据flag
  8. .c3_p0_wr_count(c3_p0_wr_count),         //写计数
  9. .c3_p0_wr_underrun(c3_p0_wr_underrun),   //fifo不够写标志
  10. .c3_p0_wr_error(c3_p0_wr_error),
复制代码


写数据FIFO时序图:



在使能有效的高电平写入数据
  1. ***********************READ  FIFO***********************
  2. .c3_p0_rd_clk(c3_clk0),                   //c3_p0_rd_clk
  3. .c3_p0_rd_en(c3_p0_rd_en),               //读信号使能
  4. .c3_p0_rd_data(c3_p0_rd_data),            //写数据端口
  5. .c3_p0_rd_full(c3_p0_rd_full),             //读满数据flag
  6. .c3_p0_rd_empty(c3_p0_rd_empty),         //读空数据flag
  7. .c3_p0_rd_count(c3_p0_rd_count),          //读数据技术指针
  8. .c3_p0_rd_overflow(c3_p0_rd_overflow),    //fifo不够读标志
  9. .c3_p0_rd_error(c3_p0_rd_error),           //读error信号
  10. 均为高电平有效
复制代码


读数据
FIFO时序图:



在使能有效的高电平有数据在总线上,可以看见读计数寄存器递减
测试操作,先写入fifo内部64128bit的数据,然后发送一个写命令,写进ddr2中,然后写进完毕由wr_conter= =0判断。读16128bit的数据从写入的地址比较是否一致。

  1. ***********************Verilog  设计***********************
  2. 状态机说明:
  3. localparam  IDEL             = 4'b0000;    //初始化寄存器设置
  4. localparam  WRITE           = 4'b0001;    //写入32个128bit数据
  5. localparam  CMD_WRITE_PRE = 4'b0010;    //写入数据命令准备
  6. localparam  CMD_WRITE_EN  = 4'b0011;    //cmd命令写进fifo
  7. localparam  CMD_DELAY      = 4'b0100;   //延迟状态机
  8. localparam  CMD_READ_PRE  = 4'b0101;   //读命令数据准备
  9. localparam  CMD_READ_EN   = 4'b0110;   //读命令写进FIFO
  10. localparam  READ_WAITE     = 4'b0111;   //判断是否写进ddr2
  11. localparam  READ            = 4'b1000;   //从DDR2读取数据,返回IDEL状态
复制代码


对于端口的mask设置问16’b000000000000000.即全不覆盖ddr2 16bit总线数据,覆盖使用时相应位置高





此帖出自FPGA/CPLD论坛
 
 
 

回复

27

帖子

0

TA的资源

一粒金砂(中级)

9
 

Spartan605试用报告(五)--chipscope验证说明

  1. ////////////////////CHIPSCOPE_WATCH////////////////////
  2. wire  [35:0] CONTROL0;

  3. ddr2_find_error ddr2_find_error_icon (
  4.                           .CONTROL0(CONTROL0)                             // INOUT BUS [35:0]
  5.                                 );

  6. ddr2_find_error_ila ddr2_find_error_ila (
  7.     .CONTROL(CONTROL0),                                                    // INOUT BUS [35:0]
  8.     .CLK    (c3_calib_clk),                                                     // IN  c3_clk0  
  9.     .TRIG0({c3_p0_wr_data,error_data_display,c3_clk0}),                             // IN BUS [129:0]
  10.     .TRIG1({rd_data_display,c3_p0_rd_en,c3_clk0}),                                 // IN BUS [129:0] c3_p0_rd_data
  11.     .TRIG2({state_ddr2,c3_p0_cmd_empty,c3_p0_rd_empty,wr_count}),                 // IN BUS [11:0]  error_display
  12.         .TRIG3({c3_p0_cmd_en,c3_p0_cmd_instr,c3_p0_cmd_bl,c3_p0_cmd_byte_addr}),     // IN BUS [39:0]
  13.     .TRIG4({c3_p0_wr_count}),                                                 // IN BUS
  14.         .TRIG5({c3_p0_rd_count}),                                                 // IN BUS [6:0]
  15.         .TRIG6({rd_data_compare,c3_p0_wr_en,rd_count})                              // IN BUS [134:0]
  16.           );
复制代码



观测信号列表:

包括错误指示信号,读数据使能,状态机指示state_ddr2,写入数据c3_p0_wr_data,写入数据地址c3_p0_cmd_byte_addrc3_p0_cmd_bl写入数据长度,c3_p0_cmd_instr读写操作命令,c3_p0_cmd_en写入命令使能,读写数据的计数指示,读出数据,和预比较数据源。

整体时序图可以看见error一直为低电平,可以看到读出的数据和预计数据源相符合,而且板卡上的ds3-ds7指示灯显示ddr3的工作正常


写入的递增数据源


按照递增的地址写入递增的数据,而且读出的数据也是无误的递增数据。








chipscope的触发设置面板里面设置eerorr指示信号发生为高电平为触发条件,采集数据



可以长时间的采集发现没有错误,本测试为30分钟,证明板卡的ddr3400M的工作频率下正常工作,逻辑控制也很稳定

此帖出自FPGA/CPLD论坛
 
 
 

回复

103

帖子

0

TA的资源

一粒金砂(高级)

10
 
很不错的说,顶一下
此帖出自FPGA/CPLD论坛
 
 
 

回复

2万

帖子

74

TA的资源

管理员

11
 
赞一个 :)
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

12
 
不错,支持一下.
此帖出自FPGA/CPLD论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

13
 

Spartan605试用报告一------SunJie

见附件!

开发板试用报告.rar (58.45 KB, 下载次数: 69)

[ 本帖最后由 sunjie19840522 于 2010-6-24 16:35 编辑 ]
此帖出自FPGA/CPLD论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

14
 

开发板试用报告二

开发板试用报告.rar (189.74 KB, 下载次数: 86)
此帖出自FPGA/CPLD论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

15
 

Spartan605试用报告三

见附件! 开发板试用报告.rar (450.61 KB, 下载次数: 109)

此帖出自FPGA/CPLD论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

16
 
大爱啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

17
 
不错,就是没有系统个工程文件,如果有就好了
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表