首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合电路:仅当选择线为高时输出2补码

组合电路:仅当选择线为高时输出2补码
EN

Stack Overflow用户
提问于 2017-11-12 12:18:46
回答 1查看 363关注 0票数 1

我想设计一个门级组合电路来实现下面的逻辑。有没有可能不使用Adder就能做到这一点?

代码语言:javascript
复制
...
input  wire [3:0] in,
input  wire       sel,
output wire [3:0] out
...

assign out = ({4{sel}} & (~in + 1)) | ({4{~sel}} & in);

上述verilog代码将被实现为-4个反相器、1个全加器和1个多路复用器。有没有可能进一步优化它?

其思想是将sel合并到2的补码逻辑中,并产生比加法器电路消耗更少数量的门电路。真的有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 01:51:36

尝试使用卡诺图,只求解(~in + 1)项。如果您设置K-map并一次求解结果的一位

代码语言:javascript
复制
// Input                               Result
// A B C D     -->  ~{A B C D}  --> ~{A B C D}+1  
// 0 0 0 0            1 1 1 1         0 0 0 0
// 0 0 0 1            1 1 1 0         1 1 1 1
// 0 0 1 0            1 1 0 1         1 1 1 0
// 0 0 1 1            1 1 0 0         1 1 0 1
// 0 1 0 0            1 0 1 1         1 1 0 0
// 0 1 0 1            1 0 1 0         1 0 1 1

..。我会让你写下地图的其余部分。但有几件事开始浮出水面。

结果位D总是与输入D相同。结果位C看起来是输入C异或输入D

如果您再做一些K图,您可能会找到结果位A和B的逻辑表达式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47245388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档