行为级描述的问题?

[复制链接]
 楼主| catccaatt 发表于 2008-1-1 20:11 | 显示全部楼层 |阅读模式
加算法,<br />为什么用了算数库了以后&nbsp;写s&lt=a+b<br />比用下面与或门的描述编译下来占用的资源少???<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bb(0)&lt=b(0)&nbsp;xor&nbsp;d(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bb(1)&lt=b(1)&nbsp;xor&nbsp;d(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bb(2)&lt=b(2)&nbsp;xor&nbsp;d(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bb(3)&lt=b(3)&nbsp;xor&nbsp;d(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s(0)&lt=a(0)&nbsp;xor&nbsp;bb(0)&nbsp;xor&nbsp;d(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s(1)&lt=a(1)&nbsp;xor&nbsp;bb(1)&nbsp;xor&nbsp;c(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s(2)&lt=a(2)&nbsp;xor&nbsp;bb(2)&nbsp;xor&nbsp;c(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s(3)&lt=a(3)&nbsp;xor&nbsp;bb(3)&nbsp;xor&nbsp;c(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;c(0)&lt=(a(0)&nbsp;and&nbsp;bb(0))&nbsp;or&nbsp;(a(0)&nbsp;and&nbsp;d(0))&nbsp;or&nbsp;(bb(0)&nbsp;and&nbsp;d(0));<br />&nbsp;&nbsp;&nbsp;c(1)&lt=(a(1)&nbsp;and&nbsp;bb(1))&nbsp;or&nbsp;(a(1)&nbsp;and&nbsp;c(0))&nbsp;or&nbsp;(bb(1)&nbsp;and&nbsp;c(0));<br />&nbsp;&nbsp;&nbsp;c(2)&lt=(a(2)&nbsp;and&nbsp;bb(2))&nbsp;or&nbsp;(a(2)&nbsp;and&nbsp;c(1))&nbsp;or&nbsp;(bb(2)&nbsp;and&nbsp;c(1));<br />&nbsp;&nbsp;&nbsp;c(3)&lt=(a(3)&nbsp;and&nbsp;bb(3))&nbsp;or&nbsp;(a(3)&nbsp;and&nbsp;c(2))&nbsp;or&nbsp;(bb(3)&nbsp;and&nbsp;c(2));
soso 发表于 2008-1-14 15:35 | 显示全部楼层

逻辑器件的体现就在这里,

  
awey 发表于 2008-1-15 17:29 | 显示全部楼层

就像用C语言比用汇编编译后占用空间大是一个道理

  
阿bin 发表于 2008-1-16 00:43 | 显示全部楼层

我想说一下

我觉得程序长肯定占的资源多拉,程序要求简洁,但是要易懂
风中De舞者 发表于 2008-1-16 10:04 | 显示全部楼层

你写了这么多信号赋值语句肯定占用了不少资源

我建议楼主直接尝试使用原理图用与门和或门来编辑看看
xwj 发表于 2008-1-16 10:12 | 显示全部楼层

好好优化下你的逻辑啊

理论上不管是怎麽写(原理图、表达式、赋值语句)都会是一样多的,但是原理图和赋值语句四由你确定死了的,编译器不会优化,而用表达式(或别的高级语言)时,由于能用很多种方式实现,好的编译器会尝试各种不同的方法并选择一个最优的。<br /><br />因此如果你的逻辑没编译器优化的好,那当然就会占用更多的资源了<br /><br />而且,有针对资源的优化,有针对时间的优化,又会产生更多的变数和更多的结果可能
awey 发表于 2008-1-17 13:04 | 显示全部楼层

尽量少用门级结构描述

除非你对所用的芯片内部相当了解。<br /><br />就像MCU的编程,如果你对汇编不是很所悉,写出来的代码占用的空间可能大于用C写的。
hover99 发表于 2008-1-23 15:01 | 显示全部楼层

楼上很多人都用程序观点来解释电路

  
vongy 发表于 2008-1-28 21:04 | 显示全部楼层

回楼主的问题

如果你在做ASIC,用下面的写法可能会占用资源少一些<br />如果你在做FPGA,用下面的方法占资源一定就会多,因为这是FPGA本身的逻辑决定的,很多逻辑单元早就做好了,用它自己的软件编译会得到最优化的结果,而你写的gate级跟FPGA内部的逻辑结构不一定一致,会导致占用更多的资源。
chunk 发表于 2008-2-4 14:37 | 显示全部楼层

又想起了那个经典的问题

在CPLD内部实现latch和register有区别,区别在哪儿呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部