Verilog实验总结

一.组合电路设计

(1)数字加法器

a. 利用连续赋值语句实现

module add(a,b,sum,c_in,c_out);
	output sum,c_out;
	input a,b,c_in;
	assign sum=(a^b)^c_in;
	assign c_out=(a&b)|((a^b)&c_in);
endmodule

b.利用行为描述方式实现

module add(sum,a,b,c_in,c_out);
	output c_out,sum;
	input c_in,a,b;
	assign {c_out,sum}=a+b+c_in;
endmodule

 

c.2输入8 bit加法器(行为描述方式)

module add(sum,a,b,c_in,c_out);
	output c_out;
	output [7:0]sum;
	input [7:0]a,b;
	input c_in;
	assign {c_out,sum}=a+b+c_in;
endmodule

(2)数据比较器

例1:4位数据比较器

module comp(a,b,c,out);
input [3:0]a,b;
input c;
output [2:0]out;
reg [2:0]out;
always@ (a or b or c)
	if(a>b) 
		out=3'b100;
	else if(a<b)
		out=3'b001;
	     else
		out=c;
endmodule

(3).数据选择器

例1: 81数据选择器。

module select_8to1(sel,out,data_in);
	input[7:0]data_in;
	output out;
	input[2:0]sel;
	reg out;
always@(*)
case(sel)
	3'b000:out=data_in[0];
	3'b001:out=data_in[1];
	3'b010:out=data_in[2];
	3'b011:out=data_in[3];
	3'b100:out=data_in[4];
	3'b101:out=data_in[5];
	3'b110:out=data_in[6];
	3'b111:out=data_in[7];
	default:out=1'bx;
	endcase
endmodule

(4).  数字编码器

(有几个输入值,输入就为几位)

例1:二进制转化十进制8421BCD编码器,将十进制数01234567

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值