HDL 2.1 Basic

2.1.1 Wire

module top_module( input in, output out );
    assign out = in;
endmodule

为什么assign赋值是directional wire,可能是模拟电路中电流的单向性

2.1.2 Wire4  

module top_module( 
    input a,b,c,
    output w,x,y,z );
	assign w = a;
	assign x = b;
	assign y = b;
	assign z = c;
endmodule

2.1.3 非门

module top_module( input in, output out );
	assign out = !in;
endmodule

2.1.4 与门

module top_module( 
    input a, 
    input b, 
    output out );
	assign out = a&&b;
endmodule

2.1.5 或非门

module top_module( 
    input a, 
    input b, 
    output out );
    assign out = !(a||b);
endmodule

2.1.6 异或非门(同或门)

由于不熟悉异或非门的表达式,所以首先想到异或门的逻辑处理结果:

about
110
101
011
000

通常通过结果反推出逻辑表达式:

out = !(a&&b)&&(a||b)

该题是用一行代码来表述:

module top_module( 
    input a, 
    input b, 
    output out );
    assign out = !(!(a&&b)&&(a||b));
endmodule

2.1.7 Wire声明

default_nettype none
module top_module(
    input a,
    input b,
    input c,
    input d,
    output out,
    output out_n   ); 
	wire wire1,wire2;
    assign wire1 = a&&b;
    assign wire2 = c&&d;
    assign out = wire1||wire2;
    assign out_n = !(wire1||wire2);
endmodule

2.1.8 7458芯片 

这一题相当于2.1.7的复杂版,没有新的知识点,因此直接做一个总结:

位运算逻辑运算
&&&
|

||

~
异或^
同或(异或非)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值