离散逻辑设计


11

我的任务是构建一个简单的警报设备。它只需要测量一些输入,输出就会做出相应的响应(简单地说!)。在我看来,使用几个离散的逻​​辑门就可以完成工作,但是一位同事(与我一起工作)决定我们应该改用可编程逻辑。他的案子获胜,因为首先,他比我高得多,其次,他的主要论点是可编程设备是未来,我们希望制造出可以证明未来的产品。

我的问题是,如果您的设计可以通过几个离散逻辑门轻松实现,那么是否值得再使用离散逻辑进行设计?使用它们比可编程有什么好处吗?还是它会慢慢被可编程逻辑完全淘汰?明确地说,我不希望得到“我相信是这样”或“我个人认为这是……”的答案。我想知道离散设计与可编程设计相比是否有任何实际优势,并且这些天是否值得与他们一起设计消费电子产品?


16
这听起来像是90年代以来的一个问题……µC已经获胜,它比想如何将半个IC连接在一起要容易得多,更不用说占用空间了。
PlasmaHH

9
离散门具有一大优势。没有工具链。
jonk

没有工具链?您是什么意思@jonk
好奇

@PlasmaHH,所以基本上您是说未来设计分立设备没有优势吗?
好奇的

11
@jonk的意思是,当使用微控制器时,您需要用于为微控制器创建程序的软件,例如IDE(图形或文本用户界面)以及专用于所用微控制器的编译器/链接器/其他工具组合,称为a工具链。
Michel Keijzers '18

Answers:


15

离散逻辑设计不会被完全淘汰。在某些应用中,最好使用分立逻辑IC。正如已经指出的,速度是一个很大的优势,尽管在许多应用程序中,速度差异并不那么重要。

在设计阶段,如果您设计的电路只需要在电路的不同点执行2或3个简单的逻辑功能,则最好使用分立门,以节省设计时间,同时还必须编写该程序了。

对于需要执行更复杂的逻辑功能的系统,将所有时间花在编写真值表上,然后弄清楚哪些逻辑门在哪儿等,当您只编写一个小程序时,这是很愚蠢的。通常,更多的输入意味着需要更多的门,并且离散设计需要更长的时间。

离散逻辑真正具有优势的地方是学习。当您第一次学习逻辑设计以及门的工作方式等知识时,在这里实际接触逻辑门并设计具有分立部件的不同功能的地方就很棒。了解基本原理总是一个好主意。因此,因此,离散逻辑将始终在这个世界中占有一席之地。至于消费电子产品?未来肯定是可编程的。


简单的答案,好的要点,并回答所有提出的问题!谢谢!
好奇的

作为具有电子学背景的程序员,我想指出,如果您不计算真值表,则将花费大量的时间调试程序,而您将需要时间来建立真值表。您的真值表将是您程序的不错文档。
chthon '18 -4-6

是的,我同意,提供真值表总是有用的,我将编辑答案以使其与这种情况更加相关
MCG

1
我使用离散逻辑实现的最后一个设计对使用5V逻辑的时序要求“尽可能低”,并且程序要求相对简单。我可以花很多钱在漂亮的闪亮FPGA上,也可以按照“老派”的方式来做。军用规格芯片经历了皮秒级的全电压摆幅,将在核末日和蟑螂的共同作用下幸存下来,而且几乎不花钱。离散逻辑永远存在。
Landak '18 -4-7

14

我根本不是一名专业的电子工程师(实际上只是一个初学者),但是我的几分钱是,只有在时序很重要或需要不使用可编程逻辑的情况下,才应使用专用的分立逻辑IC。

使用微控制器,您可以实现更复杂的逻辑,并且更加灵活。此外,无需更改硬件即可对其进行重新编程。

同样,当需要软件无法跟上的非常快速的时序时,可以使用专用逻辑IC。但是对于警报系统来说,这似乎是不必要的(不需要纳秒级的响应时间)。

以下是我对优点/缺点的解释:

                          Discrete logic (ICs)      Programmable logic/
                                                    (Microcontrollers)
 Nanosecond speed                  x                         -
 Just a few 'operators' needed     x                         -
 No tool chain needed              x                         -
 Cost Efficiency *                 -                         x
 PCB / proto size                  -                         x
 Flexibility for changing          -                         x
 Production cost                   -                         x
 Possibility to extend features    -                         x

* Assuming more than a few (different) logic functions needed

1
那么您认为速度是主要优势?+1的答案,我特别喜欢您的桌子!
好奇的

1
是的,硬件要比软件快,因此,如果您确实需要速度,则需要硬件IC,否则我会选择“软件”(微控制器)解决方案。顺便说一句,如今,对于更复杂的速度敏感解决方案,使用了FPGA。
Michel Keijzers

1
我本来并没有打算使用FPGA,但总工程师已经决定了硬件!我只是出于好奇而问这个问题,看看有什么好处。顺便说一句,如果没有其他答案,我会及时接受您的回答。只是想给别人一个机会,然后过早接受!
好奇的

5
我认为您的总工程师做出了正确的决定。警报系统通常会进行扩展(从多重来源获取更多输入并对其进行操作),甚至将它们组合在一起,然后添加功能,例如发送自动SMS,发出蜂鸣器/警报信号,也许记录一些传感器等
Michel Keijzers

2
@MichelKeijzers的现代FPGA比传统分立逻辑IC所能完成的任何事情都快得多。
Tustique '18 -4-7

10

如果您要创建商业产品,那么您实际上不应该选择设计,因为它是“可编程的”,或者是因为有一位更资深的同事提出的。相反,您应该估算与每个设计相关的风险成本,并选择成本最低且可接受的风险级别的设计。作为一个开始:

  • 单个组件的价格增加了成本
  • 所需的PCB尺寸和复杂性增加了成本
  • 所需的设计工作和工具会增加成本
  • 所需的测试和认证会增加成本

  • 缺乏灵活性(例如,更改离散逻辑需要新的PCB)存在风险
  • 团队中缺乏特定技术的经验是一个风险
  • 无法满足项目要求(例如目标功耗)是一种风险

如果为您的特定项目购买分立逻辑IC的价格便宜,那么您的团队就有这种设计的经验,并且您认为缺乏灵活性不是关键,没有理由不使用分立逻辑。


非常真实 那么您认为离散逻辑有未来吗?
好奇的

4
@好奇,我仍然看到各个BJT和MOSFET被用来在这里和那里实现基本的逻辑功能。离散逻辑是一些简单任务的有用抽象,因此我坚信它不会完全消失。
德米特里·格里戈列耶夫

7

安全性是其他答案遗忘的一个方面。离散逻辑电路比复杂得多的微控制器设计更可靠。我帮助制造了氢原型车,所有安全电路均采用离散逻辑设计。安全性和可靠性是您可能需要考虑设计警报系统的一个方面。


3
通常情况并非如此。一个人可以在处理器上构建一个极其不安全的离散系统和一个极其安全和强大的系统。您的团队没有使用处理器的技能,但这并不会使其固有地不安全。您可能在处理器中进行大量复制,这在离散系统中是不切实际的。
awjlogan

1
@awjlogan您可以做这两种事情,但是离散逻辑紧急停止永远不会失败,因为意外情况将其另一部分陷入了无限循环。对安全至关重要的系统必须尽可能简单
user253751'4

1
@immibis那是糟糕的设计和规格,不是处理器固有的。系统,分立式,FPGA或任何其他方式总是有可能发生故障。同意故障保险柜应该尽可能简单,但这并不意味着它们必须是离散的。
awjlogan

5
@immibis由于单独的焊接缺陷,超过一定设计尺寸的离散逻辑变得不如MCU可靠。而且,如果离散逻辑包括触发器,那么最终导致的禁用系统状态问题与软件中的问题完全相同。
德米特里·格里戈里耶夫

4
在发生故障的情况下,分立部件的作用可能更可预测...
rackandboneman '18

4

我不得不承认,每当我必须执行一些复杂的组合逻辑以及一些计时器时,我都不会理会离散逻辑,而是总是为ATtiny编写一个最小的汇编程序(如果喜欢,可以使用PIC)。

组合逻辑最多可包含20行汇编程序(几个查找表)。每个软件计时器另加10行。硬件计时器甚至更少。如果需要,甚至可以利用板上的A / D转换器,比较器和PWM产生的优势。

唯一的缺点是您必须刷新此部分。有时候,这是个秀发表演,但事实并非如此。最大的好处是您需要的电路板空间要少得多,布线要简单得多,并且可以根据需要轻松更改逻辑功能。


分离逻辑IC的剩余用例是工作速度必须超过1µs的情况。


话题不大,但是ATTiny x17 / x16部件有两个内置的3输入LUT。确实非常方便!
awjlogan'Apr

4

在最终产品中-如果我们谈论的是消费类设备,离散逻辑可能没有很多优势。异常可能需要在不利条件下非常坚固,或者非常容易完全表征(使用基于固件的东西的实际复杂性和潜在的潜在错误要高得多),或者您希望能够从极端的情况重新构建几十年后会出现类似的零件(即使技术字母发生变化,74xx的占用空间也会非常缓慢地改变:))。

使用离散量实际上可以做得更好的事情是自定时,异步逻辑(完成一项操作会立即触发另一项操作)。这种设计的合法性是一个神圣的战争主题。不用担心,同步的人会想打败您,但您只需要把他们的时钟拿走,他们会毫无意义地等待着它。

说到设计方法论,我想说这取决于设计人员的偏好风格-一种CPLD设备,您可以从字面上重新进行实时布线(“将引线与引脚接触,直到有喀嗒声”),并且在主机PC的供电下(当您触摸电线到引脚时会产生模拟火花,最好是出于环境的考虑)肯定会受到偏爱离散逻辑的人们的喜爱:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.