Merge branch 'master' of https://git.efi.th-nuernberg.de/gitea/kuntzschcl/ESY1_Projekt_2023
This commit is contained in:
commit
0fb43a40c1
@ -65,9 +65,9 @@
|
|||||||
module LED_control1 (
|
module LED_control1 (
|
||||||
// inputs
|
// inputs
|
||||||
input wire clk12M, // 12M clock
|
input wire clk12M, // 12M clock
|
||||||
input wire rst, //Asynchronous reset
|
input wire rst, // Asynchronous reset
|
||||||
input wire [1:0] color_sel, // for selecting color using switches
|
input wire [1:0] color_sel, // for selecting color using switches
|
||||||
input wire RGB_Blink_En, //Enabling Blink
|
input wire rw, // read or write select switch
|
||||||
//outputs
|
//outputs
|
||||||
output reg red_pwm, // Red
|
output reg red_pwm, // Red
|
||||||
output reg blu_pwm, // Blue
|
output reg blu_pwm, // Blue
|
||||||
@ -160,16 +160,16 @@ always @ (posedge clk24M or posedge rst)
|
|||||||
Brightness_s <= 4'b0111;
|
Brightness_s <= 4'b0111;
|
||||||
BreatheRamp_s <= 4'b0000;
|
BreatheRamp_s <= 4'b0000;
|
||||||
BlinkRate_s <= 4'b0101;
|
BlinkRate_s <= 4'b0101;
|
||||||
end else if(!RGB_Blink_En) begin
|
//end else if(!RGB_Blink_En) begin //TODO ReadWrite Difference
|
||||||
|
//RGB_color_s <= RGB_color ;
|
||||||
|
//Brightness_s <= Brightness ;
|
||||||
|
//BreatheRamp_s <= 4'b0000 ;
|
||||||
|
//BlinkRate_s <= 4'b0000 ;
|
||||||
|
end else begin
|
||||||
RGB_color_s <= RGB_color ;
|
RGB_color_s <= RGB_color ;
|
||||||
Brightness_s <= Brightness ;
|
Brightness_s <= Brightness ;
|
||||||
BreatheRamp_s <= 4'b0000 ;
|
BreatheRamp_s <= 4'b0000 ;
|
||||||
BlinkRate_s <= 4'b0000 ;
|
BlinkRate_s <= 4'b0000 ;
|
||||||
end else begin
|
|
||||||
RGB_color_s <= RGB_color ;
|
|
||||||
Brightness_s <= Brightness ;
|
|
||||||
BreatheRamp_s <= BreatheRamp ;
|
|
||||||
BlinkRate_s <= BlinkRate ;
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
module led_top (
|
|
||||||
input wire clk12M,
|
|
||||||
input wire rst,
|
|
||||||
input wire [1:0] color_sel,
|
|
||||||
input wire RGB_Blink_En,
|
|
||||||
output reg REDn,
|
|
||||||
output reg BLUn,
|
|
||||||
output reg GRNn,
|
|
||||||
output reg RED,
|
|
||||||
output reg BLU,
|
|
||||||
output reg GRN
|
|
||||||
);
|
|
||||||
|
|
||||||
wire red_pwm;
|
|
||||||
wire grn_pwm;
|
|
||||||
wire blu_pwm;
|
|
||||||
|
|
||||||
//parameter on_hi = 2'b10;
|
|
||||||
//parameter on_lo = 2'b01;
|
|
||||||
//parameter off = 2'b00;
|
|
||||||
//parameter LED_OFF = 2'b00;
|
|
||||||
//parameter RAMP_UP = 2'b01;
|
|
||||||
//parameter LED_ON = 2'b10;
|
|
||||||
//parameter RAMP_DOWN = 2'b11;
|
|
||||||
//parameter on_max_cnt = 28'h16E35ED; // 1 sec steady
|
|
||||||
//parameter [3:0] Brightness=4'b0111; //50% Brightness
|
|
||||||
//parameter [3:0] BreatheRamp=4'b0110; //2x
|
|
||||||
//parameter [3:0] BlinkRate=4'b0101; //1sec
|
|
||||||
//parameter string RGB0_CURRENT = "0b111111";
|
|
||||||
//parameter string RGB1_CURRENT = "0b111111";
|
|
||||||
//parameter string RGB2_CURRENT = "0b111111";
|
|
||||||
defparam U1.on_hi = 2'b10;
|
|
||||||
defparam U1.on_lo = 2'b01;
|
|
||||||
defparam U1.off = 2'b00;
|
|
||||||
defparam U1.LED_OFF = 2'b00;
|
|
||||||
defparam U1.RAMP_UP = 2'b01;
|
|
||||||
defparam U1.LED_ON = 2'b10;
|
|
||||||
defparam U1.RAMP_DOWN = 2'b11;
|
|
||||||
defparam U1.on_max_cnt = 28'h16E35ED; // 1 sec steady
|
|
||||||
defparam U1.Brightness = 4'b0111; // 50% Brightness
|
|
||||||
defparam U1.BreatheRamp = 4'b0110; // 2x
|
|
||||||
defparam U1.BlinkRate = 4'b0101; // 1 sec
|
|
||||||
defparam U2.RGB0_CURRENT = "0b111111";
|
|
||||||
defparam U2.RGB1_CURRENT = "0b111111";
|
|
||||||
defparam U2.RGB2_CURRENT = "0b111111";
|
|
||||||
|
|
||||||
LED_control1 U1 (.clk12M(clk12M),.rst(rst),.color_sel(color_sel),.RGB_Blink_En(RGB_Blink_En),.red_pwm(red_pwm),.blu_pwm(blu_pwm),.grn_pwm(grn_pwm));
|
|
||||||
|
|
||||||
|
|
||||||
RGB U2 (.CURREN('b1),.RGB0PWM(blu_pwm),.RGB1PWM(grn_pwm),.RGB2PWM(red_pwm),.RGBLEDEN('b1),.RGB0(BLUn),.RGB1(GRNn),.RGB2(REDn));
|
|
||||||
|
|
||||||
assign RED = red_pwm;
|
|
||||||
assign GRN = grn_pwm;
|
|
||||||
assign BLU = blu_pwm;
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
63
Ampelansteuerung/steuerung.sv
Normal file
63
Ampelansteuerung/steuerung.sv
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
module steuerung (
|
||||||
|
bus.steuerung_port b, //b.dip[3:0], b.timer, b.clk, b.spi_read[1:0]
|
||||||
|
led_if.led_port_top i //i.rgb[2:0], i.rgbn[2:0]
|
||||||
|
);
|
||||||
|
|
||||||
|
//dip[3:2] -> select colour, dip[1] -> read ~ 1/write ~ 0, dip[0] -> on ~ 1/off ~ 0
|
||||||
|
|
||||||
|
//input wire clk12M, -> b.clk
|
||||||
|
//input wire rst, -> b.dip[0]
|
||||||
|
//input wire [1:0] color_sel, -> b.dip[3:2]
|
||||||
|
//input wire rw, -> b.dip[1]
|
||||||
|
//output reg REDn, -> i.rgbn[0]
|
||||||
|
//output reg BLUn, -> i.rgbn[1]
|
||||||
|
//output reg GRNn, -> i.rgbn[2]
|
||||||
|
//output reg RED, -> i.rgb[0]
|
||||||
|
//output reg BLU, -> i.rgb[1]
|
||||||
|
//output reg GRN -> i.rgb[2]
|
||||||
|
|
||||||
|
|
||||||
|
wire red_pwm;
|
||||||
|
wire grn_pwm;
|
||||||
|
wire blu_pwm;
|
||||||
|
|
||||||
|
|
||||||
|
defparam U1.on_hi = 2'b10;
|
||||||
|
defparam U1.on_lo = 2'b01;
|
||||||
|
defparam U1.off = 2'b00;
|
||||||
|
defparam U1.LED_OFF = 2'b00;
|
||||||
|
defparam U1.RAMP_UP = 2'b01;
|
||||||
|
defparam U1.LED_ON = 2'b10;
|
||||||
|
defparam U1.RAMP_DOWN = 2'b11;
|
||||||
|
defparam U1.on_max_cnt = 28'h16E35ED; // 1 sec steady
|
||||||
|
defparam U1.Brightness = 4'b0111; // 50% Brightness
|
||||||
|
defparam U1.BreatheRamp = 4'b0110; // 2x
|
||||||
|
defparam U1.BlinkRate = 4'b0101; // 1 sec
|
||||||
|
defparam U2.RGB0_CURRENT = "0b111111";
|
||||||
|
defparam U2.RGB1_CURRENT = "0b111111";
|
||||||
|
defparam U2.RGB2_CURRENT = "0b111111";
|
||||||
|
|
||||||
|
LED_control1 U1 (.clk12M(b.clk),.rst(b.dip[0]),.color_sel(b.dip[3:2]),.rw(b.dip[1]),.red_pwm(red_pwm),.blu_pwm(blu_pwm),.grn_pwm(grn_pwm));
|
||||||
|
|
||||||
|
|
||||||
|
RGB U2 (.CURREN('b1),.RGB0PWM(blu_pwm),.RGB1PWM(grn_pwm),.RGB2PWM(red_pwm),.RGBLEDEN('b1),.RGB0(i.rgbn[1]),.RGB1(i.rgbn[2]),.RGB2(rgbn[0]));
|
||||||
|
|
||||||
|
assign i.rgb[0] = red_pwm;
|
||||||
|
assign i.rgb[2] = grn_pwm;
|
||||||
|
assign i.rgb[1] = blu_pwm;
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,130 +0,0 @@
|
|||||||
// ==================================================================
|
|
||||||
// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Copyright (c) 2017 by Lattice Semiconductor Corporation
|
|
||||||
// ALL RIGHTS RESERVED
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Permission:
|
|
||||||
//
|
|
||||||
// Lattice SG Pte. Ltd. grants permission to use this code
|
|
||||||
// pursuant to the terms of the Lattice Reference Design License Agreement.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Disclaimer:
|
|
||||||
//
|
|
||||||
// This VHDL or Verilog source code is intended as a design reference
|
|
||||||
// which illustrates how these types of functions can be implemented.
|
|
||||||
// It is the user's responsibility to verify their design for
|
|
||||||
// consistency and functionality through the use of formal
|
|
||||||
// verification methods. Lattice provides no warranty
|
|
||||||
// regarding the use or functionality of this code.
|
|
||||||
//
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Lattice SG Pte. Lt++++++++++++++++d.
|
|
||||||
// 101 Thomson Road, United Square #07-02
|
|
||||||
// Singapore 307591
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// TEL: 1-800-Lattice (USA and Canada)
|
|
||||||
// +65-6631-2000 (Singapore)
|
|
||||||
// +1-503-268-8001 (other locations)
|
|
||||||
//
|
|
||||||
// web: http://www.latticesemi.com/
|
|
||||||
// email: techsupport@latticesemi.com
|
|
||||||
//
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// Project: iCE5UP 5K RGB LED Tutorial
|
|
||||||
// File: testbench.v
|
|
||||||
// Title: LED PWM control
|
|
||||||
// Description: Creates RGB PWM per control inputs
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// --------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------
|
|
||||||
// Notes:
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------
|
|
||||||
// Development History:
|
|
||||||
//
|
|
||||||
// __DATE__ _BY_ _REV_ _DESCRIPTION___________________________
|
|
||||||
// 04/05/17 RK 1.0 Initial tutorial design for Lattice Radiant
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------
|
|
||||||
// Dependencies:
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Testbench
|
|
||||||
//
|
|
||||||
//------------------------------------------------------------
|
|
||||||
`timescale 1ns/1ps
|
|
||||||
module tb;
|
|
||||||
|
|
||||||
//GSR GSR_INST ( .GSR(1));
|
|
||||||
//PUR PUR_INST ( .PUR(1));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
reg clk12M;
|
|
||||||
reg rst;
|
|
||||||
reg [1:0]color_sel;
|
|
||||||
reg RGB_Blink_En;
|
|
||||||
wire REDn;
|
|
||||||
wire BLUn;
|
|
||||||
wire GRNn;
|
|
||||||
wire RED;
|
|
||||||
wire BLU;
|
|
||||||
wire GRN;
|
|
||||||
|
|
||||||
led_top dut(.clk12M(clk12M),
|
|
||||||
.rst(rst),
|
|
||||||
.color_sel(color_sel),
|
|
||||||
.RGB_Blink_En(RGB_Blink_En),
|
|
||||||
.REDn(REDn),
|
|
||||||
.BLUn(BLUn),
|
|
||||||
.GRNn(GRNn),
|
|
||||||
.RED(RED),
|
|
||||||
.BLU(BLU),
|
|
||||||
.GRN(GRN)
|
|
||||||
);
|
|
||||||
|
|
||||||
initial
|
|
||||||
begin
|
|
||||||
clk12M=1'b0;
|
|
||||||
end
|
|
||||||
|
|
||||||
always
|
|
||||||
#41.666666 clk12M=~clk12M; //clock generation
|
|
||||||
|
|
||||||
|
|
||||||
initial
|
|
||||||
begin
|
|
||||||
rst=1'b1;
|
|
||||||
color_sel=2'b01;
|
|
||||||
RGB_Blink_En=1'b0;
|
|
||||||
#1000
|
|
||||||
rst=1'b0;
|
|
||||||
#3000000
|
|
||||||
color_sel=2'b11;
|
|
||||||
#3000000
|
|
||||||
$stop;
|
|
||||||
end
|
|
||||||
|
|
||||||
initial
|
|
||||||
begin
|
|
||||||
$monitor("time=%t,RGB_Blink_En=%d,rst=%d,color_sel=%2d, REDn=%d, BLUn=%d, GRNn=%d",$time,RGB_Blink_En,rst,color_sel,REDn,BLUn,GRNn);
|
|
||||||
end
|
|
||||||
|
|
||||||
endmodule
|
|
Loading…
x
Reference in New Issue
Block a user