⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 div.v

📁 一些Verilog学习程序B
💻 V
字号:
//两个3位二进制数的除法,结果(整数商)输出到数码管显示

module div(a,b,c,en);

input[2:0] a,b;//a 被除数,b 除数
output[7:0] c;
reg[7:0] c;
output[7:0] en;

reg[3:0] c_tmp;//商(整数部分)
reg[2:0] temp_reg;//计算的中间结果寄存器
integer i;

assign en=0;

always@(a or b or temp_reg)
begin
	temp_reg=0;
	c_tmp=0;
	if(b==0)
		c_tmp=4'he;
	else begin
		if(a[2]>=b) begin
			c_tmp[2]=1;
			temp_reg[2]=a[2]-b;
		 end
		else begin
			c_tmp[2]=0;
			temp_reg[2]=a[2];
		 end
		if({temp_reg[2],a[1]}>=b) begin
			c_tmp[1]=1;
			temp_reg[2:1]={temp_reg[2],a[1]}-b;
		 end
		else begin
			c_tmp[1]=0;
			temp_reg[2:1]={temp_reg[2],a[1]};
		 end
		if({temp_reg[2:1],a[0]}>=b) begin
			c_tmp[0]=1;
			temp_reg=0;
		 end
		else begin
			c_tmp[0]=0;
			temp_reg=0;
		end
	 end
end
			
			
always@(c_tmp)
begin
	case(c_tmp)
		4'b0000:
			c=8'b0000_0011;
		4'b0001:
			c=8'b1001_1111;
		4'b0010:
			c=8'b0010_0101;
		4'b0011:
			c=8'b0000_1101;
		4'b0100:
			c=8'b1001_1001;
		4'b0101:
			c=8'b0100_1001;
		4'b0110:
			c=8'b0100_0001;
		4'b0111:
			c=8'b0001_1111;
		4'b1000:
			c=8'b0000_0001;
		4'b1001:
			c=8'b0001_1001;
		4'b1010:
			c=8'b0001_0001;
		4'b1011:
			c=8'b1100_0001;
		4'b1100:
			c=8'b0110_0011;
		4'b1101:
			c=8'b1000_0101;
		4'b1110:
			c=8'b0110_0001;
		4'b1111:
			c=8'b0111_0001;
	 endcase
end
endmodule 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -