首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Harris HDL示例4.13

Harris HDL示例4.13
EN

Stack Overflow用户
提问于 2017-01-29 21:11:01
回答 1查看 141关注 0票数 0

我读了一本叫做“数字设计和计算机体系结构”的书,这本书是哈里斯和我写的,我有一个关于例子4.13 (延迟逻辑门)的问题。

在该示例中,我们建立了表达式Y = !A*!B*!C +A*!C+A*!B*C的模型,并在此基础上增加了一些延迟:1 ns用于逆变器,3输入和门的延迟为2ns,三输入或门的延迟为4 ns。

现在,..sv代码如下:

代码语言:javascript
复制
*timescale 1ns/1ps
module example(input a,b,c
               output y);
logic ab,bb,cb,n1,n2,n3;
assign #1 {ab,bb,cb} = ~{a,b,c};
assign #2 n1 = ab & bb & cb;
assign #2 n2 = a & bb & cb;
assign #2 n3 = a & bb & c;
assign #4 y = n1 | n2 | n3;

endmodule

因此,问题是:这种形式的编程3个操作数的逻辑是什么(!A*!B*!C,A*!B*!C,A*!B*C)。我不明白从4点到8点的线路上发生了什么。

有人能解释一下吗?为什么会有像ab,bb和cb这样的操作数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-29 23:12:39

abbbcb都是abc (即,逻辑表达式中的!A!B!C )的逻辑逆词。"b“或"_B”后缀通常用于表示逆断言级别或逆断言级别。

assign表达式分别表示原始布尔方程中的一个操作:

代码语言:javascript
复制
assign #1 {ab,bb,cb} = ~{a,b,c};

这个表达式可以被认为是具有输入abc的3个非门,分别具有输出abbbcb。它使用Verilog按位逆运算符~以及Verilog级联运算符{}来执行所有逆操作,而不是3个单独的assign表达式。

从这里开始,n1n2n3的赋值都对应于方程中的3、3路和运算,只是作为表达式中的中间值。n1被分配给!A * !B * !Cn2得到A * !B * !Cn3得到A * !B * C。请注意,它们中的每一个都具有给定门的延迟#n,其中逆获取#1n1n2n3获取#2,最后将输出y分配给#4延迟作为ANDed值n1n2d39的最后3路OR。

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

https://stackoverflow.com/questions/41925996

复制
相关文章

相似问题

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