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

📄 hc_led.v

📁 本实例是学习fpga的入门程序 希望大家喜欢
💻 V
字号:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date:    11:10:50 03/04/2007 // Design Name: // Module Name:    hc_led // Project Name: // Target Devices: // Tool versions: // Description: //// Dependencies: //// Revision: // Revision 0.01 - File Created// Additional Comments: ////////////////////////////////////////////////////////////////////////////////////module hc_led(clk, rst_n, led, dot, data_value, hc_cp, hc_si);    input clk;    input rst_n;    input [3:0] led;    input [3:0] dot;    input [15:0] data_value;    output reg hc_cp;    output hc_si;reg [15:0] cnt16x;//reg [7:0] cnt16x;always @ (posedge clk or negedge rst_n)beginif(!rst_n) cnt16x <= 0;else cnt16x<=cnt16x+1'b1;endreg [3:0] led_en;reg [6:0] led_d;reg hc_dot;wire [0:15] hc_data =				{				led[3:0],				led_en[3:0],				led_d[6:2],				hc_dot,				led_d[1:0]};reg [1:0] en_temp;always @ (posedge clk or negedge rst_n)beginif(!rst_n) en_temp <= 2'b0;else if(cnt16x==16'b1111111111111111)//else if(cnt16x==8'b11111111)			en_temp <= en_temp +1'b1;endalways @ ( * )begin	case (en_temp)	2'b00: led_en <= 4'b1110;	2'b01: led_en <= 4'b1101;	2'b10: led_en <= 4'b1011;	2'b11: led_en <= 4'b0111;	default : led_en <= 4'b1110;	endcaseendalways @ ( * )begin	case (en_temp)	2'b00 : hc_dot <=dot [0];	2'b01 : hc_dot <=dot [1];	2'b10 : hc_dot <=dot [2];	2'b11 : hc_dot <=dot [3];	default : hc_dot <= 1'b0;	endcaseendreg [3:0] hex_temp;always @ ( * )begin	case (en_temp)	2'b00 : hex_temp <= data_value [3:0] ;	2'b01 : hex_temp <= data_value [7:4] ;	2'b10 : hex_temp <= data_value [11:8] ;	2'b11 : hex_temp <= data_value [15:12] ;	//default : hex_temp <= 4'b0 ;	endcaseendalways @ ( * )begin	case (hex_temp)		   4'h1  : led_d = 7'b0010_100;	//1          	      4'h2  : led_d = 7'b1011_011;	//2   	      4'h3  : led_d = 7'b1011_110;	//3   	      4'h4  : led_d = 7'b0111_100;	//4   	      4'h5  : led_d = 7'b1101_110;	//5   	      4'h6  : led_d = 7'b1101_111;	//6   	      4'h7  : led_d = 7'b1010_100;	//7   	      4'h8  : led_d = 7'b1111_111;	//8   	      4'h9  : led_d = 7'b1111_100;	//9   	      4'hA  : led_d = 7'b1111_101;	//A   	      4'hB  : led_d = 7'b0101_111;	//b   	      4'hC  : led_d = 7'b1100_011;	//C   	      4'hD  : led_d = 7'b0011_111;	//d   	      4'hE  : led_d = 7'b1101_011;	//E   	      4'hF  : led_d = 7'b1101_001;	//F   	    default : led_d = 7'b1110_111;	//0  		endcaseend reg [5:0] cnt_tx;always @ (posedge clk or negedge rst_n)beginif (!rst_n) cnt_tx <= 6'b0;//else if (cnt16x==16'b1111111111111111)
else if ((cnt16x[15])) cnt_tx <= 6'b0;else if((cnt_tx <=6'd32)&&(!cnt16x[15]))	cnt_tx <= cnt_tx +1'b1;endalways @ (posedge clk or negedge rst_n)beginif (!rst_n) begin 		hc_cp <= 1'b0;					end
else if ((cnt16x[15])) hc_cp <= 1'b0;else if ((cnt_tx <6'd32)&&(!cnt16x[15])) 		begin hc_cp <= !hc_cp;		end  endassign hc_si= hc_data[cnt_tx[4:1]];endmodule

⌨️ 快捷键说明

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