0
收藏
微博
微信
复制链接

组合逻辑电路怎么设计比较规范

2020-04-13 11:06
1765

组合逻辑电路设计,在任何特定时间只能在输入的时间取决于输出,电路的原始状态无关。“也就是说,组合逻辑电路输出电路的历史地位并不重要,电路不包括存储单元。组合逻辑表达方法有三种:真值表,逻辑表达式和电路原理图。在verilogHDL描述组合逻辑电路中,与真值表对应的是用户自定义原语;而与电路原理图相对应的是门级建模,有个绰号又叫结构化描述;与逻辑表达式相对应的则称为行为描述。另外verilogHDL还可以用更抽象的描述方法描述组合逻辑电路。 

这样看起来,不少还没有接触verilogHDL的人可能会大呼上当:这些小把戏也值得费时间研究?尤其在这个迅速发展的年头,哪有闲功夫学习什么逻辑语言描述呀!我会用EDA试验课上教授的原理图的绘画不就够了吗?

其实不然,电路设计从会用图形表达意思到用各种抽象的文字表达意思,人类的文明由此建立。语言抽象的威力可见一斑。试想,你1个3-8译码器你可以用图画,10个也没问题,但是后面加个万呢?事实上经过这些年的发展,verilogHDL等针对硬件描述语言小到密码锁,大到CPU(其实也是小,就是多而已)都可以拿来设计。

电路设计

好了,看到这里你可能雄心勃勃想设计CPU了。高楼平地起,那我们就言归正传,开始进入硬件语言设计的世界吧。

在verilogHDL描述逻辑电路中有三种表达方式:assign、always和门原语。

所谓assign描述其实没什么难的,不过是用逻辑表达式和算术表达式描述输出信号与输入信号之间建立的某种直接的联系。

例如要求X1=a&b,你可以输入:

assign X1=a&b;

要求X2=a|b,你就敲:

assign X2=a|b;

非常简单,非常实用。

所谓always描述则可以在电路设计之中经常看见。首先,always在英语中的意思有三,即: invariably、forever、in any event。不少人可能以为always在verilogHDL中就是in any event的意思,没什么新的。其实不然。always在使用中必须加入事件的控制,当事件发生时,执行always指定的内容。需要注意的是,always另外一个特性是不论该事件已经发生多少次,只要事件发生就会执行相关的操作。其中最常见的两个事件是电平触发和边沿触发。

所谓电平触发是指当某个信号的电平发生变化时,执行指定内容;

例如:

always @(a or b)

out1=a+b;

指当a或b 的值发生变化时,out1等于a和b的算术和。

所谓边沿触发是指当某个信号的上升沿或者下降沿到来时,执行always指定的内容。

例如:

      always @(posedge clk1)

       out2=a&b;

       指当clk1的上升沿到来时,令out2等于a和b的逻辑与。

       always @(negedge clk2)

       out3=a|b;

       指当clk2的下降沿到来时,令out3等于a和b 的 逻 辑 或 。


登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

电路之家

专注电子、科技分享,对电子领域深入剖解

开班信息