HoRain云--Verilog 组合逻辑 UDP

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

与非门实例
组合逻辑 UDP 中,状态表规定了不同的输入组合和相对应的输出值,没有指定的任意组合输出值为 x。
一个简单的与非门 UDP 可以表示如下:
primitive nand_my(out, a, b);
output out ;
input a, b ;
table
//a b : out ;
0 0 : 1 ;
0 1 : 1 ;
1 0 : 1 ;
1 1 : 0 ;
endtable
endprimitive
如上一节所阐述,端口列表和声明部分可以改为:
primitive nand_my(
output out,
input a, b);
......
endprimitive
状态表项
表示组合逻辑的状态表中的每一行的语法格式如下:
<input1> <input2> ... <inputN> : <output> ;
- 1、状态表中的 input 信号顺序要与 UDP 端口列表的顺序一致。
- 2、输入和输出用冒号 : 隔开。
- 3、状态表的每一行以分号 ; 结束。
- 4、能够产生确定输出值的所有输入项的组合都必须在状态表中列出,否则会输出 x 值。
例如在上述 UDP nand_my 中,如果 a=0, b=x,则输出 out = x ,因为该组合选项在 table 中无法找到。所以在编写 UDP 时,要完整的考虑输入的所有组合情况。
UDP nand_my 的状态表可以修改为:
table
//a b : out ;
0 0 : 1 ;
0 1 : 1 ;
1 0 : 1 ;
1 1 : 0 ;
0 x : 1 ;
x 0 : 1 ;
endtable
无关项
UDP nand_my 中,当 a 或 b 两个输入只要有一个为 0 时,则输出为 1。
不影响输出结果的输入信号为无关项,可以用问号"?"来表示。状态表中的"?"项将自动展开为 0, 1 或 x。
因此 UDP nand_my 的状态表可以改为:
table
//a b : out ;
0 ? : 1 ;
? 0 : 1 ;
1 1 : 0 ;
//下面组合将输出 x,所以也可以省略,Verilog 默认会输出 x
1 x : x ;
x 1 : x ;
endtable
UDP 例化
UDP 调用格式与内置门级原语完全一致。
利用上述 UDP nand_my 完成《1.3 门延迟》中 D 触发器的仿真。
去除延迟信息,D 触发器模型如下。
实例
module D_TRI(
input D, CP,
output Q, QR);
//part1, not gate
wire CPN, DN ;
not (CPN, CP);
not (DN, D);
//part2, master trigger
wire G3O, G4O ;
nand_my (G3O, D, CP);
nand_my (G4O, DN, CP);
wire G1O, G2O ;
nand_my (G1O, G3O, G2O);
nand_my (G2O, G4O, G1O);
//part3, slave trigger
wire G7O, G8O ;
nand_my (G7O, G1O, CPN);
nand_my (G8O, G2O, CPN);
wire G5O, G6O ;
nand_my (G5O, G7O, G6O);
nand_my (G6O, G8O, G5O);
assign Q = G5O ;
assign QR = G6O ;
endmodule
testbench 保持不变,仿真结果如下。
由图可知,触发器在时钟 CP 下降沿采集到了 D 端信号,并传递给 Q/QR ,在单周期内保持不变。
UDP 完成的与非门功能正确。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐


所有评论(0)