- 3
- 0
- 约8.72千字
- 约 13页
- 2018-11-03 发布于福建
- 举报
电子竞赛培训教程5.6 编程的技巧
5.6 编程技巧
5.6.1 程序优化
对于一个较大的应用系统来说, FPGA芯片的资源是有限的,FPGA芯片的价格随门数增加而增加。通过对程序的优化,提高芯片资源的利用率,可以降低器件功耗,提高电路性能,并为以后升级留下空间。
下面是一些常用的优化原则与方法。
1. 限制向量的位数和变量(integer)的范围
少用latch ,用register 替代latch;多使用常量(constant)描述ROM。例如:如果不限定变量的范围,系统将默认其为32位,而一般使用中往往不需要这么多,造成了资源的浪费。因此,建议将变量的范围根据使用情况尽可能地缩小。
2. 优化算法
采用串行化处理,功能模块复用,资源共享,以速度换面积。例如要完成如下一个运算:a×b×c×d时,系统需要用到多个乘法器,但是乘法器占用的资源较多,可以将上式改写为(a×b)×(c×d),只编写一个乘法器,先分别计算a×b和c×d,再将其结果相乘。可见,节省了硬件资源。
3. 注意警告提示
综合出错时要从头到尾修改,不放过每一个警告。警告的出现,意味着程序有不合理之处,或资源有浪费,或硬件可能存在问题等等。因此,必须要认真对待每一个警告。
4.以逻辑描述代替行为描述
用移位寄存器代替乘法器与除法器。在二进制中,将数据左移1位等于将其乘以2,右移1位等于将其除以2,根据这些特点,在某些应用中也可以达到节省资源的目的。
5.尽量使用片内的ROM结构
FPGA内部的一片Slice可以组成一个16x1的ROM。当需要使用一个常量时,要把它写到ROM中去。而不要将它定义为变量,因为变量的定义意味着指派了FF,而FF的值却是不变的,这就造成了资源的浪费。现在的综合工具,如XST大多能从代码中提取出ROM结构的数据来,这不能理解为可以不必定义常量了,因为直接地定义常量可以减轻综合工具的负担,有利于提高综合速度和质量,尤其在较大的系统设计中。
5.6.2 状态机优化
1. 状态机的选型
按状态机的输出方式分类,有限状态机可分为Mealy型和Moore型。从输出时序上看,Mealy型属于同步输出状态机,其输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore型属于异步输出状态机其输出则仅为当前状态的函数,这种状态机的输入发生变化还必须等待时钟的到来。由于Mealy状态机的输出不与时钟同步,所以当状态译码比较复杂的时候,很容易在输出端产生大量的毛刺,这是无法避免的。不过,考虑到一般的系统是低速、时序比较简单的系统,,这些毛刺一般不会造成太大的影响。Moore状态机的输出与时钟同步,所以在一定程度上可以剔除抖动。所以,建议使用Moore状态机以提高系统的稳定性.
状态编码
状态编码,是指定义状态机现态和次态,一般有3种方式:
(1)方式1
signal curren_state:std_logic_vector(1 downto 0)
signal next_state:std_logic_vector(1 downto 0)
方式1定义的状态有比较多的毛病。首先,这种方式定义的状态为逻辑向量,缺乏具体的状态含义,程序的可读性较差,更重要的是,设计后期调试修改比较麻烦;第二,此方式设计的状态编码可能与综合后的实际的状态编码不同,也就可能无法达到设计者的要求。第三,此方式不易综合出较好的状态机(不如枚举型的状态定义)。
(2)方式2
Type mystate is (st0,st1,st2,st3);
Signal curren_state,next_state:mystate;
采用方式2定义的状态有具体的状态含义,可读性好,易于调试和修改。使用attribute可以对状态进行手动编码,通过设置用户型编码方式,综合工具很容易根据手动状态编码进行高效的综合。
(3)方式3
Signal curren_state,next_state:std_logic_vector(1 downto 0);
Constant st0:std_logic_vector(1 downto 0):=”00”;
Constant st1:sta_logic_vector(1 donwot 0):=”01”;
Constant st2:sta_logic_vector(1 donwot 0):=”10”;
Constant st3:sta_logic_vector(1 donwot 0):=”11”;
方式3比方式1要好,因为方式3的可读性比方式1要好。但是方式3的修改还是没有方式2方便。
状态机的编码在ISE中有6种,其中常用的是顺序编码和一位热码。实际应用中最关心的是使用哪一种状态机编码比较好,以下提出几点意见供参考:
①如果要设计的状态机的状态译码比较
您可能关注的文档
- 电大形成性考核册的答案建筑力学1.ppt
- 电大2013秋建筑制图基础形成性考核的答案3课件.ppt
- 电大心理健康教育 两次作业的答案.docx
- 电大政治经济学试题及的答案.doc
- 电大教管心理学的答案.doc
- 电大教育为实施农村城镇化战略服务的研究.doc
- 电大电子商务概论期末复习指导2010秋的答案.doc
- 电大考试英语1试题及的答案共6套考试真题及的答案已整理完成.doc
- 电大民营企业人力资源管理问题及对策的研究论文.doc
- 电大民法学 02任务的答案.doc
- 2025年中国电子管高电平前级放大器市场调查研究报告.docx
- 2026及未来5年中国花蝶厂衣行业发展研究报告.docx
- 2026及未来5年中国激光测速传感器行业发展研究报告.docx
- 2026及未来5年中国异步数据复用器行业发展研究报告.docx
- 2026及未来5年中国藻酸丙二醇酯行业发展研究报告.docx
- 2026及未来5年中国玻璃纤维过滤棉行业发展研究报告.docx
- 2026及未来5年中国全精密双辊涂布机行业发展研究报告.docx
- 2026及未来5年中国龟胶行业发展研究报告.docx
- 2026及未来5年中国大型商用过滤沙缸行业发展研究报告.docx
- 2026及未来5年中国水箱开关按钮行业发展研究报告.docx
原创力文档

文档评论(0)