verilog中的gates


前言

  逻辑门(Logic Gates)是学习FPGA的基础,是在集成电路 (Integrated Circuit)上的基本组件。简单的逻辑门可由晶体管组成,本文不从底层的晶体管讲起,而是要从FPGA初级工程师考试的重点讲起。


一、逻辑门

  逻辑门是基础,是学习fpga的基础,请同学从今天开始记住逻辑门表。

在这里插入图片描述

图1. 逻辑门表

1.AND gate

在这里插入图片描述

图2. 与门
module top_module( 
    input a, 
    input b, 
    output out );
    
	assign out = a & b;//两个一位的输入a、b相与,然后赋值给输出out
endmodule

在这里插入图片描述

图3. AND门仿真结果

2.NOT gate

在这里插入图片描述

图4. 非门
module top_module( input in, output out );

	assign out = ~in;//一个一位输入in取反,然后给输出out
endmodule

在这里插入图片描述

图5. 非门仿真

3.NOR gate

在这里插入图片描述

图6. 或非门
module top_module( 
    input a, 
    input b, 
    output out );
    
	assign out = ~(a | b);//两个一位输入a、b,相或取反,然后赋值给输出out
endmodule

在这里插入图片描述

图7. 或非门仿真

4.XNOR gate

在这里插入图片描述

图8. 异或非门
module top_module( 
    input a, 
    input b, 
    output out );
    
	assign out = ~(a ^ b);//异或非表达式
endmodule

  也根据真值表求出逻辑函数式

about
000
011
101
110
表1. 真值表

  取出out为1的项,如上表1所示,中间两列分别是:

a = 0、b = 1
a = 1、b = 0
  当a = 0、b = 1时,乘积项a'b=1;当a=1、b=0时,乘积项ab'=1,因此out的函数应当等于这两个乘积项之和,即
out = a'b + ab'
  最后根据函数写出相应的代码:
module top_module( 
    input a, 
    input b, 
    output out );
    
	assign out = ~(~a & b | a & ~b);//根据函数表达式
endmodule

在这里插入图片描述

图9. 异或非门仿真

注意:如果有更多的输入项,也使用真值表的方法得出函数表达式。


二、综合训练

1.7458芯片

在这里插入图片描述

图10. 7458芯片
module top_module ( 
    input p1a, p1b, p1c, p1d, p1e, p1f,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );
    
	wire a;//中间wire a
	wire b;//中间wire b
	wire c;//中间wire c
	wire d;//中间wire d
	assign a = p2a & p2b;//两个一位输入p2a、p2b相与,然后赋值给中间wire a
	assign b = p2c & p2d;//两个一位输入p2c、p2d相与,然后赋值给中间wire b
	assign c = p1a & p1c & p1b;//三个一位输入p1a、p1c、怕b相与,然后赋值给中间wire c
	assign d = p1f & p1e & p1d;//三个一位输入p1f、p1e、p1d相与,然后赋值给中间wire d
	assign p2y = a | b;//中间wire a、b或运算,然后赋值给输出p2y
	assign p1y = c | d;//中间wire c、d或运算,然后赋值给输出p1y
endmodule

在这里插入图片描述

图11. 7458芯片仿真

2.7420芯片

在这里插入图片描述

图12. 7420芯片
module top_module ( 
    input p1a, p1b, p1c, p1d,
    output p1y,
    input p2a, p2b, p2c, p2d,
    output p2y );
    
	assign p1y = ~(p1a & p1b & p1c & p1d);//四个一位输入p1a、p1b、p1c、p1d相与,然后取反赋值给输出p1y
	assign p2y = ~(p2d & p2c & p2b & p2a);//四个一位输入p2d、p2c、p2b、p2a相与,然后取反赋值给输出p2y

endmodule

在这里插入图片描述

图13. 7420芯片仿真

总结

  本文介绍部分逻辑门,没有介绍的逻辑门都是大同小异。在文章的最后也列举了两个功能简单的芯片。从简单的逻辑门到芯片,这也是为什么逻辑门是集成电路的基础。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值