MyFPGA Forum

 找回密码
 注册
搜索
查看: 9143|回复: 20
打印 上一主题 下一主题

胡乱说下参加比赛的心得,希望能抛砖引玉

[复制链接]
跳转到指定楼层
1#
发表于 2010-3-19 08:34:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 huguangheng 于 2010-3-19 09:09 编辑

胡乱说下参加比赛的心得,希望能抛砖引玉
为今年要参加比赛的同学,提供一些参考。。。和误导。。


【1.主题】

       选择主题的话,我大致说3种。
    一种是以FPGA性能为导向。 设计一个能充分体现FPGA不可替代优势的作品
     一种是以团队能力倾向为导向,设计一个能充分发挥团队各队员实力的作品
     再一种是以吸引力和创新性为导向,设计一个很拉风,很让人想围观的作品


这三种导向之间尽量能都考虑,但有冲突时,也应该适当妥协其中某一方面。

比如说,在实际产品中能使用到大规模高性能FPGA的地方,应该是对性能要求非常高,比如说计算阵列。
像之前用DE3阵列来计算医学工程的。或者是小批量产量,投片ASIC得不偿失的产品,比如高端仪器。
但是如果过于受这种思维限制的话,那么,是不是就不应该做更适合DSP和ARM工控呢?我个人觉得,
实际比赛中看来,大部分作品都更适合使用PC或者DSP,ARM等来实现。但能在FPGA平台优质完成,也一样可以。

说下团队,我之前的团队是数字+模拟+软件,而并不是3个都会FPGA的,因此在总体设计上,也尽量使得各人的
能力都能充分发挥,并为系统添色,团队各成员的工作量也可以比较平衡。在很多地方,会选择是让硬件来承担,
或者是软件,这也是需要根据队员配置,及时间来考虑。同时要有一条退路。如果某一方面临时不可抗因素导致无法完成
比如队员生病或退出,唯一组件损坏之类。要能有替换或者割离系统的准备。

大学生所参加的自由主题电子竞赛中,我觉得大部分情况下,“吸引眼球”是绝对不能被忽视的。虽然不赞成
为了新颖拉风,就放弃核心技术。但是如果只有核心技术,却不具备良好的展示效果。那八成会杯具。
TW方面还好,CN的话,好多同学喜欢刻意追求新颖,而不顾实现难度和核心技术。这一方面上需要多向指导老师
请教。如果连基本设计都不能完成,再创新也没有用。

【未完,下次有时间继续】

评分

1

查看全部评分

2#
 楼主| 发表于 2010-3-19 10:27:33 | 只看该作者
本帖最后由 huguangheng 于 2010-3-19 10:41 编辑

回复 1# huguangheng


    【2.流程】

      不同组都有适合自己的流程。说下我之前的

       在确定了主题后,评估所需存储器访问带宽,数据流处理能力,资源消耗情况。确定主要性能参数。
为留一些裕度,将一部分功能组件设定为“可选组件”,主体系统的参数,做了一个区间。
如果后来很不顺利,就做龊一点;运气好就多发挥一些。起码不至于无法交付一个完整且收敛的系统。当然了,
核心技术起码是能做出个大概的,只是性能参数上可以妥协,如果根本做不出来,就不要选择这个专题。
       
        确立大体顶层架构,系统工作流程及各主要模块间接口需求

       搜索了可供参考和选用的 资料,工程,硬体模块。如果在某一方面遇到严重的瓶颈,可以考虑替换方案。并且
在前期集中精力在核心技术上,将没有找到参考解决方案的模块,优先进行可行性评估

       核心部分(结构上非常独立)的功能实现。这一方面上,借助不可综合HDL或者matlab,C等平台提供开发环境,
方便调试仿真
。我这一步是在dsp builder下完成的。在完成单通道实现后,根据需要来流水和并行
        确定数据每一级数据缓冲的接口。确定哪些接口由硬件驱动,哪些由软件驱动。
       完成核心部分后,为扩展核心部分做准备,将核心模块特殊的接口要求,转化为易于集成到SOPC中的接口。
此后,如果需要为核心部分扩展功能模块时,将核心部分,及核心扩展部分,封装在一起,使用精简高效的接口。
使得计算核心成为一个子系统,再将子系统集成到SOPC系统中
        插入调试逻辑及接口。临时插入测试用处理器。完成部分驱动及测试。去掉处理器。
            
      考虑其他高带宽模块的接口需要,来确定整体架构及模块间互联通信。这个时候要考虑到带宽等接口限制。
比如在大量数据存储时利用板上的DRAM,SRAM,DDR,或者multi-port DRAM,必要的时候选择片上RAM。
确定存储介质后,考虑各种传输模式是否能满足带宽及时序,传输中是否阻塞系统。复用时是否冲突。
有严格延迟和交越时间要求时,系统是否能达成。传输出错时的承受能力和处理方式。

高带宽数据通路如果不能实现,需要回到之前的阶段,修改各模块接口甚至参数。重新设定架构。直到高带宽
部分得到保证。

      配置低速数据组件及控制组件。插入测试逻辑及接口互联。

      确定处理器,包括个数及大致分工,与系统中模块的主从关系及互联。核心之间的通信方式。

      在SOPCbuilder下确定桥接方式,异时钟域同步方式。

      底层驱动测试。

      配置指令集加速软体核心。选择使用操作系统及配套处理器支持组件。。

      调整多处理器任务分配,软体调试。


【未完,下次有时间继续】
3#
发表于 2010-3-19 10:35:37 | 只看该作者
谢谢分享啊。
4#
 楼主| 发表于 2010-3-19 10:38:41 | 只看该作者
本帖最后由 huguangheng 于 2010-3-19 10:46 编辑

回复 2# huguangheng

【3.子系统】
我以我之前做的东西为例子,我做的是数字荧光示波器,
示波器和频谱仪两个组件(本来还有逻辑分析仪的,没时间了),作为子系统集成到SOPC中

说下“子系统”,图中是SOPC的顶层,而红圈中的部分相对SOPC来说是一个组件,与SOPC中各主设备以MM或ST连接

而红圈部分本身也是一个系统,如下


这个小系统中,也有自己的主从设备,有更精简但高效,延迟短且固定的接口。
该模块的主要数据流在内部,但在需要时刻也可以发起对上层系统(SOPC)中组件的读写访问。



ps:我知道我当初画的图很山寨altera......谁叫那时候很流行这个呢.....
5#
 楼主| 发表于 2010-3-19 11:00:45 | 只看该作者
本帖最后由 huguangheng 于 2010-3-19 11:55 编辑

回复 4# huguangheng


    【4.仿真】

  特别是核心模块的设计。我选择优先搭建仿真平台。
事实上,核心部分中,花在搭建完整的仿真和调试平台的时间几乎占了1/4
但是,后来会发现非常有用。每次对系统作修改后,只需要按几个快捷键,
便可以得到各种仿真结果。并且很逼近真实效果。使得调试过程不那么枯燥和可怕
所以说建模和搭建仿真环境,是磨刀不误砍柴工。
而且在整机完成前,就可以看到核心功能的效果,也可以避免等到整机完成时,出了问题也来不及修改的情况
下图是仿真效果


下图是实际效果




不过同时,还有一点深有感触。
之前因为偷懒,所以喜欢整体仿真。其实在前期,这样会事倍功半。
系统越大,软仿的时间越长,而且对PC平台要求越高。
会导致调试周期变得不可接受。
要把仿真资源,用在最关键的部分,尽量以测试模块来提供接口。
选择关键的仿真时间段
6#
 楼主| 发表于 2010-3-19 11:45:38 | 只看该作者
本帖最后由 huguangheng 于 2010-3-19 11:52 编辑

回复 5# huguangheng


   【5.其他】

注意随时写文档,记录进度,调试结果,并且常作备份,管理好工程
这点非常重要,我之前做到最后时,电脑里N多个工程,乱七八糟#¥%…&*
其中还有备份时不小心把失败工程备份了,然后把成功的删除掉了。。

多参考别人的文档,包括altera和其他比赛的。
第一次参加比赛的同学可以感受一下比赛的难度和形式
可以得到一些灵感,也可以看到不少核心的东西。
另外也知道文档该怎么写。
好多工科的GG们,理工机电能力都很强,但是写文档绘图表的能力就....呵呵了

这种长时间段的比赛是一个需要坚持的过程。
在比赛过程中可以有很多个让人想气馁甚至放弃的理由。
但是要考验自己,也要向团队负责。
其实很多时候像长跑了,
途中会觉得很累很难受,
但是坚持撑过去的话,
就又能再多跑一段。

有一个好的心态
不要认为只是为了拿奖去的,那么如果拿不到的话,是不是就可以摆烂呢?
现在正是我很多同学都在找工作的时候,其实奖什么的都是浮云了。
重要的是自己做过。最大的奖赏是自己的实力。
所以我觉得,竞赛是给一个机会做自己,而不是给一个机会做竞赛

和队友和睦相处
团队合作中千万不要因为一时脾气而影响了团队合作的氛围。
比赛是3个人,人数虽然少,但是对队员之间的默契要求却异常高,
如果有1个队员失去状态,团队失去的不只是1/3
切忌以解决问题为目标,而不要放纵自己发泄脾气,
更不要冲动地指责别人,不然以后一定会后悔的

多和别人交流
之前有很多同学,喜欢闭关锁国。
大部分参赛的同学们,在学校里也有很多其他组一起参加
不要搞技术封锁什么的很无聊的事情。
那样就成了为了拿奖,而牺牲自己和朋友。
况且把自己身边的人拖着也没用,全国还有无数的人和你竞争。
抓住机会,多交流,多共享,才是


【我要吃饭了....】
7#
发表于 2010-3-22 19:58:08 | 只看该作者
回复 5# huguangheng


写的好用心好清楚~ 感谢分享

还有哇靠 你做的好棒!!! 实际效果的画面做得好专业!! 好牛~~
8#
发表于 2010-4-6 20:51:19 | 只看该作者
华科的哥们,顶起。

保持关注!
9#
发表于 2010-4-8 14:35:39 | 只看该作者
写的相当好,顶起
10#
发表于 2010-4-8 15:13:19 | 只看该作者
写的好用心好清楚~
您真的很认真很棒, 这种心很值得大家学习
11#
 楼主| 发表于 2010-4-8 16:17:57 | 只看该作者
回复 10# Pocahontas


    :$
12#
发表于 2010-4-18 10:41:50 | 只看该作者
谢谢楼主,不知现在开始时间好像有点很紧张了
13#
发表于 2010-4-19 22:08:58 | 只看该作者
感谢楼主分享参赛经验
14#
发表于 2010-4-21 12:01:50 | 只看该作者
  前人栽树,后人乘凉!谢谢!
15#
发表于 2010-5-6 15:01:47 | 只看该作者
细心!认真!好心!
16#
发表于 2010-5-10 22:46:56 | 只看该作者
回复 7# Steady_Chou


    matlab做的吧!~
17#
发表于 2010-5-11 06:14:07 | 只看该作者
呵呵!值得参考。
18#
发表于 2010-5-12 16:32:25 | 只看该作者
新手,sopc入门中,比赛,分好几个阶段,中途有两次进度检查,
目前处在  选题  定方向 阶段  队员还在磨合中
看往届一等奖作品好几个是灵活机器手类的   优秀论文被分为三类:消费电子,工业电子,无线通信  不知如此分法是否科学。
至于很拉风的作品:
《采用多板FPGA结构实现加密算法》一等奖 India
《网络远程遥控的移动图像监控系统》一等奖 中兴大学
《数字电视DVB码流监控系统》一等奖 西电
《用于人脸识别的鲁棒实时生物特征识别系统》一等奖 India

   谈谈这两天的体会看的书:
  数字信号处理:高速DSP传统上是用数字信号处理器来实现的,实际上这是一种特殊剪裁的微处理器。但是,今天的FPGA可以包含内嵌的乘法器、专用计算例程和大量的片上RAM等所有DSP操作所需的特性。这些特性再加上FPGA提供的并行性,其结果就是比最快的DSP芯片还要快上500倍乃至更多。
物理层通信:FPGA长期以来用于实现物理层通信芯片和网络协议层互连的粘合逻辑。今天的高端FPGA拥有了多种高速收发器,这意味着通信和网络功能可以合并到同一设备中。

可重配置计算技术:这是指由FPGA提供的固有的并行性和可重配置性来实现软件算法的“硬件加速” 。许多公司正在建立大型的以FPGA为基础的可重配置计算引擎,来完成从硬件仿真到密码分析,再到开发新药物的任务。
19#
 楼主| 发表于 2010-5-13 07:20:51 | 只看该作者
回复 18# yongyooh


    我个人觉得,
关于拉风
     在一定级别的比赛中,控制类的作品都有最直接的展示效果,因此比较容易吸引住人
所谓“拉风”,前提是一定要旁人很容易知道你做的是什么。或者你做的效果看上去比较炫。
另外,有一种类型的作品,5星级作品的性能和2星级的看上去差不多样子,那么可以认为把精力
放在内在性能上,而不是外观上了。

关于DSP
关于DSP和FPGA,其实也不要认为FPGA能一下就取代DSP,即使完全排除性价比的因素,并且也排除开发周期及可移植性,在部分应用中,DSP的方式仍然效果更好。
对于比赛来所,考虑开发难度,底层灵活性,以及资源制约,同性能之间的权衡。

关于高速通信
我没有用过GX的板子,不清楚,但是感觉确实是这样,目前FPGA实际投产的应用中,高速通信是相当大的一个买家

关于可重配置
这里就看是普通概念的可配置,还是所谓 “动态可重构”了。后者也是个好玩的东西。
20#
 楼主| 发表于 2010-5-13 07:23:15 | 只看该作者
本帖最后由 huguangheng 于 2010-5-13 07:25 编辑

回复 16# zacard168


    嗯,核心部分是用的DSPbuilder 作为开发环境
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-19 21:34 , Processed in 0.041084 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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