一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 9692|回复: 0

SOPC自定义元件的添加及运行

[复制链接]
发表于 2008-12-26 13:00 | 显示全部楼层 |阅读模式
Nios II 嵌入式系统驱动设计(二)
" j6 ]+ q! f9 P1 `1 n% s3 J2 c3 \       在SOPC中自定义元件的端口设置解析 中讲述了自定义元件的端口设置,在本文中将详细讲述如何将自定义元件嵌入SOPC Builder中,以及将该元件加入SOPC系统,并通过运行软件测试该元件性能。
4 X8 \8 I, Y  x- e
新建一个文件夹ip,将Ckecksum Hardware Accelerator的源文件checksum_accelerator.vchecksum_transform.vlatency_aware_read_master.vslave.v复制到该文件夹下。
0 `8 O- [  j, B/ e6 I; R2 @打开SOPC Builder,单击左上角的Create new component…,弹出如下对话框:
; c6 Q, F( Z) ]4 ]http://space.ednchina.com/upload/2008/12/8/0145f901-e4bc-44f6-a7f5-ed68d5b2f4de.jpg
3 o) r/ u5 n% q9 h7 d+ P, T5 T% AIntroduction页面是对component editor的简单介绍。8 E8 B$ \' U. c( W% S. E$ F
l
+ L& V9 A6 x9 e7 B9 n9 f
HDL Files' M& F/ r) D2 `+ D( A4 p4 b
http://space.ednchina.com/upload/2008/12/8/7cd658f6-9df8-46ce-892c-c3f42f14267f.jpg' n* {1 A. Q# p' _3 j* w
单击Add…,选择刚才新建的ip文件夹,将该文件夹下的所有.v文件选中加入,component editor并会进行分析,主要是对端口的分析,将顶层文件的Top复选框打上勾。如果文件有改变可以点击Reanalyze HDL Files重新分析。+ X; {4 k( }0 W1 F; n
; |6 z; f% g) U& N& n
除了导入HDL文件外,component editor还提供另一种方法可以将端口exportSOPC系统之外,直接在Signals页面手动加入信号或在Templates中加入已经定义好的端口信号,用户再自己修改。导入HDL文件后,Templates下拉菜单为灰色,无法加入。
0 }" I5 F4 t  k( L- ?4 r! ]l3 o$ a: I- |6 j- b1 m  q2 c
Signals
2 N0 p' m: ]( \! hhttp://space.ednchina.com/upload/2008/12/8/e401a4f3-c4e3-4aca-9d50-7b5e593d4bd6.jpg3 x4 R+ o# h1 s% {
这里的信号是component editor分析了HDL文件后自动从文件中提取的端口信号,用户需要设置interfaceSignal TypeWidthDirection以使用户端口信号与Avalon总线信号相对应,如果用户端口信号的命名方式参考 SOPC中自定义元件的端口设置解析 中的要求,则component editor自动识别出相对应的信号设置。
3 O2 ]3 \" n2 Dl5 N4 T9 S' t* c; v
interfaces" \( c5 X' [6 z' j; \
http://space.ednchina.com/upload/2008/12/8/69998e9a-b135-49c6-a107-7f48aaafd617.jpg
! ?. Q# x% g/ h" d5 ~9 X4 U" O' qInterfaces的类型在SOPC中自定义元件的端口设置解析 中有说明,主要有Masterslaveclock input10种,在每种类型下面可以设置该类型interface的属性参数,如时序,流水线传输,interface的同步clock等。如果显示了除定义以外的interface,则点击Remove interfaces With No Signals删除。
7 }' V+ ?" D% U* V* R0 wl
: _. f) l+ s4 t) ]  ]$ H
Component Wizard( ]+ P( S# N% }* D% T& d
http://space.ednchina.com/upload/2008/12/8/1541b6c0-30ba-4c59-a1dc-145f90d69c6b.jpg
, u- r' h! I5 O" Y) R( ?8 [( t. F( WComponent Wizard中可以设置元件所属类型名称,元件显示名称,版本号等信息,点击Preview the GUI…可以预览,如果在顶层HDL文件中定义了一些Parameters,可以这里加入以便让用户在实例化时可以设置这些参数。
( j# g* \: `+ v. m- ^- U3 y+ k  D
. `6 W; p3 z! Y1 x- n" C全部设置完后,点击Finish…ip文件夹下产生checksum_accelerator_hw.tcl文件,该文件并是Component editor根据用户设置生成的文件,该文件提供给SOPC Builder所有需要的信息。
* `2 l' |  W$ s' o. {0 p( [$ f' ]0 ^5 [  _. E- O% V
除了硬件文件外,为了能用软件执行给元件,需要添加软件驱动程序。在ip文件夹下新建HAL文件和inc文件,ip文件结构如下:
/ z, r3 l8 i9 [5 k, M6 f其中HAL文件夹下的inc文件夹下包含checksum_accelerator_routines.h为软件API的头文件,HAL文件夹下的src文件夹下包含checksum_accelerator_routines.c为软件API的源文件,以及component.mk,该文件在编译时提供驱动程序源文件信息。在ip文件夹下的inc文件提供元件的寄存器映射(register map)文件,该文件提供软件读写元件寄存器的地址。
3 g" I" q" }4 n. b4 n
  m; ~6 D2 p, E  Z1 L所有的工作完成后,将ip文件复制到QuaetusII工程目录下,打开该工程的SOPC Builder,此时在左边栏出现刚才新增的元件。) J( M0 {# d' ]: b: a3 _8 u
为了测试新增元件的功能,建立带有该元件的SOPC系统:
  ~0 X( a. F* L2 Z4 Z% u! y4 n# }3 u+ M) }http://space.ednchina.com/upload/2008/12/8/e544cdaa-0598-47a4-aacf-6ea241d69a01.jpg
& |" ]5 @9 p: w: t# M同时建立以该硬件为基础的软件工程,将文件test_checksum.c的内容复制到应用工程的源文件中,编译,下载,运行后,console窗口出现如下结果:5 {0 Q( k8 t8 A. m5 [7 o) P3 s# v/ ~0 w
http://space.ednchina.com/upload/2008/12/8/57d4449a-bd2d-458b-9ab7-c483b797af1b.jpg
! y" t8 u/ `+ c2 m软件首先产生64KB的随机数,然后分别用软件cheksum和硬件checksum,输出两次checksum的结果,可以看到硬件checksum比软件checksum快了65倍,硬件加速起到了很大的作用,因此在关键算法上可以采用硬件实现,以提高速度。
2 ?- s2 z/ C8 {/ e; D

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-10-28 12:44 , Processed in 0.028672 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表