`

试验一 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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics