Parcourir la source

Merge branch 'Stepan/feature_TopModule' of zaytsev.mikhail/SB_TMSG44V1_FPGA into dev

ChStepan il y a 1 an
Parent
commit
9861d98f86

+ 133 - 0
src/constr/RF_FPGA.cst

@@ -0,0 +1,133 @@
+//Copyright (C)2014-2024 Gowin Semiconductor Corporation.
+//All rights reserved. 
+//File Title: Physical Constraints file
+//Tool Version: V1.9.9.01 (64-bit)
+//Part Number: GW1N-LV9PG256C6/I5
+//Device: GW1N-9
+//Created Time: Fri 04 12 11:25:42 2024
+
+IO_LOC "GPIO_o[21]" E1;
+IO_PORT "GPIO_o[21]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[20]" C16;
+IO_PORT "GPIO_o[20]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[19]" D15;
+IO_PORT "GPIO_o[19]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[18]" P1;
+IO_PORT "GPIO_o[18]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[17]" D1;
+IO_PORT "GPIO_o[17]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[16]" R1;
+IO_PORT "GPIO_o[16]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[15]" L1;
+IO_PORT "GPIO_o[15]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[14]" K2;
+IO_PORT "GPIO_o[14]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[13]" K1;
+IO_PORT "GPIO_o[13]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[12]" L2;
+IO_PORT "GPIO_o[12]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[11]" A2;
+IO_PORT "GPIO_o[11]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[10]" A11;
+IO_PORT "GPIO_o[10]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[9]" A14;
+IO_PORT "GPIO_o[9]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[8]" A12;
+IO_PORT "GPIO_o[8]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[7]" A10;
+IO_PORT "GPIO_o[7]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[6]" A13;
+IO_PORT "GPIO_o[6]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[5]" R6;
+IO_PORT "GPIO_o[5]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[4]" T5;
+IO_PORT "GPIO_o[4]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[3]" T6;
+IO_PORT "GPIO_o[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[2]" J16;
+IO_PORT "GPIO_o[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[1]" H16;
+IO_PORT "GPIO_o[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "GPIO_o[0]" G16;
+IO_PORT "GPIO_o[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "RstInit_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Locked_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Mosi0_o[7]" IO_TYPE=LVCMOS33;
+IO_LOC "Mosi0_o[6]" C1;
+IO_PORT "Mosi0_o[6]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[5]" F16;
+IO_PORT "Mosi0_o[5]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[4]" C7;
+IO_PORT "Mosi0_o[4]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[3]" B3;
+IO_PORT "Mosi0_o[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[2]" B5;
+IO_PORT "Mosi0_o[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[1]" R3;
+IO_PORT "Mosi0_o[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi0_o[0]" G1;
+IO_PORT "Mosi0_o[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Sck_o[7]" IO_TYPE=LVCMOS33;
+IO_LOC "Sck_o[6]" C2;
+IO_PORT "Sck_o[6]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[5]" E16;
+IO_PORT "Sck_o[5]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[4]" B7;
+IO_PORT "Sck_o[4]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[3]" A3;
+IO_PORT "Sck_o[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[2]" A5;
+IO_PORT "Sck_o[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[1]" T2;
+IO_PORT "Sck_o[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Sck_o[0]" G2;
+IO_PORT "Sck_o[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Ss_o[7]" IO_TYPE=LVCMOS33;
+IO_LOC "Ss_o[6]" D2;
+IO_PORT "Ss_o[6]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[5]" F15;
+IO_PORT "Ss_o[5]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[4]" C8;
+IO_PORT "Ss_o[4]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[3]" B4;
+IO_PORT "Ss_o[3]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[2]" A4;
+IO_PORT "Ss_o[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[1]" R4;
+IO_PORT "Ss_o[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Ss_o[0]" F1;
+IO_PORT "Ss_o[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Clk50_o" IO_TYPE=LVCMOS33;
+IO_PORT "Clk100_o" IO_TYPE=LVCMOS33;
+IO_PORT "Clk600_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Clk5_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Clk20_o" IO_TYPE=LVCMOS33;
+IO_PORT "Clk30_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Clk40_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_PORT "Clk75_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "I2CSck_o" K16;
+IO_PORT "I2CSck_o" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "I2CSda_io" L16;
+IO_PORT "I2CSda_io" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "Mosi1_io" T12;
+IO_PORT "Mosi1_io" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8 BANK_VCCIO=3.3;
+IO_LOC "MisoMax2870_i" B1;
+IO_PORT "MisoMax2870_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Miso2_i" T3;
+IO_PORT "Miso2_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Miso1_i" F2;
+IO_PORT "Miso1_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Ss_i" T9;
+IO_PORT "Ss_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Sck_i" T13;
+IO_PORT "Sck_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Mosi3_i" T15;
+IO_PORT "Mosi3_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Mosi2_i" T14;
+IO_PORT "Mosi2_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Mosi0_i" R12;
+IO_PORT "Mosi0_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Rst_i" R9;
+IO_PORT "Rst_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;
+IO_LOC "Clk_i" H11;
+IO_PORT "Clk_i" IO_TYPE=LVCMOS33 PULL_MODE=UP BANK_VCCIO=3.3;

+ 21 - 0
src/constr/RF_FPGA.sdc

@@ -0,0 +1,21 @@
+//Copyright (C)2014-2024 GOWIN Semiconductor Corporation.
+//All rights reserved.
+//File Title: Timing Constraints file
+//Tool Version: V1.9.9.01 (64-bit) 
+//Created Time: 2024-03-18 14:44:39
+create_clock -name Clk_i -period 41.667 -waveform {0 20.834} [get_ports {Clk_i}]
+create_clock -name Sck_i -period 10 -waveform {0 5} [get_ports {Sck_i}]
+create_generated_clock -name clk30 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 30 [get_ports {Clk30_o}]
+create_generated_clock -name clk40 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 40 [get_ports {Clk40_o}]
+create_generated_clock -name clk50 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 50 [get_ports {Clk50_o}]
+create_generated_clock -name clk5 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 5 [get_ports {Clk5_o}]
+create_generated_clock -name clk360 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 360 [get_ports {Clk600_o}]
+create_generated_clock -name clk100 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 100 [get_ports {Clk100_o}]
+create_generated_clock -name clk20 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 20 [get_ports {Clk20_o}]
+create_generated_clock -name clk75 -source [get_ports {Clk_i}] -master_clock Clk_i -divide_by 24 -multiply_by 72 [get_ports {Clk75_o}]
+set_clock_groups -asynchronous -group [get_clocks {Clk_i Sck_i}]
+report_timing -setup -from_clock [get_clocks {clk100}] -max_paths 100 -max_common_paths 1
+report_timing -setup -from_clock [get_clocks {clk360}] -max_paths 100 -max_common_paths 1
+report_timing -setup -from_clock [get_clocks {clk75}] -max_paths 100 -max_common_paths 1
+report_timing -setup -from_clock [get_clocks {clk50}] -max_paths 100 -max_common_paths 1
+report_timing -setup -from [get_ports {Rst_i}]

+ 1 - 1
src/src/InterfaceArbiter/QuadSm.v

@@ -1,6 +1,6 @@
 `timescale 1ns / 1ps
 
-module QuadSm 
+module ExtQSpiMEmul 
 (
 	input Rst_i,
 	input Clk_i,

+ 1 - 1
src/src/InterfaceArbiter/SingleSm.v

@@ -1,6 +1,6 @@
 `timescale 1ns / 1ps
 
-module SingleSm 
+module ExtSpiMEmul 
 (
 	input Rst_i,
 	input Clk_i,

BIN
src/src/InterfaceArbiter/InterfaceArbiter.docx


+ 2 - 2
src/src/InterfaceArbiter/InterfaceArbiterTb.v

@@ -195,7 +195,7 @@ always @(*) begin
 	endcase
 end
 
-SingleSm SingleSpiSm
+ExtSpiMEmul SingleSpiSm
 (
 	.Rst_i		(rst),
 	.Clk_i		(Clk10),
@@ -209,7 +209,7 @@ SingleSm SingleSpiSm
 	
 );
 
-QuadSm QuadSpiSm
+ExtQSpiMEmul QuadSpiSm
 (
 	.Rst_i		(rst),
 	.Clk_i		(Clk10),

+ 82 - 0
src/src/Top/TopSbtmsg.v

@@ -0,0 +1,82 @@
+`timescale 1ns / 1ps
+
+//////////////////////////////////////////////////////////////////////////////////
+// Company: Tair
+// Engineer: Churbanov S.
+// 
+// Create Date:     
+// Design Name: 
+// Module Name:    TopSbtmsg
+// Project Name: 
+// Target Devices: 
+// Tool versions: 
+// Description: 
+//
+// Dependencies: 
+//
+// Revision: 
+// Revision 0.01 - File Created
+// Additional Comments: 
+//		Clk_i - is 24MHz.
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+module TopSbTmsg 
+#(
+    parameter DevNum = 8,
+    parameter WordWidth = 24
+) 
+(
+	input Clk_i,
+	input Rst_i,
+	
+	input Sck_i,
+	input Ss_i,
+	
+	input Mosi0_i,
+	inout Mosi1_io,
+	input Mosi2_i,
+	input Mosi3_i,
+	
+	input Miso1_i,
+	input Miso2_i,
+	input MisoMax2870_i,
+	
+	output I2CSck_o,
+	inout I2CSda_io,
+	
+	output [DevNum-1:0] Ss_o,
+	output [DevNum-1:0] Sck_o,
+	output [DevNum-1:0] Mosi_o,
+	
+	output [21:0] Gpio_o
+);
+
+//================================================================================
+//  LOCALPARAM
+
+
+//================================================================================
+
+wire clk360;
+wire clk100;
+wire clk75;
+wire clk50;
+wire clk40;
+wire clk20;
+wire clk30;
+wire clk5;
+
+//================================================================================
+//  ASSIGNMENTS
+
+
+
+
+
+//================================================================================
+//  CODING
+
+
+
+endmodule