社区首页
技术讨论创新帖
全部新帖
资料区
社区活动
联系管理员
★ 社区积分制度
★ 新手必读
★ 申请版主★
请
登录
后使用快捷导航
没有帐号?
注册
首页
|
电子技术
|
嵌入式
模拟电子
单片机
电源管理
传感器
半导体
电子应用
|
工业控制
物联网
汽车电子
网络通信
医疗电子
手机便携
测试测量
安防电子
家用电子
机器人
新能源
电子头条
|
社区
|
论坛
测评
博客
大学堂
|
下载
|
下载中心
电路图
精品文集
电路图
|
参考设计
|
Datasheet
|
活动
|
直播
datasheet
datasheet
文章
搜索
登录
注册
中文
En
论坛
切换旧版
电子工程世界-论坛
»
论坛
›
电子技术交流
›
FPGA/CPLD
›
VHDL设计中电路简化问题的探讨
返回列表
发新帖
回复
阅
3516
|
回
1
maker
当前离线
裸片初长成(初级)
最后登录
2009-2-1
在线时间
21 小时
威望
19450分
芯积分
-47分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
maker
842
帖子
0
TA的资源
裸片初长成(初级)
+ 好友
私信
楼主
发表于2008-10-15 09:35
只看该作者
VHDL设计中电路简化问题的探讨
[复制链接]
摘 要
:从描述方法、设计规则、逻辑函数分析了VHDL设计中容易引起电路复杂化的原因,并提出了相应的解决方法。
关键词
:VHDL 电路简化
近年来,随着集成电路技术的发展,用传统的方法进行芯片或系统设计已不能满足要求,迫切需要提高设计效率。在这样的技术背景下,能大大降低设计难度的VHDL设计方法正越来越广泛地被采用。但是VHDL设计是行为级的设计?所带来的问题是设计者的设计思考与电路结构相脱节。设计者主要是根据VHDL的语法规则?对系统目标的逻辑行为进行描述?然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统时延的仿真。实际设计过程中,由于每个工程师对语言规则、对电路行为的理解程度不同,每个人的编程风格不同,往往同样的系统功能,描述的方式是不一样的,综合出来的电路结构更是大相径庭。因此,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的差别,甚至某些臃肿的电路还会产生难以预料的问题。从这个问题出发,我们就很有必要深入讨论在VHDL设计中如何简化电路结构,优化电路设计的问题。
1 描述方法对电路结构的影响
用VHDL进行设计,其最终综合出的电路的复杂程度除取决于设计要求实现的功能的难度外,还受设计工程师对电路的描述方法和对设计的规划水平的影响。最常见的使电路复杂化的原因之一是设计中存在许多本不必要的类似LATCH的结构。而且由于这些结构通常都由大量的触发器组成,不仅使电路更复杂,工作速度降低,而且由于时序配合的原因而导致不可预料的结果。例如对于同一译码电路有不同VHDL描述:
1: IF INDEX=″00000″ THEN
STEPSIZE<=″0000111″;?
WLSIF INDEX=″00001″ THEN
STEPSIZE<=″0001000″;?
LSIF INDEX=″00010″ THEN
STEPSIZE<=″0001001″;?
……
ELSE
STEPSIZE<=″0000000″;?
END IF;
2:STEPSIZE<=″0000111″ WHEN INDEX=″00000″ ELSE
″0001000″ WHEN INDEX=″00001″ELSE
″0001001″WHEN INDEX=″00010″ ELSE
……
″0000000″;?
以上两段程序描述了同一个译码电路。第二段程序由于WHEN......ELSE的语句不能生成锁存器的结构且ELSE后一定要有结果,所以不会有问题,而第一个程序如果不加ELSE STEPSIZE〈=“0000000”这句,则会生成一个含有7位寄存器的结构,虽然都能实现相同的译码功能。但是电路复杂度会大增。而由于每个工程师的写作习惯不同,有的喜欢用IF....ELSE的语句,有的喜欢用WHEN....ELSE的方式,而用IF....ELSE时,如稍不注意,在描述不需要寄存器的电路时没加ELSE,则会引起电路不必要的开销。所以在VHDL设计中要慎用IF....ELSE这类能描述自身值代入的语句。
2 设计规划的优劣直接影响电路结构
另一主要引起电路复杂化的原因是对设计规划的不合理。虽然VHDL语言能从行为描述生成电路,但一个完整的设计一般来说都不可能由直接描述设计的目标功能来实现的。总要把设计分成若干部分,每一部分再分别描述其行为。这就涉及到如何划分功能模块的问题,要求对设计了解的较深入,才能使划分更有效,才能降低电路的复杂程度。例如我们设计一个时钟源为1kHz,每32秒发出一组信号(共八组)的简单的控制器来说。下面有两种实现方法:
(1)用15位的记数器实现把输入1kHz的时钟分频为1/32Hz,然后用这个作为时钟驱动一个3位的记数器,这个记数器的八个状态分别通过一个3-8译码器发出所要求的信号。
?2?直接用18位的记数器把输入的1kHz时钟进行分频,再利用记数器的八个相距32秒的状态来推动一个12-8译码器来实现。
对于如此的设计要求,VHDL程序分别如下所示:
1. 第一种设计方法的VHDL源程序
process(clk,cclk,count2)?
begin
if?(clk='1' and clk'event)then
count2<=count2 + 1;?
if(count2=″000000000000000″)then
cclk<='1';?
else
cclk<='0';?
end if;?
end if;?
end process;?
process(cclk,count3,ctemp)?
begin
if(cclk='1' and cclk'event)then
count3<=count3 +1;?
if(count3=″000″)then
ctemp<=″00000001″;?
elsif(count3=″001″)then
ctemp<=″00000010″;?
elsif(count3=″010″)then
ctemp<=″00000100″;?
elsif(count3=″011″)then
ctemp<=″00001000″;?
elsif(count3=″100″)then
ctemp<=″00010000″;?
elsif(count3=″101″)then
ctemp<=″00100000″;?
elsif(count3=″110″)then
ctemp<=″01000000″;?
elsif(count3=″111″)then
ctemp<=″10000000″;?
else
ctemp<=″00000000″;?
end if;?
end if;?
end process;?
2. 第二种设计方法的VHDL源程序
process(clk,ctemp,count)
begin
if(clk='1' and clk'event)then
count<=count + 1;?
if(count=″00000000000000000″)then
ctemp<=″00000001″;?
elsif(count=″001000000000000000″)then
ctemp<=″00000010″;?
elsif(count=″010000000000000000″)then
ctemp<=″00000100″;?
elsif(count=″011000000000000000″)then
ctemp<=″00001000″;?
elsif(count=″100000000000000000″)then
ctemp<=″00010000″;?
elsif(count=″101000000000000000″)then
ctemp<=″00100000″;?
elsif(count=″110000000000000000″)then
ctemp<=″01000000″;?
elsif(count=″111000000000000000″)then
ctemp<=″10000000″;?
end if;?
end if;?
end peocess;?
对于第一种的程序可以综合出的电路如图1所示。
该电路用一个15位的加法器和寄存器组成一个15位的记数器。在记数器记完一周回到“000000000000000”时,通过后面的15输入的与非门和一位的触发器就可以实现同步的进行215次分频,同步输出32Hz的时钟CCLK。CCLK再驱动一8位的移位寄存器,便可实现每32秒输出一信号。
而用第二种的程序设计综合出的电路如图2所示。
图2所示的电路用一个18位的加法器和寄存器组成一个18位的记数器。后接了8个18输入的逻辑门和8输入的或门。输入的1kHz时钟经过记数器被分频,其中有八个相隔32Hz的记数状态,逻辑门就负责把这八状态译码成所需的八组信号。译码后的数据通过选择器输出到8位的触发器,以实现同步输出。还有个锁存器,是用来保持输出信号不变,在八个状态中的从一个状态变到下一个之前,保持前一个的数值。选择器当逻辑门输出新的数据时让其输出数据通过,在新数据到来之前输出锁存器的数据。
以上两种方法都能实现相同的逻辑功能,但图2所示的方法由于运用了较少位数的记数器,所用的逻辑门也较简单,而且还少用了多路选择器和锁存器资源,所以综合出来的电路较简单,以XILINX
Spartan S05 -3 芯片为例。第一种方法占用芯片CLB的12%,其中FMAPS为9%,最高工作速度为82Hz。而第二种方法占用了15%的CLB,FMAPS占用15%,最高工作速度只有69.9MHz。在这一个简单的设计之中就能省20%的电路,提高12.1MHz的工作速度,由此可见科学的划分设计对降低电路复杂程度的重要意义。
3 逻辑设计对电路结构的影响
还有一个使电路复杂化的原因是逻辑电路的输入项太多以致需占用过多的面积。我们从图3和图4两个相同功能的逻辑电路和他们对应的VHDL描述来分析。
比较两图可知,图3是二级逻辑门,每个输入信号与不只一个逻辑门相连,图4是三级的逻辑门,每个输入信号只与一逻辑门相连。由于级数少,延时也较少,因此图3的速度要比图4快。然而,由于图3的输入项要比图4大的多(10:5),因此,占用的面积必然也比图3大。图4是图3通过提取公因数(例中是B和C)得来的,这是把附加的中间项加到结构描述中去的一种过程,它使输入到输出中的逻辑级数增加,牺牲速度换来电路占用面积的减少。对于对延时要求不高的情况下采用这种方法分解逻辑电路以达到减少电路复杂度的目的。
通过以上简单、初步的探讨,我们可以知道,用VHDL进行集成电路的设计,牵涉到对VHDL语言的使用方法和对设计的理解程度。本文讨论了以下几个简化和优化电路设计的3个值得注意的方面:
(1)在用VHDL进行设计中要注意避免不必要的寄存器描述。
(2)在编写程序前要先对整个设计进行较深入的了解?科学的划分设计,多设想几种方案?再进行比较?用多个较少位数的单元取代较多位数的单元。
(3)在延时要求不高的情况下,可提取逻辑电路公因子?把它分解成含有中间变量的多级电路。
设计者
,
问题
此帖出自
FPGA/CPLD论坛
最新回复
li0610302
你好,请教个问题,我现在做了几个程序,要比较他们的运行速度和资源占用情况,怎么才能看到运行速度呢? 谢谢^_^
详情
回复
发表于 2008-10-16 11:29
点赞
关注
(0)
FPGA论坛
CPLD论坛
FPGA教程
回复
分享
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
举报
提升卡
变色卡
千斤顶
li0610302
li0610302
当前离线
一粒金砂(初级)
最后登录
2017-7-8
在线时间
2 小时
威望
0分
芯积分
0分
(兑换)
E金币
0枚
(兑换)
(兑换)
好友
0
1
帖子
0
TA的资源
一粒金砂(初级)
+ 好友
私信
沙发
发表于2008-10-16 11:29
只看该作者
你好,请教个问题,我现在做了几个程序,要比较他们的运行速度和资源占用情况,怎么才能看到运行速度呢?
谢谢^_^
此帖出自
FPGA/CPLD论坛
FPGA培训
FPGA设计
verilog教程
回复
举报
返回列表
发新帖
回复
您需要登录后才可以回帖
登录
|
注册
发表回复
回帖后跳转到最后一页
活动
更多>>
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
安世半导体智能工业应用探索站,闯关赢好礼!
PI 电源小课堂:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
Microchip喊你探索dsPIC33A 芯片,70份好礼等你赢!
【瓜分2500元红包】票选2024 DigiKey “感知万物,乐享生活”创意大赛人气作品TOP3!
DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!
验证并选择心仪MOSFET,探寻选型奥秘!注册、体验双重好礼等你拿~
免费申请测评 | 泰坦触觉 TITAN Core开发套件
开源项目
更多>>
MAXREFDES108#:非隔离式12V / 1A PoE供电的设备电源
使用 Infineon Technologies AG 的 OMR9801SC 的参考设计
LTC6601-1,宽带有源滤波器解决信号处理精度和匹配问题
MC78M09CTG 9V 电流调节器的典型应用
使用 Nuvoton Technology Corporation 的 NUC123SD4AN0 的参考设计
Jlink ST-Link DAP-Link 40P转接板 JTAG接口转SWD口
灯板1119
LTM8003HY 0.97Vout 3.4 至 40Vin 具有扩频功能的降压转换器的典型应用电路
AM2G-4818SH30Z 18V 2瓦DC-DC转换器的典型应用
ATmega UPDI Programmer
随便看看
RV1106开箱
#RV1106开箱报告前几天,我终于收到了期待已久的LuckfoxRV1106G3开发板。由于最近一直忙于Yocto开发,因此没能及时进行评测。不过,今天我想先分享一下开箱的初体验。##包装及外观开箱时,RV1106G3的包装非常结实,外部印刷清晰,给人一种专业的感觉。打开盒 ...
【MCXN947开发板测评】点阵板显示驱动
【Follow me第二季第4期】汇总提交帖:全部任务_视频提交补充·
是德Keysight N5235A PNA-L 微波网络分析仪
串口通信问题求解
福利:电源经典书籍赶紧领取!
CircuitPython 7.3.0 发布
【器件购买e问e答,幸运抢楼】之2——研发时,需要少量的器件,你会选择申请样片么?
查找数据手册?
搜索
EEWorld Datasheet 技术支持
热门标签
源代码
单片机
放大器
TI
ST
电源
分立器件
传感器
测试测量
模拟
高压陶瓷电容器
半导体二极管
无线通信模块
运放积分电路
应力集中
击穿电压
电容触屏
nrf24l01
网桥
GUI
相关文章
更多>>
苹果M4 Mac mini曝出USB-C接口问题!随机间歇性断开连接
1月17日消息,苹果M4 Mac mini自2024年底发布以来,收获了不少好评,然而近期一些用户在使用过程中发现,该设备的USB-C接口似乎存在连接性问题,给使用带来了不便。 有用户反映M4 Ma
消息称 SK 海力士有望 2 月启动业界最先进 1c nm 制程 DRAM 内存量产
1 月 17 日消息,韩媒 MT(IT之家注:全称 MoneyToday)当地时间今日报道称,SK 海力士近日已成功完成内存业界最先进 1c 纳米制程 DRAM 的批量产品认证,连续多个以 25 块
未经同意出售用户数据,通用汽车遭美国 FTC 处罚
1 月 17 日消息,当地时间周四,美国联邦贸易委员会(FTC)宣布通用汽车及其子公司 OnStar 因未经用户同意出售用户位置和驾驶行为数据,因此将对其进行处罚,包括在五年内禁止向消费者报告机构披
日本三井住友银行推出半导体设备抵押贷款,铠侠已率先获益
联想宣布收购Infinidat,扩充高端企业存储业务
台积电董事长:我们不是美积电 最先进制程不会搬到美国
曝台积电拒绝代工三星Exynos处理器:理由是怕泄密
SK 海力士被曝上半年削减 10% NAND 闪存产量
苹果加入UALink联盟 成员含AMD、英特尔、谷歌等公司
英特尔宣布将逐渐停产第 12 代 Alder Lake 移动处理器,覆盖酷睿、奔腾及赛扬
新帖速递
STM32和无源蜂鸣器播放声音的问题
车规级AECQ200介绍,混合铝电解电容器的选择
嵌入式教程_DSP技术_DSP实验箱操作教程:2-28 搭建轻量级WEB服务器实验
OPA847IDBVR运放器国产替代
AG32VF407测试UART
【得捷电子Follow Me第二期】第一章 收到货物的分享
请问这个红外接收头是什么型号?能用哪个型号代替?谢谢
出售全新未拆封ZYNQ 7Z020 FPGA核心板
用在锂电池供电的水表设置上的LORA模块,当有100块水表集中安装在一个楼道内时,节能
请问一下,当某个端口被设置为 RX0后,这个端口的输入输出方向还有必要设置吗
今年怎么这么难,比疫情时还难,三十了面临失业好迷茫
请教稳压管测试问题
【小华HC32F448测评】关于小华半导体的UART中断发送和PRINTF构造和重定向
【BIGTREETECH PI开发板】 HDMI输出测试
【BIGTREETECH PI开发板】+08.音频测试(zmj)
安世半导体智能工业应用探索站,闯关赢好礼!
点击页面内“开始探索”按钮,填写并提交表单;
请根据序号依次完成3个安世半导体智能工业应用的探索,并根据给出的资料完成共计9题(每个应用3题),答对5题以上的玩家即可获得抽奖资格;
每人仅有一次参与答题的机会,请慎重作答,活动结束后,我们将抽取30位玩家赠送礼品。
查看 »
Microchip 直播|多相降压电源控制技术的发展与探讨 报名中!
直播主题:多相降压电源控制技术的发展与探讨
直播时间:2025年2月25日(星期二)上午10:30-11:30
快来报名!
查看 »
回帖赢好礼 | 关于无线技术的那些事儿
【活动时间】即日起—2025年1月31日
【活动好礼】50元京东卡
查看 »
答题赢好礼,PI电源小课堂第3期来啦!
本期内容:集成式半桥驱动IC BridgeSwitch 2, 助力高效永磁同步电机逆变器的设计
活动时间:即日起-2月28日
看视频答题即可赢取京东卡!
查看 »
Microchip喊你探索 dsPIC33A 芯片,70份好礼等你赢!
活动时间:即日起-1月26日
活动奖励:随身Wi-Fi、家用多功能电烤箱、20000mAh充电宝、50元京东卡
查看 »
DigiKey应用探索站重磅上线!潮流应用,硬核技术探秘,N多干货,一站get!
当月好物、热门技术资源、潮流应用技术、特色活动、DigiKey在线实用工具,干货多多~
查看 »
本周精选下载推荐:电源管理基础Dummies
本周小编给大家带来一本超简单、超干货的电子书——《电源管理基础Dummies》!内容深入浅出,排版舒服简洁,分分钟能get到电源管理最核心的知识内容。
查看 »
下载资料赢好礼!看Vicor模块化电源解决方案如何推动创新
活动时间:即日起-2024年12月31日
如何参与:点击活动页内您想了解的模块,找到资料下载即可参与抽奖,活动结束后统一发奖!
查看 »
验证并选择心仪MOSFET,探寻选型奥秘!注册、体验双重好礼等你拿~
MOSFET 选型有点难
选N沟道MOSFET?还是选P沟道MOSFET?
封装如何选:不同封装尺寸有不同的热阻和耗散功率。
瞬态散热更严苛,热设计需要如何处理?
用东芝在线电路仿真器,一键解锁MOSFET选型的秘密!
查看 »
关闭
站长推荐
1
/9
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
电信业务审批[2006]字第258号函
京公网安备 11010802033920号
Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复
返回顶部
返回列表
论坛首页
版块列表
专业技术中心
TI技术论坛
ST传感器与低功耗无线技术论坛
ADI参考电路
DigiKey得捷技术专区
ADI · 世健工业技术
电子技术交流
嵌入式系统
单片机
国产芯片交流
电机驱动控制
FPGA/CPLD
模拟电子
电源技术
PCB技术
RF/无线
传感器
综合技术交流
下载中心专版
大学堂专版
测评中心专版
创意与实践
电子竞赛
DIY/开源硬件专区
淘e淘
创意市集
行业应用
汽车电子
移动便携
医疗电子
工控电子
安防电子
休息一下
聊聊、笑笑、闹闹
工作这点儿事
为我们提意见&公告
EEWorld颁奖专区
信息发布
最新帖子
最新帖子
最新回复
精华
消灭零回复
测评中心
活动中心
积分兑换
E金币兑换
芯积分
厂商专区
TI技术论坛
ST传感器与低功耗无线技术论坛