fpga: x440: cpld: led control cleanup
Original-commit: 1024b69d0c6b32176adf5f6f2269149ef0c34837
This commit is contained in:
committed by
Wade Fife
parent
b4c2aa0a40
commit
72c3a524c7
@@ -1,192 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright 2022 Ettus Research, a National Instruments Brand
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
||||||
//
|
|
||||||
// Module: led_control_tb
|
|
||||||
//
|
|
||||||
// Description:
|
|
||||||
// Simulates LED control module.
|
|
||||||
//
|
|
||||||
`timescale 1ns / 1ps
|
|
||||||
|
|
||||||
module led_control_tb();
|
|
||||||
|
|
||||||
reg clk50;
|
|
||||||
reg reset_clk50;
|
|
||||||
reg s_ctrlport_req_wr;
|
|
||||||
reg s_ctrlport_req_rd;
|
|
||||||
reg [19:0] s_ctrlport_req_addr;
|
|
||||||
reg [31:0] s_ctrlport_req_data;
|
|
||||||
|
|
||||||
// Response
|
|
||||||
wire s_ctrlport_resp_ack;
|
|
||||||
wire [ 1:0] s_ctrlport_resp_status;
|
|
||||||
wire [31:0] s_ctrlport_resp_data;
|
|
||||||
|
|
||||||
// LED Control (domain: ctrlport_clk)
|
|
||||||
wire ch0_rx2_led;
|
|
||||||
wire ch0_tx_led;
|
|
||||||
wire ch0_rx_led;
|
|
||||||
wire ch1_rx2_led;
|
|
||||||
wire ch1_tx_led;
|
|
||||||
wire ch1_rx_led;
|
|
||||||
wire ch2_rx2_led;
|
|
||||||
wire ch2_tx_led;
|
|
||||||
wire ch2_rx_led;
|
|
||||||
wire ch3_rx2_led;
|
|
||||||
wire ch3_tx_led;
|
|
||||||
wire ch3_rx_led;
|
|
||||||
|
|
||||||
led_control #(
|
|
||||||
.BASE_ADDRESS (32'h10)
|
|
||||||
) led_control_db1 (
|
|
||||||
.ctrlport_clk (clk50),
|
|
||||||
.ctrlport_rst (reset_clk50),
|
|
||||||
.s_ctrlport_req_wr (s_ctrlport_req_wr),
|
|
||||||
.s_ctrlport_req_rd (s_ctrlport_req_rd),
|
|
||||||
.s_ctrlport_req_addr (s_ctrlport_req_addr),
|
|
||||||
.s_ctrlport_req_data (s_ctrlport_req_data),
|
|
||||||
.s_ctrlport_resp_ack (s_ctrlport_resp_ack),
|
|
||||||
.s_ctrlport_resp_status (s_ctrlport_resp_status),
|
|
||||||
.s_ctrlport_resp_data (s_ctrlport_resp_data),
|
|
||||||
.ch0_rx2_led (ch0_rx2_led),
|
|
||||||
.ch0_tx_led (ch0_tx_led),
|
|
||||||
.ch0_rx_led (ch0_rx_led),
|
|
||||||
.ch1_rx2_led (ch1_rx2_led),
|
|
||||||
.ch1_tx_led (ch1_tx_led),
|
|
||||||
.ch1_rx_led (ch1_rx_led),
|
|
||||||
.ch2_rx2_led (ch2_rx2_led),
|
|
||||||
.ch2_tx_led (ch2_tx_led),
|
|
||||||
.ch2_rx_led (ch2_rx_led),
|
|
||||||
.ch3_rx2_led (ch3_rx2_led),
|
|
||||||
.ch3_tx_led (ch3_tx_led),
|
|
||||||
.ch3_rx_led (ch3_rx_led)
|
|
||||||
);
|
|
||||||
|
|
||||||
always #20 clk50 = ~clk50;
|
|
||||||
|
|
||||||
initial begin
|
|
||||||
clk50 = 0;
|
|
||||||
reset_clk50 = 0;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 0;
|
|
||||||
s_ctrlport_req_addr = 0;
|
|
||||||
s_ctrlport_req_data = 0;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'hFFFFFFFF;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h00000000;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_rd = 0;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h20;
|
|
||||||
s_ctrlport_req_data = 32'h00000000;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h00000000;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h1;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h3;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h7;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h107;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h307;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h10707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h30707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h70707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h1070707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h3070707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
s_ctrlport_req_data = 32'h7070707;
|
|
||||||
#100;
|
|
||||||
s_ctrlport_req_wr = 0;
|
|
||||||
s_ctrlport_req_rd = 1;
|
|
||||||
s_ctrlport_req_addr = 'h10;
|
|
||||||
end
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
@@ -52,7 +52,7 @@ module led_control #(
|
|||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// ATR memory signals
|
// ATR memory signals
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
reg [31:0] led_ctrl_reg;
|
reg [31:0] led_ctrl_reg = 32'h0;
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Handling of CtrlPort
|
// Handling of CtrlPort
|
||||||
|
|||||||
@@ -94,13 +94,13 @@ module mb_cpld #(
|
|||||||
// 1 -> DB1 / 0 -> DB0
|
// 1 -> DB1 / 0 -> DB0
|
||||||
output wire [1:0] CH0_RX2_LED,
|
output wire [1:0] CH0_RX2_LED,
|
||||||
output wire [1:0] CH0_TX_LED,
|
output wire [1:0] CH0_TX_LED,
|
||||||
output wire [1:0] CH0_RX_LED,
|
output wire [1:0] CH0_RX_LED,
|
||||||
output wire [1:0] CH1_RX2_LED,
|
output wire [1:0] CH1_RX2_LED,
|
||||||
output wire [1:0] CH1_TX_LED,
|
output wire [1:0] CH1_TX_LED,
|
||||||
output wire [1:0] CH1_RX_LED,
|
output wire [1:0] CH1_RX_LED,
|
||||||
output wire [1:0] CH2_RX2_LED,
|
output wire [1:0] CH2_RX2_LED,
|
||||||
output wire [1:0] CH2_TX_LED,
|
output wire [1:0] CH2_TX_LED,
|
||||||
output wire [1:0] CH2_RX_LED,
|
output wire [1:0] CH2_RX_LED,
|
||||||
output wire [1:0] CH3_RX2_LED,
|
output wire [1:0] CH3_RX2_LED,
|
||||||
output wire [1:0] CH3_TX_LED,
|
output wire [1:0] CH3_TX_LED,
|
||||||
output wire [1:0] CH3_RX_LED,
|
output wire [1:0] CH3_RX_LED,
|
||||||
|
|||||||
Reference in New Issue
Block a user