Переглянути джерело

Добавил управление светодиодом, который сигнализирует об успешности прошивки Fpga.

Anatoliy Chigirinskiy 1 рік тому
батько
коміт
0d314a7309
2 змінених файлів з 39 додано та 2 видалено
  1. 6 1
      src/constr/Cp2444v1.cst
  2. 33 1
      src/src/Top/TopCp2444v1.v

+ 6 - 1
src/constr/Cp2444v1.cst

@@ -4,8 +4,13 @@
 //Tool Version: V1.9.9.03 (64-bit)
 //Part Number: GW1N-UV9QN88C6/I5
 //Device: GW1N-9
-//Created Time: Thu 11 28 16:15:07 2024
+//Device Version: C
+//Created Time: Thu 11 28 18:49:11 2024
 
+IO_LOC "Fpga24v_o" 28;
+IO_PORT "Fpga24v_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Led_o" 47;
+IO_PORT "Led_o" IO_TYPE=LVCMOS33 PULL_MODE=NONE DRIVE=8 BANK_VCCIO=3.3;
 IO_LOC "FpgaLedP4_o" 32;
 IO_PORT "FpgaLedP4_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
 IO_LOC "FpgaLedP3_o" 31;

+ 33 - 1
src/src/Top/TopCp2444v1.v

@@ -49,10 +49,17 @@ output FpgaP34SwP2_o,
 output FpgaLedP1_o,
 output FpgaLedP2_o,
 output FpgaLedP3_o,
-output FpgaLedP4_o
+output FpgaLedP4_o,
+
+output Led_o,
+output Fpga24v_o
 
 );
 //***********************************************
+//	                LOCALPARAMS
+//***********************************************
+localparam LED_TICK_RATE = 96000000; 
+//***********************************************
 //	                REG/WIRE
 //***********************************************
 wire [23:0]     spiData;
@@ -104,6 +111,11 @@ wire swP1Cs;
 wire swP1Sck;
 wire swP1Mosi;
 
+/* LedCnt*/
+reg [31:0] ledCnt;
+/* LedReg */
+reg ledReg;
+
 //***********************************************
 //	                ASSIGNMENTS
 //***********************************************
@@ -120,9 +132,29 @@ assign FpgaCfP2_o = gpio1CtrlData[9];
 assign FpgaCfP3_o = gpio1CtrlData[10];
 assign FpgaCfP4_o = gpio1CtrlData[11];
 
+/* Led */
+assign Led_o = ledReg;
+assign Fpga24v_o = 1'b0;
+
 //***********************************************
 //	                CODING
 //***********************************************
+/* Blink Led */
+always @(posedge Clk_i) begin
+    if (initRst) begin
+        ledCnt <= 0;
+        ledReg <= 1'b1;
+    end
+    else begin
+        if (ledCnt == LED_TICK_RATE) begin
+            ledReg <= ~ledReg;
+            ledCnt <= 0;
+        end
+        else begin
+            ledCnt <= ledCnt + 1;
+        end
+    end
+end
 
 /*Mux SpiM signals from devices*/
 always @(*) begin