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

📄 bcd.v

📁 FPGA开发板配套Verilog HDL代码。芯片为Mars EP1C6F。是基础实验的源码。包括加法器、减法器、乘法器、多路选择器等。
💻 V
字号:
/*
4位二进制数转BCD码,由拨码键盘输入,结果由数码管显示
a: dial[3:0]
*/
module bcd (clk,rst,a,c,en );

input clk,rst;
input [3:0] a ;
output[7:0] c ;
reg [7:0] c ;
output[1:0] en ;
reg[1:0] en;


reg[7:0] code_data;
reg[3:0] c_tmp;


reg[19:0] cnt;

always@(posedge clk or negedge rst) 
begin
	if(!rst)
		cnt<=0;
	else if(cnt!=20'h5ffff)
		cnt<=cnt+1;
	else
		cnt<=0;
end

always@(posedge clk or negedge rst)
begin
	if(!rst)
		en[1:0]<=2'b01;
	else begin
		if(cnt==20'h5ffff)
		en[1:0]<=~en[1:0];
	 end
end

always@(en)
begin
	case(en)
		2'b01:
			c_tmp=code_data[3:0];
		2'b10:
			c_tmp=code_data[7:4];
		default:
			c_tmp=0;
	 endcase
end
		
always @(a) //转化过程
begin
	case (a[3:1]) 
		3'b000 : code_data [7:1] = 7'b0000000;
		3'b001 : code_data [7:1] = 7'b0000001;
		3'b010 : code_data [7:1] = 7'b0000010;
		3'b011 : code_data [7:1] = 7'b0000011;
		3'b100 : code_data [7:1] = 7'b0000100;
		3'b101 : code_data [7:1] = 7'b0001000;
		3'b110 : code_data [7:1] = 7'b0001001;
		3'b111 : code_data [7:1] = 7'b0001010;
		default : code_data [7:1] = 7'b0000000;
	 endcase
	code_data[0] = a[0];
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 + -