试验一 LED控制实验

本文介绍了一种使用Verilog HDL语言实现按键控制LED及3/8译码器的方法。通过编写Verilog代码,实现了根据开关状态点亮不同LED的功能,并设计了三八译码器模块。此实验适用于初学者了解基本数字逻辑电路的设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

实验内容:

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

管脚对应:

push buttonSW6SW5SW4SW3
FPGA PinP51P52P57P58
 
器件LED1LED2LED3LED4LED5LED6LED7LED8
FPGA PinP204P203P200P199P198P197P196P194
信号名称VD8VD7VD6VD5VD4VD3VD2VD1

时钟 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值