0
点赞
收藏
分享

微信扫一扫

试验一 LED控制实验


刚买了一个红色飓风二代的板子抓紧时间学习哈。

实验内容:

编写按键控制LED的程序和3/8译码器的程序,并在开发板上实现它们。

管脚对应:

push button

SW6

SW5

SW4

SW3

FPGA Pin

P51

P52

P57

P58

器件

LED1

LED2

LED3

LED4

LED5

LED6

LED7

LED8

FPGA Pin

P204

P203

P200

P199

P198

P197

P196

P194

信号名称

VD8

VD7

VD6

VD5

VD4

VD3

VD2

VD1

时钟 50MHz P76

复位 SW2 P152


`timescale 1ns / 1ps
module sw_led(clk, rst, sw0, sw1, sw2, sw3, led0, led1, led2, led3, led4, led5, led6, led7);
    input        	clk;
    input        	rst;
    input        	sw0;
    input 		  	sw1;
    input 		  	sw2;
    input 		  	sw3;
    output 		  	led0;
    output 		   led1;
    output 			led2;
    output 			led3;
    output 			led4;
    output 			led5;
    output 			led6;
    output 			led7;

    wire		 		led0;
	wire				led1;
	 wire				led2;
	 wire 			led3;
	 wire				led4;
	 wire				led5;
	 wire				led6;
	 wire				led7;

	 wire   [3 :0] sw;
	 reg    [7 :0] led;

	 assign   sw =	{sw0,sw1,sw2,sw3};
	 assign   {led0,led1,led2,led3,led4,led5,led6,led7} = led;

	 always @ ( posedge clk or negedge rst)
	 	begin
			if(!rst)
				led<='b0;
			else
				case ( sw )

				4'b1110:  led <= 8'b0000_0001;
				4'b1101:  led <= 8'b0000_0010;
				4'b1011:  led <= 8'b0000_0100;
				4'b0111:  led <= 8'b0000_1000;
				4'b1100:  led <= 8'b0001_0000;
				4'b1001:  led <= 8'b0010_0000;
				4'b0011:  led <= 8'b0100_0000;
				4'b0110:  led <= 8'b1000_0000;
				default:  led <= 8'b0000_0000;	

				endcase
		end
endmodule


 代码注意:因为开发板中的四个按钮中的默认输入为高电平,所以这里的编码看起来有点儿怪。

Macro Statistics
# ROMs                                                      : 1
 16x8-bit ROM                                            : 1

综合后利用了一个16x8-bit的ROM。

一个三八译码器:


module translater(clk,rst,din,dout);  
	input         clk,rst ;
	input [2 :0 ] din     ;
	output[7 :0 ] dout    ;
	reg   [7 :0 ] dout    ;
always @ ( posedge clk or negedge rst )
	if( !rst ) 
		dout <= 8'b0000_0000 ;
	else 
		case( {~din[2],~din[1],~din[0]} )
			3'b000: dout <= 8'b0000_0001 ;
			3'b001: dout <= 8'b0000_0010 ;
			3'b010: dout <= 8'b0000_0100 ;
			3'b011: dout <= 8'b0000_1000 ;
			3'b100: dout <= 8'b0001_0000 ;
			3'b101: dout <= 8'b0010_0000 ;
			3'b110: dout <= 8'b0100_0000 ;
			3'b111: dout <= 8'b1000_0000 ;
		endcase
endmodule


 

举报

相关推荐

0 条评论