FPGA入门1:半加器,多路选择器Verilog描述

这篇博客介绍了如何使用Verilog进行数字逻辑设计,包括了半加器的Verilog描述,重点讲解了assign并行语句的使用,以及reg型和wire型变量的区别。此外,还详细阐述了4选1多路选择器的实现,涵盖了数字表示法和条件语句的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、半加器
Verilog描述:

module h_adder(A,B,SO,CO) ;
	input A,B;
	output SO,CO;
	assign SO = A ^ B ;
	assign CO = A & B ;
endmodule

assign并行语句,同时执行,与语句的前后顺序无关
Verilog规定所有关键词必须小写

2、多路选择器 (1)always语句
module MUX41a(a,b,c,d,s1,s0,y) ;
	input   a,b,c,d,s1,s0;
	output     y;
	reg    y;
	always@(a or b or c or d or s1 or s0)
		begin : MUX41a     //块语句开始
			case({s1,s0})
				2'b00: y<=a;
				2'b01: y<=b;
				2'b10: y<=c;
				2'b11: y<=d;
				default: y<=a;
			endcase
		end
endmodule

reg型变量用于定义特定类型的变量(寄存器型变量),只用于always过程语句中
wire网线型用于assign引导的幅值语句

任何变量可能有4种不同的逻辑状态:

  • 0
  • 1
  • z或Z (高阻态)
  • x或X (不确定)

符号" <= “是赋值符号,只能英语顺序语句(always),” = "只能用在assign引导的并行语句中。

(2)assign语句表述4选一

module MUX41a(a,b,c,d,s1,s0,y) ;
	input  a,b,c,d,s1,s0;
	output  y;
	wire [1:0] SEL;
	wire  AT,BT,CT,DT;
	assign  SEL = {s1,s0};     //对s1,s0进行并位操作
	
	
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值