fpga的应用领域

2022-07-31

第一篇:fpga的应用领域

FPGA设计与应用实验指导书

实验三 分频器设计

一、实验目的

1. 熟悉Quartus II 开发软件的基本使用方法 2. 掌握用VHDL语言设计分频器的方法

二、实验内容

1. 运用Quartus II 开发软件,完成工程创建、代码编写、程序调试、编译仿真等基本操作。 2. 用VHDL语言设计实现一个分频器,实现6分频,并进行功能仿真验证。 3. 使用DE2开发板设计计数器,并将计数器计数结果用数码管显示出来。

三、实验步骤

1. 回顾时序逻辑电路的设计方法,设计6分频电路的VHDL程序。

2. 参考实验一的步骤,完成6分频器工程的创建、代码的编写和程序编译及仿真。

3. 使用DE2开发板的50MHz晶振作为输入时钟,分频得到1Hz信号,将1Hz信号进行10进制计数,计数结果显示在7段数码管中。

四、实验报告要求

1. 给出6分频电路完整的VHDL程序实现代码;

2. 给出6分频电路时序仿真波形图,并判断程序功能是否正确;

3. 给出从50MHz晶振到1Hz信号的分频器程序以及相应的计数输出程序。 4. 实验心得体会。

第二篇:做FPGA的出路在哪里?

做FPGA的出路在哪里?——同行的感受,我的方向

杂文 2009-07-15 20:46:20 阅读429 评论2 字号:大中小

本人刚毕业工作一年,看着时间慢慢的过去,工作还是那样没有变化,心里总那么过得不踏实,因此最近心里也总在规化自己的将来,但不知怎么发展、向什么方向发展,感觉力不从心,下班之后没事在论坛上瞎逛,突然发现了这个贴子,花了一晚上的时间,慢慢地看完同行们的感受,深受启发。套用楼主的一句话,“我也人生基本算是快过半,可该做的几件大事却一件还没做”。我也该好好规化自己人生的第一个“五年计划”了。在此整理各位同行的心得体会,给我,给其它在自己人生路上迷盲的同行一个方向。希望你们看后能启发自己人生目标。

原贴的网址:http://www.edacn.net/bbs/viewthread.php?tid=82842&extra=page%3D1&page=1

已经而立之年,对30以后该以怎样的一个状态生活,也比以前思考的多些。

很多人都说,技术员(工程师)30以后要正确向领导(技术型领导)或者创业方面转,而不能继续去做技术。因为论精力,比不上新毕业的学生、论时间我们也没有他们多。面对技术更新这么快(尤其FPGA),我们是否还有足够的精力保持不落伍?虽然我们有经验,可是2年前的经验基本起的作用不大了(这是我个人的感觉)。

我是做FPGA的,以前画板、系统设计、coding、综合、par、调试这些都做过。最近这两年在一个IC公司做FPGA验证。最近越来越感觉以后的路越走越窄。比如,尽管我对现有的FPGA已经比较熟悉了,知道怎么将一个设计较好的在FPGA当中实现,知道怎么达到较好的综合和时序,对FPGA外围电路也很熟悉,一句话,很清楚FPGA是怎么回事。但是,缺少某方面专业技术,比如视频处理、数字信号处理、嵌入式系统等。因此,也就无法在某些领域做的更好。

曾经考虑做FPGA的FAE,可是,在一个城市,xilinx或altera就那么一家,想进去太难。 很迷茫,不知道自己以后该怎样去开拓一条新路出来。如果继续做当前的验证工作,那么,这一辈子可能也就这样了。

我想,很多同我一样年龄的xd也都有类似的困惑吧? -----------------------

-------------------------------------

补充1:希望看了我前述观点的人,尤其是一些学生,千万不要妄自菲薄。其实FPGA领域是很宽广的。只是我感觉自己好像只会FPGA,而相关的一些比较专业的知识只是知道一些,而不精通。但我们要承认,人的精力是有限的,我们不可能成为全才。我们能在FPGA领域里游刃有余也就很难得了。xilinx很多国外的应用工程师不也是年龄很大了,而一直还在做一个工程师。

在中国,由于我们本身就很少有高深的技术,因此在很多公司,大部分工作是没有深度的,因此一个没有实际工作经验的锻炼一段时间也就可以上手了。所以在电子领域、在工程师当中,也有所谓的“体力密集型”的现象存在。老工程师自然拼不过年轻的。

做FPGA验证,在我们这里,可以说是个全才,要懂硬件,懂FPGA,会写代码,了解软件,会操作仪器,熟悉仿真,熟练应用EDA工具,熟悉当前技术涉及的SPEC、reference manual等。所以,一个好的验证工程师,是不容易达到的。

一个 优秀的FPGA验证工程师,不仅在IC设计领域可以发挥作用,甚至在工程应用领域也大有用武之地。

所以,掌握好专业技术,不忽略细节,扩展自己的眼光与思路,就会有好的前景。这也是我的方向。

补充2:tingwhere,谢谢你的评论。我大部分同意你的观点。

首先,您说讨论的主题是“技术上的转型和已有职位上的深入”。我同意。

其次:我是结合自己的职业历程,来考虑自己未来的路。因为在我自己的职业规划上,我希望自己能成为一个比较资深的工程师就可以了。我清楚自己不适合做类似市场、销售等工作。但是,目前在职业发展上出现了困惑,这也就是写此文的目的。困惑是:我感觉自己在研究FPGA技术上提高很慢,空间有限。我发现自己整渐渐走入什么都知道什么都不精的这种状态。而结合当前一些公司的职位需求,这种人才市场价值不高。而我所说的“出路”就是如何走出这种状态,成为某个领域能力比较强的人,或者考虑转型(论述此题的文章比较多)。而并非只会做做FPGA的外围电路,会跑跑EDA工具,下载bit文件这样简单的工作。 再次,也许很多人在我这个年龄(本人30),开始考虑走技术管理型,做FAE,做销售等,而不安于做一个工程师。我想这也是因人而宜的。我并不是想说“任何人都可以做任何事.”。而在我前述的补充部分,我也说了,一个人的精力有限,不可能样样通,样样精。

我很喜欢做FPGA。从用FPGA实现了很多功能与应用当中,会体会到一种满足感;而熟练驾驭EDA tools也给了自己一种轻松惬意的感觉;研究FPGA当中某个具体技术、探询EDA工具参数/设置背后的技术细节,会让我体会到洞悉后的畅快淋漓。所以,还会继续我的FPGA之路。

有时我也会厌恶现在的工作。实验室、datasheet、信号、管脚。。。这些有时真的很烦。我无法达到象很多非工程师人员那样轻松的享受生活。“做自己想做的事情”,我想这是每个人都希望达到的一种境界。但是,世人有几人可以达到?

我也才刚刚30岁,阅历、经验、背景都有限,我相信我说的话肯定有错的,如果为别人指出了错误的方向,那真的不可饶恕,所以,我说的话只供参考,也算为大家提前考虑自己以后的职业规划起到抛砖引玉的作用。

------------------------------- 2007-09-26更新

最近一直很忙,公司的事情,自己的事情一堆。每天几乎都是凌晨睡觉,早上按时上班。 也一段时间没有来论坛看了,还好,老大没有把我版主的身份去掉。谢谢老大! 很欣慰很多朋友能看到该贴并回贴,同时也很抱歉,因为看了该贴让很多看到它的人感到迷茫,这是我所不希望的,也真的不是我的初衷。 最近除了忙公司的事情外,我也一直在思考自己以后的路该怎么走?再过几天我就30岁了,到现在也刚好结婚一年。可以说此时的我,人生基本算是过半,因为该做的几件大事都做了(房子、车、老婆,目前没有孩子。请不要笑话我对人生几件大事的定义)。

现在我初步的想法是:活到老,学到老。因为我只是一个普通的工程师,我热爱这个职位,我喜欢技术,希望电子设计。职位的提升与薪筹的增加对我来说已经没有太大的意义。提升职位,我每天面对的工作不会有质的变化;薪水的增加更不会从根本上改变我的生活质量。 这段时间和我一个原来的同事接触较多,他也是那种对技术很追求的人。曾经让他当经理,他没有做。他说他更想做一个工程师,这样不会扔下技术。他在无线通信尤其短波、红外相机、可见光相机、电源设计等方面都有很深的研究,在模拟电路方面的能力不亚于工作几十年的老工程师、数字电路就更不用说了。(夸他夸的有点多了)。他现在手头有一个项目,我和他一起做,设计部分基本都是他完成的。他说,他想成立一个私人研究所,研究一些比较高端的技术。同时能有几个产品在卖,能维持日常开支与家庭生活就可以了。

我说这个事情的目的就是我们该如何定义出路以及该如何规划。我这个同事他也不是全才,至少在IC设计、软件、嵌入式等方面他知道的不多。

如果你真的热爱工程师这个行业,如果你真的喜欢技术,那么每天给自己一点时间,学习一下自己感兴趣的东西,日积月累,一定会有所收获。 对于一个没有任何社会背景(非高干、老板的孩子),一切都只能靠自己打拼的我们,塌塌

实实的一步一步走下去,这应该更现实些。 ---------------------2008-5-27---------------- Logitech的回帖,很好,粘贴如下:

这样的文章刚入行的人可能没有很深的体会,30左右的人体会很深,但是由于存在着太多的顾虑很不确定因素,他们能够经受得挫折已经很有限了,很多人选择的还是继续走同样的路。对于刚走出校门或者是还没有走出校门的人来讲,应该多考虑自己以后如何发展,至少是5年的规划,不能浑浑噩噩的,找工作也是乱找一气,到头来如何想转行,那可不是一件很简单的事情了。

越早明白自己要走的路的人,路越走越宽;越晚明白的人,路越走越窄。不要让自己走的是下坡路,却徒羡慕别人的上坡路。 ----2008-10-24 UPdate------ 从辞职到现在已经有几个月了。辞职的原因中有个人前途发展的因素、家庭的因素这两大因素。这可能是我这个年龄的人都要面对的两大问题。

有很多朋友劝我先不要着急辞,因为只要我不主动提出离开,那么公司就不会开我,尤其在签了合同之后。在没有离开公司前,我还可以拿一份在这个城市来说相对不错的薪水。但最后我还是选择主动离开。我不想当去意已决的时候还在公司混日子,对自己来说虽然不损失什么相反还有经济收入,但是问心有愧的事情我不干。 离开公司后我曾经试着去自己创业,也和别人在谈项目合作的事情,但是由于种种原因都没有成功。现在家里的事情我已经忙的差不多了,而经济的压力随之而来,所以,我现在打算先找一份能满足自己日常开支的工作来做。而这个想法的开始,也就意味着我的第一次创业失败。虽然,我没有得到什么,而损失的是几个月的薪水,但是,我多了一段经历,一份体验。经历是人生宝贵的财富,我希望这句话对我同样适用。 在待业在家的那段日子,虽然没有公司工作进度安排的压力,但是我仍然让自己能保持在一个工作的状态。我依然会每天做一点自己感兴趣的开发工作。这期间我和朋友合作开发的一个无线通信设备硬件电路设计完成,而且在接收部分已经调试了有3/4。FPGA部分的代码也大部分调试通过,没有验证的部分也进行了前仿。

最近一段时间连续面了好几家公司,有国企,外企,私企。结果不是很理想。满意我水平的人,不满意我的薪水要求;我喜欢的公司呢没有合适我的职位。总结为一点:自己还不是牛人,不能达到所有公司的要求。

我一直把自己定位为是一个技术工程师,虽然我不会达到技术牛人的地步,但是我依然会认为自己是做技术的。我剖析过自己的这种想法产生的原因,归结为:自己来自一个很小的农村,能有一天走出来在城市中生存,我需要一种让世人认可的生存本领。而自己嘴拙,无法实现“好人出在嘴上”这个老话,所以只能“路遥知马力,日久见人心”来鼓励自己。父母从小就告诉我手艺人走到哪里都饿不死,艺多不压身。

在发本帖的时候,我给很多人带去了迷茫,因为那个时候我确实也真的迷茫。现在,我想我不是那么迷茫了。所以我希望大家也不要妄自菲薄。刚刚我的一个朋友还给我发来短信说不要做技术了,让我去做生意,他说做技术发不了。他所说的在我目前来看,是正确的。但是,我依然会选择技术。因为它会让我心里踏实。

以下是同行的精典回贴,值得我们去思考。

在5年前看过这篇文章,没当回事,可是5年后发现这篇文章的重要性。

适合别人走的路不见得适合自己走。同时,选任何的路都是有代价的,不要只看到好处。

我来说两句,其实大家讨论了这么多,无非围绕在技术上的转型和已有职位上的深入.我现在想跳出楼主的给大家划的框框,再谈这件事.楼主说,FPGA转型之路,是建立在这样一个前提条件下的:任何人都可以做任何事.其实这是一个错误的导向.如果一个好的技术人员,其实肯定不适合做销售,因为,两者一动一静,本来就是人的性格的两个极端,在做技术的时候想着做销售的人,不可能把技术做到很深,肤浅的技术人员和刚入市场的销售人员一样是不吃香的. 可真正当你已经成长为一方面的技术高手时,所谓的性格,思维,已经定型了,然后让你从头再来,其实是不可能的,你可以低下头和别人点头主动示好吗?你可以不顾已经老去的身体在生意场上胡吃海喝吗?你可以让你习惯面无表情顶着datasheet的脸能保持职业微笑吗? 与人打交道和同机器打交道,本来就是适合于不同的人的.

那么,回到FPGA的出路上来,我不明白你说的出路是指什么,如果单纯从经济上来考虑,赚钱的手段是和经济头脑有关,一个好的投资的方向,比如,一处好地段的门面,一次冒险的期货交易,就足以在一年之内让弥补你工资同那些熟练销售人员的提成的差距了.俗话说的好,马无夜草不肥.如果人是以钱为目的,用心起来,钱其实很好挣的.

OK,我们再回到FPGA上来,如果你喜欢研究FPGA,那么,请把这项爱好继续下去,别考虑太多.如果已经对它厌恶了,还不如干脆离开这个圈子,做自己想做的事情.记得卡耐基说过:世界上99%的担心本不会发生.如果总是陷入到未来会怎样的担心中,对工作,身体和心情都不好.请在灾难来临的时候再随机应变。

大家不要泄气啊,其实做哪一行都是做的好的少数人赚大钱,大多数人都是被人呼来喝去的。只要专心把本行做好就行,是龙到哪 都是龙,是虫再蹦也没有用。不是行业的问题,是人的问题

其实哪一行都不好干,我感觉累不累完全是看心态,毕竟每个人的追求都不一样,况且从来没有满足的时候,年轻的时候挣个5K,1W的还觉得够花,年纪大了,各种压力,闹心事肯定会多了,力不从心的时候固然会变多!该怎么走下去,其实往往不是自己决定的!

个人觉得学生朋友们不必沮丧,也完全没有那个必要,何况前辈们都曾经辉煌过,人家是在感慨是在思考,你们呢?在想什么?在后悔还是在默哀?其实选择了就没有后悔的必要,想也没用,就像你既然敢逃课,就要有被点的觉悟!既然选择了这个职业,首先应该考虑的是如何把技术做好,再想如何更好的生活!积累人生!总有一天会在沉没中爆发的,只要你有理想,有报复!

看来大家对FPGA行业未来的看法和自己要走的路都有一些疑惑。找准一个问题就是你专攻的技术方向要解决一个什么问题?根据目标去学习工具和算法。毕竟这些都是为解决现实生活中的问题才会有市场有意义。关键还是自己在工程中处理问题的思维方式的收获和处理问题方法的落实。决定做就要全力去做好,不然就干脆转型!

我认为活着不管做什么都不容易

楼上诸位之所以有这样的感受,是因为做着这个,有着真切的体会 沉重的就业和工作的压力容易使得人总是认为自己是最苦最累的

看待其他行业就象普通人看待成功人士头上的光环和荣耀,而忘记了他们获得这些又付出了怎样的努力和牺牲

不是这个世界变化太快,是我们适应的太慢!!! PS:我是做FPGA的,刚看到楼上的讨论时,很是沮丧,担忧

现在我认为,既然已入围城,就努力在围城里好好工作,尽可能站的高些,使自己的视线不局限于围城之内,而是越过它的围墙,感受的蓝天的明净和长远.

技术类工程师一个通病,思维模式太模式化 1)每人规定搞FPGA不能做别的

2)干啥和自己以前学啥没直接关系,大部分都不是干自己本行

3)什么叫有前途?钱图钱图,用最省力的方式挣到更多的钱的路径就是前途。

4)有钱人都是生意人,bill是最富有的生意人,不是最富有的软件工程师,其它也同理。利用技能尽快进入一个领域的社交圈,然后发展自己的生意,才是王道出路

搞技术肯定不是最来钱的行当,但却是一个人能够吃饭,养活自己的本钱,先靠这个进入社会,找个好工作,然后再一步步来,哪个行业只要你做精了,就不愁没有饭碗,幸福取决于自己的心态,大富大贵的毕竟是少数,大部分人还是要踏踏实实过日子。

FPGA是工具, 技术是工具, 人

也是工具。不是吗?

人,是有精神的,不是工具。

光会一样是难以生存的,而且技术会更新,不及时跟进就会被淘汰。所以要不断学习,拓展自己的领域,但又不可铺的太广(我有时就是什么都想学,结果什么都没学好)

不要过分的沉迷于技术,严格的把事业和生活区分开来,不要让事业左右了生活,那样你会感到生活的无趣。反之也是一样。我做事的原则是,不把工作带回家,不让生活的繁琐扰乱工作的思路。

有目标就要努力实现。坚持再坚持!!~~~~

人的欲望是无穷的。没房的时候想买房,有了房了又嫌小,想换大的。等换了大的,又有了车了,你可能又看上了海景别墅。人比人得死,永远有比你过的舒坦的人。关键是你自己想要什么样的生活。以上很多朋友的回帖看,看了这些类似的文章就“心凉”、“迷茫”之类的,说句不好听的:你自己没有主见,思想容易被别人影响。 最好还是静下心来好好想想自己的生活。世上没有完全相同的两片叶子,也没有完全相同的人生道路,别人的路不见得适合自己。

欲望无穷,你要是总和别人比,你永远不会快乐,因为总有比你好的。人这一生图什么?光身来光身去的。何必非要求最好呢?中等生活就不行了?就算你真的很能折腾,哪天混得比绝绝大多数人都过得舒坦了,估计也快入土了,没几天舒坦日子了。事实上,什么人都有自己的烦恼,山西煤老板有钱,估计还害怕政府变脸呢。就算是古代的皇帝,还担心自己百年之后儿子们“停尸不顾,束甲相攻”呢。当你回顾人生,发现自己像一辆越野拉力赛中的车手,光顾着超车了,却无暇欣赏沿途风景,就算你最后得了冠军,很有意思吗?当你看透一些事情,放下一些包袱的时候,你会快乐许多。希望大家生活中快乐多一些。

现在很多公司也都设置了技术专家之类的职位,论待遇,比平级的管理人员不差;论面子,也很受人尊重。这也是一条路啊。当然,中国自古以来就轻视技术,都以当官发财(棺材)

为荣,这在短期无法彻底改变。但是如果连我们技术人员自身都轻视自己的工作,还谈什么让别人重视你?本人刚工作半年,也许有点理想化,不知天高地厚。拍砖就拍吧。

最近总是经常了解行业相关的信息,拜读前辈们的心得,希望自己可以从中吸收自己想要的经验。其实一直以来都觉得只要努力,脚塌实地的走过就一定会有收获。但是,却发现自己最近变的太浮躁,总希望在短时间里收获高效益(指知识上的储备)。我在不久前经常为自己设想未来,但是看了前辈的文章才突然醒悟,能够谈将来的人必定是把眼下做好的人,我眼下都没有做好,又如何来谈将来呢?我没有高瞻远瞩的气势,所以我没有办法明确规划我自己的未来。我想我现在该做的就是做好现在,扎实基本功,做个有准备的人

把握现在,我个人觉得FPGA还是大有发展潜力的,但它永远只是实现“想法”的载体,所以需要在某一方面或者说某一领域有足够的专业知识,比如数字信号处理,通信信号处理、雷达信号处理,无线通信,生物电子等等,因为这才是根本的。

多想想自己想要什么。。。连自己想要什么都不明白的话,就有点失去自我了。。。

多数现代人习惯于看别人(当然,是说大多数人的别人)的行为来决定自己的思维:别人做什么,自己也做(别人考研,我也要考;别人考G考托,我也要考……);别人觉得什么好,自己也去追求什么。可是到底是不是自己想要的,根本不明白。所以也就经常会有不知道什么适合自己这样问题的迷茫、烦恼了。

一个载体而已,结合什么方向才是最重要的

还是得回到眼前的现实,因为我们能改变的必竟不多.积极面对现在的生活与工作才是当下最重要的事情.

我也和版主年龄相当, 应该说在 FPGA 领域做了很多年了。我也在思考,时刻通过不断的学习,展宽在FPGA行业的通用性,应该说,现在的设计和几年前的设计虽然工具改变不大,但设计的思想改变很大,尤其是针对一些类似的或者相关的设计,更多的考虑是能直接拿过来用。我是个比较探讨捷径的,现在的设计更多的是在以前的基础之上的设计,从效率上将更快了。应该说FPGA只是一个载体,从数据处理上,还是数学理论公式方面的比较多。处理的数据流,不管是视频数据也好,网络数据也好,或者其他的格式化数据,等等,对于FPGA的处理方式方法几乎都大同小异。行业的划分是人为的,关键看能不能进行思维的转变交换。(有些公司喜欢把这些人为的行业划分开,但,事实上其处理的本质是一致的) [还是用门电路、寄存器、计数器、状态机,去实现不同要求的功能] FPGA最大的就是就是灵活性,更重要的就是设计者也同样要有思想上的灵活性。电子这个大的行业处处都雷同。。。关键看你怎么去理解,怎么去表达。

别的行业就好吗?

我相信这是一篇很有“爆发力”的帖子,大家都在关注和思考“出路”这个问题。讨论FPGA的出路,我认为只是众多行业和职业中的一个切入点,实际上,背后讨论的是每个人的生活态度,职业规划,说到底是我们在追求什么,想得到什么的问题?——本人的一点拙见,诸位前辈,诸位后生,明辨!至于,追求的是什么,想得到的是什么,每个人不一样,每一代人

也不一样,幸福、快乐、事业、权力、金钱、名誉……==,相信每个人都曾在心里问过自己这样的问题。在没有答案之前,或多或少困惑过,也许一直在困惑着,就算马嘉爵,也不例外!好像鲁讯先生有篇文章里面讲到,我们在追求、得到众多想要的东西的时候,大家唯一不曾关注的一个殊途同归的结果,那就是——died,每个人最终都面对的问题!记得我上小学or初中的时候,学过一篇语文课文叫《幸福是什么》的文章,具体内容不记得了,但记得这篇文章题目。也许,我认为我们从小就在灌输这个问题?我们想要追求的是幸福、快乐、事业,也许上面提到的内容,未提到的内容,都想要。人心不足蛇吞象。借用《士兵突击》里吴哲的话说——平常心,平常心!但是,单就FPGA而言,我认为如果你喜欢她,选择了她的话,那就好好的熟悉她,运用她,驾驭她,完美她,无论新手,还是前辈,什么时候也不要错过自己喜欢的东西,什么时候开始学习也不晚,晚的是到目前为止,你没有发现FPGA的魅力!谢谢各位看客~~~祝您新年快乐!喜欢上FPGA!不折腾,一如既往的向前!

不明白国内怎么老是这种调调。在国外做技术做到老的也多的是啊,在国内就不行,国外那么多原创的技术,专利,难道都是刚毕业的学生发明创造出来的?国外别人说一个什么专家,那就真的是专家,国内呢,肤浅毛糙的居多吧。

我们一直在路上,何来“出路”一说?

。....乐观点....厚积薄发,我一直的原则..合呵..

说到底是活着怎么才有意义; 按需求理论来说,

1、底层的需求,赚钱才能解决吃穿住;

2、中:被人尊重,

3、高:自我实现

做技术能达到或部分达到,关键是我们的达到的标准是什么:如果你是想做个万人之上的人。那么你恐怕要另谋高就了,如果只是转行,我认为是换个坑而已,比如做销售,人家也有麻烦(生活就是麻烦)。

首先我不是技术人员,是一个做嵌入式开发工具的销售,但是 在做销售这段日子里,我发现技术人才的宝贵,所以希望不管是刚入行的还是已经工作很多年的技术人员 ,请你们一定要坚持不懈,你们的头脑,知识,想象力,创造力是最宝贵的!

看了楼主的文章,大概了解了各位为未来担忧的前辈们的心声。我也是干技术的,以前不是做FPGA的,就是一直认为FPGA很有前途,才自学转到FPGA上面来。

单就FPGA来说,我觉得我们现在很难说FPGA以后有没有前途,因为这个技术进入中国也就10多年。现在我知道的,接触的FPGA技术人员,也都大多是30多岁。所以他们没有真正“前辈”可以给出一条明路来。至于国外的工程师干了一辈子,我认为不能这么比,国外的社会保障和中国不是一个级别的,在追求自己理想,或者爱好的时候,中国的工程师大多被现实生活所困。另外就广泛的技术来说,我感觉电子技术确实更新太快,一般人跟不上。虽说行行出状元,但是没有天分和努力,你很难出类拔萃。因此不能把最顶尖的人才和自己比较。成功之路往往是不可复制的,失败之路却是如出一辙的。我想大多数人都是平凡的,

我们要讨论的是大概的情况。从一般的情况来说,做技术的起点最高,但发展确实慢,技术人员的上升曲线是越来越平缓,另外如财务的,他们是指数上升。因此如果在技术方面不是很擅长,也可以考虑成为一个有技术背景的,不干具体技术工作的,能有积累的工作。具体是什么工作就要自己去衡量了,而且中国发展这么快,完全可能诞生很多新兴职业。哈哈。其实干技术的人员不只FPGA等等,也不只嵌入式等等,还要有很多别的职业,例如财务,其实也是一门技术活,而且也需要学习新东西,可是财务的东西继承性很高,可是电子技术的继承性较低。搞电子的,只有站在最顶尖的位置才能一直过好日子,中国国内在这个方面很落后,真的是很落后。所以我们的技术人员才一直处于追赶中,在后面跟着别人跑的时候肯定是很累的,而领跑的人却要轻松得多。如果真有技术狂热者,我觉得中国未来靠你们了,为了不让下一代,下两代的工程师再有这种困惑,现在大家都要加油

仔细想了一下觉得lz所说的前途问题归根结底是因为电子技术这一行发展太快,有用的经验不能积累,所谓的开发工程师随着年龄的增长学习速度跟不上。这确实是个问题,以前从没想到过。 早一天觉醒,早作准备,相信我们一定能找到一条适合的出路。

个人觉得有两点是重要的:1 FPGA只是一个工具,重要的是他的应用领域,如数字信号处理,嵌入式等,如果能在它的应用领域有所精通,那么肯定会多一些机会。

2 个人生活态度。你做fpga这行的态度很重要,如果只是想多挣些钱,有碗好饭吃,并不是真正喜欢所做的事,那么必然觉得不停地学习新知识很累人,要想办法让自己爱所从事的行业,合理分配时间精力,把生活当成一天天来过,而不是那个遥远的目标。

360行,行行出状元。

只要你肯下功夫,专精一行,没有不出人投地的,看你是否真的用心去做了。

回到FPGA上,这有两个方面,一是用FPGA去完成你的设计;而是对FPGA本身精通。

楼主之所以出现这么多迷惑,就在于没有定位清楚自己到底要做什么。

如果是用FPGA去完成某些应用,那么要对应用本身非常熟悉,FPGA对你只是实现的材料,这个时候应用领域内的知识比FPGA器件知识更重要,楼主显然这方面没做好,从他自己的话可以看出,其对接触过的视频啦、信号处理啦、嵌入式应用啦,其实都停留在表面,说熟悉都难,更不用说精通了。

从另一个方向看,对FPGA器件本身的掌握来看,楼主对做一个好的FAE都没有信心,更别说对芯片本事的细节把握程度了。比如FPGA和ASIC的区别,为什么FPGA应进行同步设计而ASIC经常使用异步设计?FPGA的四输入查找表结构和CPLD的阵列结构对应用的影响,Xilinx的DLL对时钟性能的影响,工艺对FPGA的影响等等,在这方面做得深入,你最后可以进入FPGA原厂去或者向ASIC设计公司的后端人员发展。

有了清晰的目标,才能大踏步前进,如果都不知道自己打算往哪里走,当然就越走越糊涂了。

去当演员啦、运动员啊这种工作,成功了得到很多,但失败的人更是多多。成功的人得到的还不足补偿失败的人。

可能我是错的,但是我一看这段话,我就觉得是不了解的人写的,刚毕业? 其实这句话就是Q精神的代表,任何事情都要谈个概率。

只要你肯下功夫,专精一行,没有不出人投地的,看你是否真的用心去做了。

不是你下功夫就一定能专精一行的,你没那个环境你自学100年都不能成为专家!能进哪个公司,能做哪个事情,其实机遇性很大,不是完全能自己控制的,和真心无关。当然我当年也有这样的想法,结果发现我是错的。

回到FPGA上,这有两个方面,一是用FPGA去完成你的设计;而是对FPGA本身精通。 楼主之所以出现这么多迷惑,就在于没有定位清楚自己到底要做什么。

其实我觉得楼主是大志若愚,是沉淀后写了这样的文章。而这个文章的人可能还尚年轻。 如果是用FPGA去完成某些应用,那么要对应用本身非常熟悉,FPGA对你只是实现的材料,这个时候应用领域内的知识比FPGA器件知识更重要,楼主显然这方面没做好,从他自己的话可以看出,其对接触过的视频啦、信号处理啦、嵌入式应用啦,其实都停留在表面,说熟悉都难,更不用说精通了。

想问下什么叫熟悉,什么是精通?人的精力是有限的,你能熟悉其中任何一个就不错了。再说用FPGA做上面3中应用的根本就不是主流。现在做视频有市场的大多数是消费类的,FPGA在这个方面根本就不是强项。信号处理?嘿嘿,估计全华南地区也没几个人用?或者只是做ASIC验证而已。Xilinx MB,and altera NIOS,有多少人用?关键是现在这个东西在整个FPGA的出货量有多少?告诉你为什么它们要强推这些东西吧,就是让你以后只能用它家的fpga。有市场就有人学,中国从来就不缺好学的人才,懂吗?

从另一个方向看,对FPGA器件本身的掌握来看,楼主对做一个好的FAE都没有信心,更别说对芯片本事的细节把握程度了。比如FPGA和ASIC的区别,为什么FPGA应进行同步设计而ASIC经常使用异步设计?FPGA的四输入查找表结构和CPLD的阵列结构对应用的影响,Xilinx的DLL对时钟性能的影响,工艺对FPGA的影响等等,在这方面做得深入,你最后可以进入FPGA原厂去或者向ASIC设计公司的后端人员发展。 可能这位朋友略懂FPGA,其实我告诉你,你说的这个东西都是书本的东西,也是最基础的。实际中,这些东西都不怎么会涉及到问题的。你认为你技术好就能进原厂了?嘿嘿,说明你对一些东西了解不深,太肤浅?再说你认为你去了原厂就修成正果了,你知道他们的基本待遇吗?xilinx altera今年有没有干掉人?有多少跻升高层的机会? 有了清晰的目标,才能大踏步前进,如果都不知道自己打算往哪里走,当然就越走越糊涂了。 我本意绝对没有贬低写这段话的朋友,只是希望大家一起说明一个问题,讲明一个道理 然后说到销售了,和运动员有点像,成功的很光鲜,也会表现给很多人看,失败的销售员也很多。不过失败的销售是不会出来给人知道的。家里没有关系只靠自己拼的销售,又不出卖良心的,其实成功的没有你想的多。

教师不用提,只有几个大城市的待遇好些,大部分都不怎么样。

医生:另外一种技术活。做的好是会好些,但还是做技术,而且收入和技术的关系还是有些像做FPGA的,做得好未必收入好

在中国的环境创业呢,工商、税务、城管、计生办、水处理、黑社会,都在吃你

中国只有几个点好混啊,政府啊、待遇好的国企啊等等,你我要能进去现在也不在这里发牢骚了。

其实都是中国环境闹的。我们也没办法。换了职业也是解决不了问题。

刚刚毕业一年,做数字IC设计的,写了一年的代码,除了verilog,vcs,自学会了modelsim ,DC,pt,最近两个月又在向后端进军,但是后端光会流程是远远不行的,还要器件和工艺的基础,于是我又开始补习器件和工艺的基础。确实,感觉这一行要学的东西实在太多,要想成为一个牛人,工具真的不算什么,不久就会发现这个需要的基础好多,我已经充分意识到以前在学校认为那些课程没用的想法是个大大的错误,现在都深深为没有学好半导体物理和半导体器件而后悔,所以开始加班加点的学习。这样再去使用后端工具,才不至于只是对

着一个工具毫无创造的操作。

看到某个大牛说,做数字IC设计的技术发展就是要做到成为一个跨越各个流程的系统级工程师。我自己也感觉到,只做设计而不了解后端和工艺,永远只能停留在当初的水平而不能优化。我想要成为一个跨越数字设计流程的系统级工程师。当然,设计和后端都远不是系统级的,就算我把后端的精髓学到了,那也只是底层。距离我系统级的目标还差的太远,还有太多的东西要学习。不花个3~5年的艰苦奋斗和努力学习,恐怕是不行的。

第三篇:基于FPGA的交通灯控制电路的设计

编号:

EDA技术

实训 (论文)说明书

题 目: 交通灯控制电路的设计 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师:

2013年

1 月

10 日

桂林电子科技大学实训说明书用纸

EDA工具对于电子设计人员来说极其重要,它可以在电子设计的各个阶段、层次进行计算机模拟验证,确保设计的准确性,可缩短设计周期,降低设计成本。交通灯可以实现十字路口红绿灯的自动控制。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。本设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。 关键词:交通灯、EDA、FPGA

1

桂林电子科技大学实训说明书用纸

Abstract EDA tools for electronic design personnel is very important, it can be in the electronic design of each stage, levels of computer simulation verification, to ensure the accuracy of the design, can shorten the design cycle, reduce design cost. The traffic light can realize intersection traffic light automatic control. Based on the FPGA of traffic light design system has the reliability, real-time fast operation speed is high, integration.it, low failure rate, circuit is simple, and the characteristics of small volume. This design USES is Altera company CycloneII series of EP2C5T144 chip as the core minimum system, it can be convenient to the actual traffic lights embedded application system, can complete the simple logic control, data acquisition, signal processing, mathematical calculations, etc; Use QuartusII software as a development platform, Using the top-down design idea of system modular design and comprehensive, and through the waveform simulation and hardware realization two ways to realize and verify the function of the traffic lights. Key words: traffic lights;EDA;FPGA

2

桂林电子科技大学实训说明书用纸

引言

“EDA技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。本设计实训是配合“EDA技术”课堂教学的一个重要的实践教学环节,在本课程设计指导书中列举了一些常用的小型设计系统,旨在起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。

1设计任务与要求

1.1本综合设计实训任务的内容和要求

① 用EDA实训仪上的4只八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。

② 能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。

③ 交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。 ④ 红、绿、黄灯显示的次序应符合实际交通道路控制的要求。

2 系统概述及设计原理

2.1 系统的主要功能

交通灯控制电路是用于城市交通疏导的管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯。交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。设计一个十字路口交通控制器,方向分为东南西北四个方向。东西方向的红绿灯状态一样,南北方向的红绿灯状态一样。每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行。

本论文简要介绍了FPGA器件的特点和设计意义,以QuartusII软件为开发平台,通过VHDL硬件描述语言以及原理图的输入方式来设计交通灯。交通灯控制器用于自动控制十字路口交通灯和计时器。

系统的主要功能模块方框图如图2-1所示

3

桂林电子科技大学实训说明书用纸

图2-1 系统主要功能模块

2.2交通灯的设计原理

交通灯控制电路的原理框图如图1.3所示。其中,clkgen是分频器,将EDA实训仪主板提供的20MHz的主频经20000000分频后,得到电路所需的1Hz(秒)时钟。Cnt10de(两个)是十进制减法计数器,产生道路东西和南北通行和禁止的倒计时时间。Contr是控制电路,控制整个系统的工作。控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。

图2-2 交通灯控制电路的原理图

3 系统各个模块的的设计与仿真

3.1 分频器模块的设计

由于采用的FPGA芯片的时钟频率是50MHz,需要将其分频为1Hz。该模块即是实现50M的分频,将频率变为1Hz的脉冲波,从而得到周期为1s的脉冲波。如果要真正的实现分频50M,在仿真结果图中是很难观察的,甚至是没有办法验证的,故在仿真过程中,将分频的倍数变小,变为20分频,这样从图中可容易的得到并验证对时钟输入信号的20分频,如图3-1所示, Reset是复位信号,CLK_50MHz是输入时钟频率,CLK_1Hz是

4

桂林电子科技大学实训说明书用纸

输出时钟频率,从图中可以看出,输出频率CLK_1Hz确实是输入时钟频率CLK_50MHz的20分频。

图3-1 分频器仿真图

3.2 状态控制模块的设计

状态控制模块根据输入CLK_1Hz的脉冲信号输出不同的STATUS值,下游的模块依据STATUS的值来确定红绿灯的状态;于此同时对倒计时信号赋初值。在状态控制模块仿真图中,输入信号CLK是一个频率为1Hz的时钟脉冲信号,RESET是复位信号;输出信号STATUS是状态转换信号,控制着下游交通信号灯显示模块的显示情况;LOAD_EW、LOAD_SN是东西、南北方向倒计时开始控制信号,DJS_EW、DJS_SN是东西、南北方向倒计时间信号。其仿真结果图如图3-2所示,由图可得,STATUS共有000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6)共6个状态,80s为红灯和左转灯的倒计时间,45s为绿灯的倒计时间,5s是黄灯的倒计时间,和状态转换表的状态一致。

图3-2 状态控制模块仿真图

3.3 交通灯信号灯显示模块的设计

交通信号灯显示模块根据输入的STATUS信号,输出对应的红绿黄灯信号,并直接驱动交通信号灯的亮灭。在交通灯信号灯显示模块程序仿真结果图中,STATUS为输入信号,而它依赖于状态控制模块产生的信号STATUS信号,一种六种状态,依次为000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是东西方向上交通信号灯的状态, SN_LRGY(8位)是南北方向上交通信号灯的状态,依次为左转、红、绿、黄,对应着EW_LRGY、SN_LRGY的前四位,‘1’表示点亮,‘0’表示熄灭,后四位均为0,表示四个灯的阴极接负极。例如,在STATUS为001时,对应的是东西方向红灯亮,南北方向绿灯亮,仿真结果符合预期,完全正确。其仿真图如3-3所示:

图3-3 信号灯显示模块仿真图

5

桂林电子科技大学实训说明书用纸

3.4东西方向倒计时模块设计

东西方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_EW为计数器的装载信号,当其为高电平时,将输入信号DJS_EW_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-4所示,由图可得,该模块首先将80秒的倒计时信号装载进去,并进行减一操作。

图3-4 东西方向倒计时仿真图

3.5 南北方向倒计时模块设计

南北方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_SN为计数器的装载信号,当其为高电平时,将输入信号DJS_SN_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-5所示,由图可得,该模块将45秒的倒计时信号装载进去,并进行减一操作。

图3-5南北方向倒计时仿真图

3.6 译码模块设计

译码模块程序用来将输入的两位倒计时数值,分解成两个整形数值,以此供后面的译码显示模块译码显示。在译码程序TO_8421_BCD模块仿真图中,DJS_EW_OUT,DJS_SN_OUT为上一倒计时模块的输出信号,其范围在0~80,所有倒计时的范围都包含其内;DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW为输出信号,其范围为0~9,代表了各个方向的倒计时的十位和个位,且数码管所有显示数字的范围均在其内。例如图中DJS_EW_OUT的值不断变化,相应的依次将其分解为十位(DJS_EW_OUT_SW)和个位(DJS_EW_OUT_GW),并依次递减,仿真结果符合预期,完全正确。仿真结果如图3-6所示:

6

桂林电子科技大学实训说明书用纸

图3-6 译码仿真结果图

3.7 译码显示模块设计

译码显示模块将上一模块译码模块输出的四个一位数译码成相对应的七位数码管段码,完成倒计时的译码和显示。在译码显示模块仿真图中,DJS_ EW_OUT_ SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW是四位的输入信号,也是上一模块TO_8421_BCD的输出信号,它们的范围为数字0~9,DJS_EW_ OUT_SW1,DJS_ EW_ OUT_GW1,DJS_SN_OUT_SW1,DJS_SN_OUT_GW1对应的是相应的七位数码管显示段码的值。图中输出信号的值随着输入信号的变化而相应的变化,例如DJS_EW_OUT_SW为7,DJS_EW_OUT_GW为5时,DJS_EW_OUT_SW1为00000111(a、b、c、d、e、f、g依次对应着1110000,最高位的0表示是数码管的类型是共阴的),表示数码管显示7,DJS_EW_OUT_GW1为01101101,表示数码管显示5。仿真完全正确,符合预期。其仿真结果如图3-7所示:

图3-7 译码显示模块仿真图

3.8 顶层文件模块设计

顶层设计采用VHDL语言描述方式实现,并在工程文件仿真过后通过工具菜单自动生成原理图文件,从而是设计原理更加清晰明朗。

在顶层设计VHDL描述中,共包含7个元件,分别是:

1、分频器模块,

2、状态控制模块,

3、交通信号灯显示模块,

4、东西方向倒计时模块设计,

5、南北方向倒计时模块设计,

6、译码模块设计,

7、译码显示模块设计。这7个模块经过程序设计、编译仿真,结果均能够达到设计要求。最后在顶层设计中,通过元件例化语句将这7个模块连接起来,生成顶层文件。在顶层设计中,RESET是复位信号,输入的时钟频率CLK是50MHz,经过分频50M的分频器后,变为频率为1Hz的时钟信号,周期为1s,用此时钟信号来控制整个系统的步调,与现实生活中交通灯的步调保持一致。EW_LRGY、SN_LRGY分别为东西和南北方向上交通信号灯的状态,EW_DJS_DISPLAY、SN_DJS_DISPLAY为东西

7

桂林电子科技大学实训说明书用纸

和南北方向红绿灯倒计时间。另外,所有的数码管和二极管均为共阴极显示。例如,在EW_LRGY为01000000(即东西方向红灯亮)、SN_LRGY为10000000(即南北方向左转灯亮)时,EW_DJS_DISPLAY的前八位表示倒计时的十位,后八位表示倒计时的个位;图中EW_DJS_DISPLAY的前八位都是00000111表示7,后八位01111101表示6,后八位01101101表示5,后八位01100110表示4;SN_DJS_DISPLAY的前八位是01001111表示3,后八位01011011表示2,后八位00000110表示1,后八位00111111表示0,以上表明红绿灯和倒计时时间显示符合预期。仿真结果如图3-8所示:

图3-8 顶层文件波形仿真图

4 实训心得体会

本次EDA技术实训的交通灯采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。为期两周的实训,我利用网络和图书馆的有效资源,搜集并下载了大量的关于用FPGA做交通灯设计的资料;然后精心阅读,在老师的指导督促下,并和周围同学进行有效学习和沟通,最终确定了自己的设计方案;最后按照既定的设计方案,通过努力有步骤的实现了交通灯的设计。

通过此次实训设计,让我加深了FPGA的理解,更加熟练了VHDL语言,同时,我深深体会到了通过FPGA设计数字电路的方便、简洁的特点,这让我相信未来数字电路的应用必将更加广泛。另外,我还体会到:从事开发设计工作,一定要保持个勤奋、踏实、严谨的工作态度,这样才能更好的完成工作。最后,我觉得在交通灯控制系统设计中还可以增加一些实用功能,如:

1、针对弱视或色盲人群进行声音提示;

2、在遇到突发状况时,可以将红绿灯改为紧急模式控制;

3、当有1

19、120等特种车辆通过时,系统可转为特种车放行,其他车辆禁行。

但是这次实训我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢靠,所掌握的编程语句还不够,很多程序都看不懂,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次实训,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

8

桂林电子科技大学实训说明书用纸

还有光有知识是不行的,还得有能力、有技术,单干也是不行的,要适当寻求合作,那样才能更好实现我们的价值。在实训中及社会上,我们都要懂得虚心地向别人学习,即使你觉得自己很厉害,但总有一些东西你是不懂的,所以不懂要多向别人请教,这样才能更好地提高自己的水平和能力,全面发展自己。

9

桂林电子科技大学实训说明书用纸

谢 辞

在这短短的两周EDA实训中,在这期间同学们都在努力学习,认真做自己各自的实训。在此我要特别感谢各位指导老师们对我的指导,还有各位同学对我的帮助,尤其感谢老师在百忙之中抽出时间为我们讲解设计原理,同时,还要感谢和我一起努力的各位同学,在他们对我的帮助很我自己的努力下,我才能顺利地完成这次实训。

这次实训我受匪颇多,但这多是得益于老师无微不至的关心和细心的教导。在实训中,让我学到了不少知识,给了我一次复习学过的知识的机会,巩固了基础知识。也多亏同学们的无私的帮助和支持,在我无助的时候还是他们伸出他们的友爱之手,帮我渡过难关,在此我也真心的多谢他们默默的帮助。最后再次对老师们说声:谢谢!!

10

桂林电子科技大学实训说明书用纸

参考文献

[1] 潘松,黄继业.EDA技术实用教程(第三版).北京:科学出版社,2010.1 [2] 刘江海,涂传威,陈玮.EDA技术课程设计.武汉:华中科技大学出版社,2009.5 [3] 夏路易.基于EDA的电子技术课程设计.北京:电子工业出版社,2009.1 [4] 王金明,周顺.数字系统设计与VHDL.北京:电子工业出版社,2010.5 [5] 邹彦,庄严,邹宁.EDA技术与数字系统设计.北京:电子工业出版社,2007.4 [6] 林明权,马维旻. VHDL数字控制系统设计范例.北京:电子工业出版社,2003.1

11

第四篇:基于FPGA 的VME自定义总线接口设计论文

1 引言

在光刻机双工件台控制系统中,VME 总线使用了三个接口共430 根线路接入, 通过背板互联的有P1, P2 两个接口320 根线路接入。实际上V M E 标准协议并没有完全使用全部线路, 而是为用户预留了部分自定义线路,增加了设计的灵活性。由于V M E 总线主要用于工控机与各板卡的通信, 同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突, 影响采用是实时性,因此这里将V M E 总线中未使用的管脚作为自定义总线管脚, 这样避免了增加新的硬件接口, 而且在硬件设计上可以和VME 总线一起考虑。

自定义同步总线数据传输完全根据主控总线提供的时序进行, 地址线包含了对数据发送和接收方的定义。每个总线传输周期中, 数据发送端和接收端的身份根据地址寻址关系自动切换, 而避免了总线控制权更迭时的握手, 及数据传输优先级或传输抢占等问题, 总线控制信号来自同一个时钟域, 从节点仅响应控制信号, 可忽略节点间时钟相位差影响。在每个伺服周期, 设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成, 每个周期完成32b i t 的数据共享。通过设定总线地址来设置数据传输序列的传输内容, 当所有的设定总线地址被遍历, 则当前周期数据传输已经完成, 所有被规划传输的数据都被所有的运动控制卡所共享。

2 VME 自定义总线逻辑协议的实现

V M E 自定义总线是一条并行运行的总线, 该总线

采用数据广播的方式, 可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz 时钟, 每200us同步控制卡将数据锁存线拉高, 向光栅译码卡发出一个脉冲, 此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据, 其读数不再发生变化, 然后同步控制卡产生一连串的读取信号, 将各个光栅尺的数据读出。同时切换总线上的地址, 并生成采样保持, 读取和地址三个信号置于自定义总线, 运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。

2.1 VME 自定义总线接口的实现

V M E 自定义总线在V M E 的P2 口上, 时钟频率是5KHz, 用于传输激光干涉仪和光栅尺的测量数据。在实际应用中, 位置环采样周期为200us, 并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中, 这些伺服数据使用V M E总线进行交换, 则会堵塞系统总线, 使P o w e r P C 无法进行正常工作。为此, 利用光栅译码卡的技术特点以及V M E 的P2 自定义接口, 构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样采用FPGA 芯片来实现, 使其达到灵活、可靠、集成度高的设计要求。

自定义同步总线的主控制器由运动控制系统中的同步总线控制卡来实现, 而运动控制卡中只需实现自定义总线的从接口。从控制器结构如 所示, 其功能包含以下方面:

(1) 提供DSP 对于双口RAM 访问的地址译码, 将DSP 的标准EMIF 接口时序转换成双口RAM 访问时序,该功能在EMIF 时序匹配模块中完成;

(2) 完成自定义总线的读写逻辑, 当自定义总线的地址有效后, 数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方, 以切换数据总线方向;

(3) 当某一个特定的自定义总线地址访问出现的时候, 总线时序匹配模块将产生中断信号提供给D S P , 提供同步触发。

2.2 同步控制卡VME 自定义总线逻辑功能的实现

光栅译码卡接收来自光栅尺的信号, 实现对工件台宏动部分的位置测量, 测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器, 产生运动周期开始信号, 读取光栅译码卡的数据, 然后将各个运动控制卡所需的信号, 按照一定的地址编码,发送到V M E64x 总线的自定义总线上, 由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后, 依次接收指令位置和光栅尺数据, 运动控制卡进行数据存储等其他操作, 并等待下个运动周期的开始信号。

对于同步控制卡FPGA 中逻辑协议的设计, 采用三段式状态机进行设计, 第一段描述次态寄存器转到现态寄存器; 第二段对状态转移条件进行判断, 从而完成状态转移变换; 第三段描述在各个状态完成的动作和对状态转移条件进行描述。

在状态S0 处检测200u s 的脉冲, 因为同步控制卡每200u s 向光栅译码卡发出一个脉冲, 光栅译码卡接收到该脉冲后就会锁存当前数据, 当脉冲到来时则转到S1状态, 否则仍然处于S0。在S1 状态时等待20n s , 即让光栅译码卡把数据锁存完成, 接着转到状态S2。在状态S2, 将地址发送给光栅译码卡, 并且等待30n s , 让输出数据稳定, 然后转到状态S3。在状态S3, 将数据锁存,读操作的次数置零, 并且将地址发送给双口R A M , 延时10n s 等待数据和地址稳定, 然后转到状态S4。在S4对双口R A M 进行写操作使能, 即给写使能引脚置高电平, 然后进入状态S5。在S5 将读操作次数加1, 并判断是12 路数据是否读取完毕, 即读次数是否等于12, 若否则进入状态S6, 否则进入状态S11。从状态S6 到状态S10 重复状态S1 到S5 的过程, 直到读取完成。在状态S11, 发出读取完成脉冲, 并延时20ns 到状态S12, 最后返回状态S0 等待。

2.3 同步控制卡VME 自定义总线设计实测结果

实测模块是接收12 路光栅尺的数据, 从 可以看出, 送到光栅译码卡的地址, 在延迟一定时间后, 稳定的数据才输出, 所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。将数据写入缓存必须等待数据稳定才能发出写信号。

2.4 运动控制卡读取VME 自定义总线数据逻辑功能的实现

在光刻机双工件台控制系统中, 每块运动控制卡实现对三个电机的控制, 整个系统需要12 块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器, 产生运动周期信号, 读取光栅译码卡中数据, 进行解耦, 然后将各个运动控制卡所需的信号, 按照一定的地址编码, 发送到V M E64x 自定义总线, 由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后, 依次接收指令位置和光栅译码卡的数据。

3 结束语

本文提供了一种基于FPGA 的VME 自定义总线的逻辑接口设计, 同步控制卡作为“主卡”, 读取光栅译码卡中的测量数据, 并将数据置于VME 自定义总线上,其负责自定义在总线的逻辑设计。运动控制卡, 接收来自自定义总线上的数据, 并通过DSP 进行处理, 最后发送给电机, 控制电机的运动轨迹。该设计方案通过了实际验证, 并利用SignalTapII 观测了其逻辑时序, 可得该方案正确。

第五篇:周立功博客――给大学生学习ARM和FPGA的建议.

周立功博客 —— 给大学生学习 ARM 和 FPGA 的建议

对于初学者来说,要学的知识点很多,到底从哪里下手,人们常常感到 非常迷茫。大一学生先从 C 语言开始入门,在大一阶段由于对计算机还 非常陌生,因此不可能写出一个具有完整图形界面的软件,重点以 “ 与 硬件无关的计算方法、数据结构 ” 为基础学习 C 语言,至少练习编写一 万行 C 代码,否则不会找到编程的感觉,也体会不到编程乐趣,很多人 就是因为缺乏一定量的训练, 所以对编程没有兴趣,以至于未到毕业时 就全部忘记了,程序设计是一项实践性很强的实践活动,没有大量的实 践作为基础是很难入门的, 因此我认为编写一万行代码是判定是否入门 的依据。请初学者记住:当你编写了一万行代码时,这是你能够从事专 业的开始,否则你不要期望在这个领域混下去。与此同时, C 语言也是 学习和使用 Verilog 的重要基础, 所以千万不可小视 C 语言。 更重要的 是, 如果你的 C 语言不好的话,你将来就业选择的路子就会受到很大的 限制,要么只能做硬件工程师、销售工程师或者转行,别无选择! 有了一万行编程的经验后,大二接着开始学习数字电路和模拟电路了, 这是你的机会!将来的开发工作有几种选择,但这两门都很重要,学好 了你有可能成为顶尖的高手、 专家和系统级水平的人才,即便学得不太 好,你也有可能成为一个优秀的工程师。前一篇博文讲了,如果你精通 了 C/C++,即便你的硬件水平一般,你也可以成为一个优秀的开发工程 师, 即由硬件工程师负责逻辑电路和模拟电路的设计, 由你来编程 —— 你可以编写基于 WinCE 、 Linux 、 Vxworks 或者 Windows 等操作系统的程

序。那么怎样才算基本上 “ 精通 ” 呢?至少编写五万行代码,当你已经编 写了 10万行代码时,可以说你已经完全精通了,这个时候你如果有很 大的造化的话,那完全取决于你当初学习的基础是否牢固了。 所以我在 前面提到了, 精通一门可以成为优秀的开发工程师,但绝对不可能成为 系统级的开发工程师,因为你的知识结构不行。

最好在学习数字电路时购买一个 99元的 EasyFPGA030开发学习板,这 个板子是我们开发的,但这个价格是没有利润的, 不要认为我是在做推 销, 我们推出这个产品完全是针对大二学生的,希望有更多的大二学生 提早醒悟, 能够在学习数字电路时同步学习 FPGA 和 Verilog , 强化课程 之间的关联。笔者虽然是一个企业家,但也有

一份爱心和社会责任感, 为社会做出自己的贡献同样也是企业家的 “ 销售业绩 ” ,我们为这个开发 板撰写了 30万字的配套资料和适合各种水平的范例,也投入了大量的 精力录制 Verilog 语言视频讲座, 这些都是超值和免费的。 与此同时从 2009年开始着手针对大二和大三学生举办 FPGA 大赛,以提高在校大学 生的兴趣,让那些觉悟者进一步提高自信心,找到自己未来的坐标。学 好数字电路和模拟电路以及 FPGA 应用技术,除了成为电子产品开发工 程师之外 (高附加值的嵌入式系统产品几乎离不开 FPGA , 还有一个就 业方向就是号称 “ 金饭碗 ” 的集成电路设计。

作为初学者,在学习《电子技术基础(数字部分》时同步学习 FPGA 与 Verilog 技术的重点是快速入门和打下一定的基础, 根据配套的教材 和数字电路教材的内容将基本的数字电路用 FPGA 实现即可,这是本阶 段的学习目标,不要将学习高深难度的应用技术作为重点。 并利用课余

和暑假期间的空余时间, 将一些图书上现成的使用数字电路实现的例子 用 FPGA 来完成设计即可, 比方如何使用 FPGA 实现一个计数器, 并动手 做出来。到大三阶段在做出选择,到底是选择成为一个专业的 FPGA 应 用设计工程师、还是嵌入式系统与 FPGA 混合应用系统设计工程师或集 成电路开发工程师, 以自己的兴趣和志向为基础而定, 所以在学习嵌入 式系统技术的同时学习 FPGA ,两者之间并不矛盾。

最好在大一开始学习单片机, 这就是笔者为何撰写 《新编电类专业计算 机基础》这本图书的原因(详见破解电类专业 “ 就业难、人才荒 ” 的解决 方案!(4。因为大一不学习单片机,后面的课程都没有办法学好。 对于大一学习单片机,很多老师不去用心研究学习方法和教学规律,反 而搬出一大堆理由来 “ 吓唬 ” 人。笔者当年仅仅是一个技校生,在完全没 有指导老师的情况下,也找不到可以参考的技术资料, 只是凭着偶尔看 到一篇报道罗伯特设计的 Altair 8800计算机就做出了一台不需要工作 软件的计算机(改进型的 Altair-80C31电路详见《新编电类专业计算 机基础》教材。要相信现在公开的信息、资讯条件、人们的聪明智慧 与教师的力量, 因此大学本科生在大一阶段学会单片机是非常容易的一 件事情。

有了单片机基础之后,在大二阶段学习数字电路与模拟电路的同时,结 合单片机学习接口扩展技术与模拟前向通道数据采集技术, 并编写相应 的程序实现一个一个的小系统设计, 大三时根本不再需要学习所谓的接 口技术与微机原理了。 针对数字电路与模拟电路笔者准备写作一套小系 统设计与制作配套图书, 将前后之间的课程也同步和关联起来,期望进

一步提高大学生的动手能力。

有了大

一、二阶段强化训练, 后续的很多课程度可以理论与实践并重地 学习,比方目前大学开设的《自动控制理论》几乎都是空对空地教学与 联系,如果结合自动控制理论的教学, 让学生学习设计一个自动穿越迷 宫的电脑鼠, 并举办相应的大赛, 则能够很好地将嵌入式系统应用技术、 数字电路与模拟电路、计算方法与数据结构、 机构设计 ...... 相关课程 有机地结合起来,学生的兴趣将大大地得到提高。

当学生有了学习的兴趣和动力之后,教学势必由老师个人在课堂上演 “ 独角戏 ” 的场面转变为研讨会,学生也一定会竭尽全力由被动学习向主 动学习转变, 这就是教育要达到的目标, 所以我们不能一味地指责学生 不好学。 作为老师我们一定要思考和拿出行动,让学生喜欢并愿意向您 学习。事实上学生的未来完全取决于老师的引导, 现在教师队伍存在的 很大毛病就是将责任推向扩招和学生不好好学, 扩招有没有问题?当然 有, 但作为教师我们做得怎么样呢?我们是否在教学上做出了巨大的努 力,这需要我们扪心自问。

学生不好好学,这也是事实!但也是表象,我们要思考他们为什么不好 好学习?我们应该怎样才能让他们好好地学?作为老师, 第一不能给学 生划定考试范围, 第二学生缺课要坚决扣分, 如果做到这两点基本的要 求,学生不好好学就制度处理,我想效果会有很大的改变。当然就业难 的责任也不能完全推给老师, 但老师们应该做到自己该做到的,因为家 长都希望老师们对他们的子女严格要求, 更迫切的需求就是让他们的子 女学到真本事,他们肯定支持教师的行动。

进入大三阶段则需要有选择地重点学习嵌入式操作系统原理与编程、 嵌 入式系统与 FPGA 的混合系统设计或者全力以赴钻研 FPGA 应用技术等技 术方向, 大四

阶段就可以真刀真枪地完成一个漂亮的毕业设计,并能够 写出一篇比硕士水平还要高的论文。

上一篇:医院总结下一篇:unit3教学设计

本站热搜