加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 6.8  典型实例11:ChipScope功能演示
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

FPGA设计开发软件ISE使用技巧之:典型实例-ChipScope功能演示

2013/08/26
1
阅读需 21 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

 

6.8  典型实例11:ChipScope功能演示

6.8.1  实例的内容及目标

1.实例的主要内容

本节通过一个简单的计数器,使用ChipScope的两种实现流程,基于Xilinx开发板完成设计至验证的完整过程。本实例的工作环境如下。

·  设计软件:ISE 7.1i。

·  综合工具:ISE自带的XST。

·  仿真软件:ModelSim SE 5.8C。

·  在线调试:ChipScope Pro 8.2i。

·  硬件平台:红色飓风II代Xilinx开发板。

·  实例内容:计数器。通过ChipScope Pro观测计数器的计数值,代码参见本书实例代码的“典型实例11”文件夹。其中count_new文件夹对应采用流程1实现的工程,count文件夹对应用流程2实现的工程。

使用ChipScope Pro进行在线调试主要有两种实现流程。

(1)基于ChipScope Pro Core Generator的实现流程。

·  调用ChipScope Pro Core Generator生成逻辑分析仪的网表文件。

·  修改用户RTL,插入逻辑分析仪代码。

·  综合,实现,下载bit配置文件。

·  调用ChipScope Pro Analyzer观察波形。

(2)基于ChipScope Pro Core Inserter,通过新建资源的实现流程。

·  对工程文件进行综合,生成网表文件。

·  调用ChipScope Pro Core Inserter,插入逻辑分析核。

·  布局、布线,生成bit配置文件并下载。

·  调用ChipScope Pro Analyzer观察波形。

由上面可以看出,两种实现方式的主要区别在于生成逻辑分析核的方式不同。本实例将分别采用这两种方式应用ChipScope Pro观测FPGA内部信号。

为了便于读者的理解,本实例将编写一个简单的计数器,通过ChipScope Pro观测计数的数值。代码的功能仿真结果如图6.59所示。

图6.59  计数器功能仿真结果

其中,count为8位计数值,采用循环计数方式。

2.实例目标

通过本实例,读者应达到下面的目标。

·  熟悉ChipScope工具的使用方法。

·  熟悉基于ChipScope Pro Core Generator的实现流程。

·  熟悉基于ChipScope Pro Core Inserter的实现流程。

6.8.2  基于ChipScope Pro Core Generator的实现流程

基于ChipScope Pro Core Generator实现流程的具体步骤如下。

(1)新建工程,添加源代码

新建ISE工程后,将源代码文件counter_new.v及约束文件counter.ucf添加至工程中,如图6.60所示。

(2)启动ChipScope Pro Core Generator。

运行“开始”/“程序”/“ChipScope Pro 8.2i”/“ChipScope Pro Core Generator”命令,启动ChipScope Pro Core Generator,出现如图6.61所示界面。

         

           图6.60  新建工程结果         图6.61  ChipScope Pro Core Generator用户界面

 

(3)选择集成控制核(ICON核)。

首先在核类型选择页面中选择生成ICON核,如图6.61所示。

(4)选择目录及器件。

如图6.62所示,在本实例中选择Spartan3器件。输出路径选择新建工程所在的文件夹。控制端口的数目为1,控制端口的数目可以根据用户的需要设置。如需要观察多组数据时,可以设多组控制端口。这里只需要观察内部计数器的计数值,因此设置为1。

 

(5)选择语言类型和综合工具。

如图6.63所示,本实例中设置语言类型为Verilog,综合工具为Xilinx XST。

图6.62  ICON输出路径和FPGA系列设置对话框

图6.63  设置语言和综合工具

 

(6)生成ICON核。

如图6.64显示为生成的ICON核的相关信息,如发现有误,可以单击“Previous”按钮做修改后重新生成。

图6.64  生成ICON核

 

(7)选择集成逻辑分析仪(ILA核)。

生成ICON核后,单击“Start Over”按钮,回到核类型选择页,如图6.65所示,选择需要生成的核为ILA。

图6.65  生成集成逻辑分析仪

(8)设置输出路径、器件参数和时钟参数。

如图6.66所示为设置路径为新建工程所在路径,器件为Spartan3,采样时刻为时钟的上升沿。

图6.66  设置ILA输出路径、FPGA器件、采样时刻对话框

 

(9)设置触发参数。

触发参数的设置包括:触发端口数目(Number of input Trigger ports)、每个触发端口的触发宽度(Trigger Width)、触发条件判断单元个数(Match Units)和类型(Match Type)等。

此外,“Enable Trigger Sequencer”选项用于使能触发条件链。即设置触发条件为一“条件链”,只有依次满足“条件链”上的各个条件时才会被触发。如图6.67所示,如有与图中参数设置不一致之处,请自行修改。

(10)设置存储深度和数据位宽。

存储深度即在满足触发条件后要采集多少数据,存储深度的大小由FPGA的RAM资源大小决定。由于ChipScope所采集的数据都是保存在FPGA内部,因此存储深度的大小不能超过FPGA的RAM的最大值。如图6.68所示,选择“Data Same As Trigger”选项表示数据信号与触发信号相同,数据位宽即为触发端口的触发宽度。

(11)设置语言类型和综合工具。

如图6.69所示,本实例中选择Verilog及Xilinx XST。

 

(12)生成ILA核。

单击图6.69中的“Generate Core”按钮,生成逻辑分析仪(ILA),如图6.70所示。

图6.67  设置触发参数对话框

图6.68  设置存储深度和数据位宽对话框

图6.69  设置生成实例的语言类型和综合工具

图6.70  生成ILA核

 

(13)将ICON和ILA插入设计。

完成上述步骤后就完成了集成控制核(ICON)和逻辑分析仪(ILA)的生成,系统生成的主要文件如表6.5所示。

表6.5 ChipScope生成文件列表

icon.edn

集成控制器的网表文件

icon.ncf

集成控制器的网表约束文件

icon_xst_example.v

集成控制器的嵌入式例子代码

ila.end

集成逻辑分析仪的网表文件

ila.ncf

集成逻辑分析仪的网表约束文件

ila_xst_example.v

集成逻辑分析仪的嵌入式例子代码

用户需要做的是根据提供的例程代码来修改自己的代码,将生成的集成控制核和集成逻辑分析仪插入到设计当中。具体修改时,需要在源文件中添加如下代码:

  icon i_icon //  ICON core instance,实例化ICON核

    (

      .control0 (control0)

    );

wire [7:0] trig0;

ila i_ila //  ILA core instance,实例化ILA核

  (

    .control (control0),

    .clk (clk),

    .trig0 (trig0)

  );

assign trig0 = count;

从代码中可以看出要做的工作主要是实例化ICON核和ILA核。注意要将观察的信号(在这里为count)与ILA核的输入信号相连接,系统时钟与ILA核的时钟输入相连接,ICON的输出控制信号与ILA的输入控制信号相连接。这样就可以通过修改RTL代码来插入集成逻辑控制器和集成逻辑分析仪了。

(14)综合,布局布线,生成配置文件并下载。

具体的操作步骤可以参看2.6节的介绍,这里不再详述。需要注意的是ChipScope Pro要通过JTAG接口与器件连接。生成配置文件时,时钟要设置为JTAG Clock。

(15)启动ChipScope Pro Analyzer。

可通过直接运行“开始”/“程序”/“ChipScope Pro 8.2i”/“ChipScope Pro Analyzer”,也可以在ISE集成环境下,在进程浏览器中双击“Analyze Design Using ChipScope”启动。启动后界面如图6.71所示。

(16)打开JTAG连接。

单击图标,打开JTAG并口连接电缆,在此之前要保证已将JTAG与器件连接好,如果连接无误,正常连接后会出现如图6.72所示的界面。

(17)设置触发条件。

触发条件设置如图6.73所示。

图6.71  ChipScope Pro Analyzer用户界面

图6.72  成功连接后用户界面

图6.73  设置触发条件对话框

 

设置触发条件函数为“==”,数值为0000_0000(也就是说,触发端口的信号值为0000_0000时开始采集数据)。设置采集深度为8192。这里只有一个触发件M0,只需采用默认即可。当有多个条件时,要在“Trig”选项卡下设置起作用的正确条件,也可将触发条件设置为几个条件的逻辑组合。

 

(18)开始采样调试。

单击左上角的运行按扭,开始采样。捕获触发条件后,ChipScope将采集所设置存储深度的波形,如图6.74所示。

图6.74  采集信号的波形图

 

在波形显示窗口下可对波形进行放大和缩小,也可以进行局部放缩。当要观察总线数据时,可以先选中所有总线数据,然后单击右键,选择“Add to Bus”/“New Bus”即可如图6.75所示。

图6.75  组合总线数据

 

添加成功后,就可以在新生成的Bus下看到总线数据,如图6.76所示。图中DataPort为新生成的总线,设计者可以根据需要修改总线的名称。

图6.76  总线数据生成结果

 

通过上述步骤就完成了应用ChipScope Pro的一个完整的流程,这种流程是通过修改源代码来添加逻辑分析仪的。下面的流程可以不用修改设计代码,直接将逻辑分析仪插入到设计的网表文件中,使用方便,应用比较广泛。

6.8.3  基于ChipScope Pro Core Inserter的实现流程

基于ChipScope Pro Core Inserter实现流程的具体步骤如下。

(1)新建工程,添加源代码。

参见第一种实现流程的同一步骤。

(2)新建ChipScope Pro 资源。

选择ISE的“Project”/“New Source”,再选择“ChipScope Definition and Connection”选项,输入新建资源的名称:count,生成count.cdc资源文件。如果有现成的扩展名为cdc的文件,也可以通过“Project”/“Add Source”来添加,如图6.77所示。

完成后在工程浏览器中可以看到包含的count.cdc文件,如图6.78所示。

           

     图6.77  新建.cdc资源对话框         图6.78  新建.cdc资源结果

 

(3)综合。

与前一种设计流程不同,这里要先对源文件进行综合,在这种设计流程中,ILA核是直接插入到设计综合后生成的逻辑网表中的,因此要先对源文件进行综合。

(4)设置ICON及ILA各项参数。

在工程浏览器中双击count.cdc文件,打开ChipScope Pro Core Inserter工具,如图6.79所示。

图6.79  ChipScope Pro Core Inserter用户界面

 

在图中可以看到,这里无需再设置输入网表文件的路径,系统会自动找到网表文件,并设置输出文件的路径。

单击“Next”按钮进入ICON核设置页面,如图6.80所示。

图6.80  “Select Integrated Controller Options”ICON对话框

 

其中,“Disable JTAG Clock BUFG Insertion”用于指定是否禁止在JTAG时钟上插入BUFG。如果选中此项,JTAG时钟将使用普通布线资源,而不是全局时钟布线。这里此项不选,用全局时钟布线。

完成ICON核的设置以后,选择单击“Next”按钮,进入ILA核设置页面,如图6.81所示。

图6.81  “Trigger Parameters”选项卡设置

 

触发器设置页面中,设置触发端口数、触发宽度、触发条件单元函数和个数等。如有不一致,请读者对照上图修改,设置完毕后单击“Next”按钮出现如图6.82所示对话框。

图6.82  “Capture Parameters”选项卡设置

 

如图6.82所示,设置存储深度为8192,采样时刻为上升沿。选中“Data Same As Trigger”,即数据信号与触发信号相同。设置完毕后单击“Next”按钮,可以看到已经定义的ILA,如图6.83所示。

图6.83  “Net Connection”选项卡设置

此时由于还没有对网表进行映射,因此网络线都是呈红色显示。单击“Modify Connection”按钮,设置时钟信号和TRIG信号与要观测的信号的映射关系,如图6.84及6.85所示。

图6.84  设置时钟信号连接

图6.85  设置数据连接

 

信号连接主要完成时钟信号的连接和触发信号的映射。将clk_BUFGP与Clock Signals中的CH0连接,将count<0>~count<7>的内部信号与Trigger Data Signals的CH0~CH7相连。连接方法很简单,选中要连接的信号,单击“Make Connections”按钮即可。

当所有信号都连接完毕,“Net Connection”选项卡下显示的网路线会由红色变为黑色。如果仍有信号未连接,则仍为红色,直到所有信号连接完毕。

设置完毕后,单击“Return To Project”。此时逻辑分析仪已经插入到了工程网表文件当中了,不需要用户再对源代码进行修改。

(5)布局布线,生成配置文件并下载。

对工程进行综合、布线布局,之后生成配置文件并下载。

(6)启动ChipScope Pro Analyzer进行观察。

启动ChipScope Pro Analyzer后,剩下的步骤与前一种方法完全一致,这里就不再重复说明。

6.8.4  小结

本节通过一个具体的实例,详细演示了ChipScope Pro的两种使用方法。希望读者能够按照这两种流程动手练习一下,熟练掌握这一工具的使用。

在具体应用当中,第二种方法应用得比较广泛,因为无需修改源代码,而且修改逻辑分析仪的各项参数也很方便,因此推荐读者使用第二种方法。ChipScope Pro是个功能很强大的在线逻辑分析工具,熟练地掌握它的用法并应用于自己的设计当中,将会给调试过程带来极大的方便。

相关推荐

电子产业图谱

华清远见(www.farsight.com.cn)是国内领先嵌入师培训机构,2004年注册于中国北京海淀高科技园区,除北京总部外,上海、深圳、成都、南京、武汉、西安、广州均有直营分公司。华清远见除提供嵌入式相关的长期就业培训、短期高端培训、师资培训及企业员工内训等业务外,其下属研发中心还负责嵌入式、Android及物联网方向的教学实验平台的研发及培训教材的出版,截止目前为止已公开出版70余本嵌入式/移动开发/物联网相关图书。企业理念:专业始于专注 卓识源于远见。企业价值观:做良心教育、做专业教育,更要做受人尊敬的职业教育。