Compare commits

..

2 commits

Author SHA1 Message Date
Stephan I. Böttcher
a908ac1c8f fpga pinout, with fixes on the schematics and layout 2025-12-21 23:27:15 +01:00
Stephan I. Böttcher
00c0cddffe fpga: nmrena unmodified 2025-12-21 21:40:54 +01:00
8 changed files with 614 additions and 55 deletions

282
fpga/pll.v Normal file
View file

@ -0,0 +1,282 @@
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE.
// Modified
`ifndef PLL_LOW_LEVEL
module pll192
(
input inclk0;
output c0, c1, c2, c3, c4;
output locked;
);
// inclk 12 MHz
//
// "192.000000"
// "96.000000"
// "64.000000"
// "32.000000"
// "16.000000"
altpll altpll_component
(
.inclk ({1'b0, inclk}),
.clk ({c4, c3, c2, c1, c0}),
.locked (locked),
.activeclock (),
.areset (1'b0),
.clkbad (),
.clkena ({6{1'b1}}),
.clkloss (),
.clkswitch (1'b0),
.configupdate (1'b0),
.enable0 (),
.enable1 (),
.extclk (),
.extclkena ({4{1'b1}}),
.fbin (1'b1),
.fbmimicbidir (),
.fbout (),
.fref (),
.icdrclk (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
.phasestep (1'b1),
.phaseupdown (1'b1),
.pllena (1'b1),
.scanaclr (1'b0),
.scanclk (1'b0),
.scanclkena (1'b1),
.scandata (1'b0),
.scandataout (),
.scandone (),
.scanread (1'b0),
.scanwrite (1'b0),
.sclkout0 (),
.sclkout1 (),
.vcooverrange (),
.vcounderrange ()
);
defparam
altpll_component.bandwidth_type = "AUTO",
altpll_component.clk0_divide_by = 1,
altpll_component.clk0_duty_cycle = 50,
altpll_component.clk0_multiply_by = 16,
altpll_component.clk0_phase_shift = "0",
altpll_component.clk1_divide_by = 1,
altpll_component.clk1_duty_cycle = 50,
altpll_component.clk1_multiply_by = 8,
altpll_component.clk1_phase_shift = "2600",
altpll_component.clk2_divide_by = 3,
altpll_component.clk2_duty_cycle = 50,
altpll_component.clk2_multiply_by = 16,
altpll_component.clk2_phase_shift = "0",
altpll_component.clk3_divide_by = 3,
altpll_component.clk3_duty_cycle = 50,
altpll_component.clk3_multiply_by = 8,
altpll_component.clk3_phase_shift = "7800",
altpll_component.clk4_divide_by = 3,
altpll_component.clk4_duty_cycle = 50,
altpll_component.clk4_multiply_by = 4,
altpll_component.clk4_phase_shift = "23440",
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 83333,
altpll_component.intended_device_family = "Cyclone 10 LP",
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll192",
altpll_component.lpm_type = "altpll",
altpll_component.operation_mode = "NORMAL",
altpll_component.pll_type = "AUTO",
altpll_component.port_activeclock = "PORT_UNUSED",
altpll_component.port_areset = "PORT_UNUSED",
altpll_component.port_clkbad0 = "PORT_UNUSED",
altpll_component.port_clkbad1 = "PORT_UNUSED",
altpll_component.port_clkloss = "PORT_UNUSED",
altpll_component.port_clkswitch = "PORT_UNUSED",
altpll_component.port_configupdate = "PORT_UNUSED",
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_USED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
altpll_component.port_phasestep = "PORT_UNUSED",
altpll_component.port_phaseupdown = "PORT_UNUSED",
altpll_component.port_pllena = "PORT_UNUSED",
altpll_component.port_scanaclr = "PORT_UNUSED",
altpll_component.port_scanclk = "PORT_UNUSED",
altpll_component.port_scanclkena = "PORT_UNUSED",
altpll_component.port_scandata = "PORT_UNUSED",
altpll_component.port_scandataout = "PORT_UNUSED",
altpll_component.port_scandone = "PORT_UNUSED",
altpll_component.port_scanread = "PORT_UNUSED",
altpll_component.port_scanwrite = "PORT_UNUSED",
altpll_component.port_clk0 = "PORT_USED",
altpll_component.port_clk1 = "PORT_USED",
altpll_component.port_clk2 = "PORT_USED",
altpll_component.port_clk3 = "PORT_USED",
altpll_component.port_clk4 = "PORT_USED",
altpll_component.port_clk5 = "PORT_UNUSED",
altpll_component.port_clkena0 = "PORT_UNUSED",
altpll_component.port_clkena1 = "PORT_UNUSED",
altpll_component.port_clkena2 = "PORT_UNUSED",
altpll_component.port_clkena3 = "PORT_UNUSED",
altpll_component.port_clkena4 = "PORT_UNUSED",
altpll_component.port_clkena5 = "PORT_UNUSED",
altpll_component.port_extclk0 = "PORT_UNUSED",
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.self_reset_on_loss_lock = "OFF",
altpll_component.width_clock = 5;
endmodule
`else // !`ifdef PLL_LOW_LEVEL
module pll192
(
input inclk0;
output c0, c1, c2, c3, c4;
output locked;
);
altpll altpll_component
(
.inclk ({1'b0, inclk}),
.clk ({c4, c3, c2, c1, c0}),
.locked (locked),
.activeclock (),
.areset (1'b0),
.clkbad (),
.clkena ({6{1'b1}}),
.clkloss (),
.clkswitch (1'b0),
.configupdate (1'b0),
.enable0 (),
.enable1 (),
.extclk (),
.extclkena ({4{1'b1}}),
.fbin (1'b1),
.fbmimicbidir (),
.fbout (),
.fref (),
.icdrclk (),
.pfdena (1'b1),
.phasecounterselect ({4{1'b1}}),
.phasedone (),
.phasestep (1'b1),
.phaseupdown (1'b1),
.pllena (1'b1),
.scanaclr (1'b0),
.scanclk (1'b0),
.scanclkena (1'b1),
.scandata (1'b0),
.scandataout (),
.scandone (),
.scanread (1'b0),
.scanwrite (1'b0),
.sclkout0 (),
.sclkout1 (),
.vcooverrange (),
.vcounderrange ()
);
defparam
altpll_component.charge_pump_current_bits = 1,
altpll_component.compensate_clock = "CLK0",
altpll_component.inclk0_input_frequency = 83333,
`ifdef CYCLONE10
altpll_component.intended_device_family = "Cyclone 10 LP",
`endif
altpll_component.loop_filter_c_bits = 0,
altpll_component.loop_filter_r_bits = 24,
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll192",
altpll_component.lpm_type = "altpll",
altpll_component.m = 32,
altpll_component.m_initial = 1,
altpll_component.m_ph = 0,
altpll_component.n = 1,
altpll_component.operation_mode = "NORMAL",
altpll_component.pll_type = "AUTO",
altpll_component.port_activeclock = "PORT_UNUSED",
altpll_component.port_areset = "PORT_UNUSED",
altpll_component.port_clkbad0 = "PORT_UNUSED",
altpll_component.port_clkbad1 = "PORT_UNUSED",
altpll_component.port_clkloss = "PORT_UNUSED",
altpll_component.port_clkswitch = "PORT_UNUSED",
altpll_component.port_configupdate = "PORT_UNUSED",
altpll_component.port_fbin = "PORT_UNUSED",
altpll_component.port_inclk0 = "PORT_USED",
altpll_component.port_inclk1 = "PORT_UNUSED",
altpll_component.port_locked = "PORT_USED",
altpll_component.port_pfdena = "PORT_UNUSED",
altpll_component.port_phasecounterselect = "PORT_UNUSED",
altpll_component.port_phasedone = "PORT_UNUSED",
altpll_component.port_phasestep = "PORT_UNUSED",
altpll_component.port_phaseupdown = "PORT_UNUSED",
altpll_component.port_pllena = "PORT_UNUSED",
altpll_component.port_scanaclr = "PORT_UNUSED",
altpll_component.port_scanclk = "PORT_UNUSED",
altpll_component.port_scanclkena = "PORT_UNUSED",
altpll_component.port_scandata = "PORT_UNUSED",
altpll_component.port_scandataout = "PORT_UNUSED",
altpll_component.port_scandone = "PORT_UNUSED",
altpll_component.port_scanread = "PORT_UNUSED",
altpll_component.port_scanwrite = "PORT_UNUSED",
altpll_component.port_clk0 = "PORT_USED",
altpll_component.port_clk1 = "PORT_USED",
altpll_component.port_clk2 = "PORT_USED",
altpll_component.port_clk3 = "PORT_USED",
altpll_component.port_clk4 = "PORT_USED",
altpll_component.port_clk5 = "PORT_UNUSED",
altpll_component.port_clkena0 = "PORT_UNUSED",
altpll_component.port_clkena1 = "PORT_UNUSED",
altpll_component.port_clkena2 = "PORT_UNUSED",
altpll_component.port_clkena3 = "PORT_UNUSED",
altpll_component.port_clkena4 = "PORT_UNUSED",
altpll_component.port_clkena5 = "PORT_UNUSED",
altpll_component.port_extclk0 = "PORT_UNUSED",
altpll_component.port_extclk1 = "PORT_UNUSED",
altpll_component.port_extclk2 = "PORT_UNUSED",
altpll_component.port_extclk3 = "PORT_UNUSED",
altpll_component.self_reset_on_loss_lock = "OFF",
altpll_component.vco_post_scale = 2,
altpll_component.width_clock = 5,
altpll_component.c0_high = 1,
altpll_component.c0_initial = 1,
altpll_component.c0_low = 1,
altpll_component.c0_mode = "even",
altpll_component.c0_ph = 0,
altpll_component.c1_high = 2,
altpll_component.c1_initial = 2,
altpll_component.c1_low = 2,
altpll_component.c1_mode = "even",
altpll_component.c1_ph = 0,
altpll_component.c2_high = 3,
altpll_component.c2_initial = 1,
altpll_component.c2_low = 3,
altpll_component.c2_mode = "even",
altpll_component.c2_ph = 0,
altpll_component.c3_high = 6,
altpll_component.c3_initial = 4,
altpll_component.c3_low = 6,
altpll_component.c3_mode = "even",
altpll_component.c3_ph = 0,
altpll_component.c4_high = 12,
altpll_component.c4_initial = 10,
altpll_component.c4_low = 12,
altpll_component.c4_mode = "even",
altpll_component.c4_ph = 0,
altpll_component.clk0_counter = "c0",
altpll_component.clk1_counter = "c1",
altpll_component.clk2_counter = "c2",
altpll_component.clk3_counter = "c3",
altpll_component.clk4_counter = "c4";
endmodule
`endif // !`ifdef PLL_LOW_LEVEL

31
fpga/thhor_crs.qpf Normal file
View file

@ -0,0 +1,31 @@
# -------------------------------------------------------------------------- #
#
# Copyright (C) 2020 Intel Corporation. All rights reserved.
# Your use of Intel Corporation's design tools, logic functions
# and other software and tools, and any partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Intel Program License
# Subscription Agreement, the Intel Quartus Prime License Agreement,
# the Intel FPGA IP License Agreement, or other applicable license
# agreement, including, without limitation, that your use is for
# the sole purpose of programming logic devices manufactured by
# Intel and sold by Intel or its authorized distributors. Please
# refer to the applicable agreement for further details, at
# https://fpgasoftware.intel.com/eula.
#
# -------------------------------------------------------------------------- #
#
# Quartus Prime
# Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
# Date created = 15:55:15 January 24, 2024
#
# -------------------------------------------------------------------------- #
QUARTUS_VERSION = "20.1"
DATE = "15:55:15 January 24, 2024"
# Revisions
PROJECT_REVISION = "thhor_crs"

207
fpga/thhor_crs.qsf Normal file
View file

@ -0,0 +1,207 @@
# -*- tcl -*-
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# irena_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY quartus
set_global_assignment -name DEVICE 10CL025YE144I7G
set_global_assignment -name TOP_LEVEL_ENTITY thhor_crs
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name DEVICE_FILTER_PACKAGE TQFP
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V"
set_global_assignment -name MISC_FILE thhor_crs.dpf
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC ON
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING ON
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8
set_global_assignment -name CYCLONEIII_CONFIGURATION_SCHEME "PASSIVE SERIAL"
set_global_assignment -name GENERATE_RBF_FILE ON
set_global_assignment -name CRC_ERROR_CHECKING ON
set_global_assignment -name FORCE_CONFIGURATION_VCCIO OFF
set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO"
set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF
set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED
set_global_assignment -name TIMEQUEST_DO_REPORT_TIMING ON
set_global_assignment -name SYNCHRONIZER_IDENTIFICATION AUTO
set_global_assignment -name REMOVE_DUPLICATE_REGISTERS OFF
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA ON
set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF
set_global_assignment -name EDA_SIMULATION_TOOL "Custom Verilog HDL"
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_simulation
set_global_assignment -name ADD_PASS_THROUGH_LOGIC_TO_INFERRED_RAMS OFF
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
############ Left 3.3V
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to xclk
set_location_assignment PIN_22 -to xclk
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to spi_ssel
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to spi_sck
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to spi_mosi
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to spi_miso
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to spi_ssel
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to spi_miso
set_instance_assignment -name FAST_INPUT_REGISTER ON -to spi_mosi
set_location_assignment PIN_8 -to spi_ssel
set_location_assignment PIN_11 -to spi_sck
set_location_assignment PIN_12 -to spi_mosi
set_location_assignment PIN_10 -to spi_miso
############# right 2.5V
# LVDS spacewire
set_instance_assignment -name IO_STANDARD LVDS -to S_OUT
set_instance_assignment -name IO_STANDARD LVDS -to D_OUT
set_instance_assignment -name IO_STANDARD LVDS -to S_IN
set_instance_assignment -name IO_STANDARD LVDS -to D_IN
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to S_OUT
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to D_OUT
set_location_assignment PIN_87 -to S_OUT
set_location_assignment PIN_86 -to "S_OUT(n)"
set_location_assignment PIN_103 -to D_OUT
set_location_assignment PIN_101 -to "D_OUT(n)"
set_location_assignment PIN_91 -to S_IN
set_location_assignment PIN_60 -to "S_IN(n)"
# Pressure Sensor
set_instance_assignment -name IO_STANDARD "2.5 V" -to pt_Dout
set_instance_assignment -name IO_STANDARD "2.5 V" -to pt_Din
set_instance_assignment -name IO_STANDARD "2.5 V" -to pt_MCLK
set_instance_assignment -name IO_STANDARD "2.5 V" -to pt_SCLK
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to pt_Din
set_instance_assignment -name FAST_INPUT_REGISTER ON -to pt_Dout
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to pt_MCLK
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to pt_SCLK
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to pt_DOUT
set_instance_assignment -name CURRENT_STRENGTH_NEW "8mA" -to pt_Din
set_instance_assignment -name CURRENT_STRENGTH_NEW "8mA" -to pt_MCLK
set_instance_assignment -name CURRENT_STRENGTH_NEW "8mA" -to pt_SCLK
set_instance_assignment -name SLEW_RATE 0 -to pt_Din
set_instance_assignment -name SLEW_RATE 0 -to pt_MCLK
set_instance_assignment -name SLEW_RATE 0 -to pt_SCLK
set_location_assignment PIN_77 -to pt_Dout
set_location_assignment PIN_80 -to pt_Din
set_location_assignment PIN_83 -to pt_MCLK
set_location_assignment PIN_76 -to pt_SCLK
########## bottom 3.3V
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to ADC_nCS
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to ADC_SCK
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to ADC_DIN
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to ADC_DOUT
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to ADC_nCS
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to ADC_SCK
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to ADC_DIN
set_instance_assignment -name FAST_INPUT_REGISTER ON -to ADC_DOUT
set_location_assignment PIN_66 -to ADC_nCS[0]
set_location_assignment PIN_69 -to ADC_SCK[0]
set_location_assignment PIN_67 -to ADC_DIN[0]
set_location_assignment PIN_68 -to ADC_DOUT[0]
set_location_assignment PIN_58 -to ADC_nCS[1]
set_location_assignment PIN_65 -to ADC_SCK[1]
set_location_assignment PIN_59 -to ADC_DIN[1]
set_location_assignment PIN_60 -to ADC_DOUT[1]
set_location_assignment PIN_46 -to ADC_nCS[2]
set_location_assignment PIN_51 -to ADC_SCK[2]
set_location_assignment PIN_49 -to ADC_DIN[2]
set_location_assignment PIN_50 -to ADC_DOUT[2]
set_location_assignment PIN_39 -to ADC_nCS[3]
set_location_assignment PIN_44 -to ADC_SCK[3]
set_location_assignment PIN_42 -to ADC_DIN[3]
set_location_assignment PIN_43 -to ADC_DOUT[3]
########## Spares 3.3V left, top
set_instance_assignment -name IO_STANDARD "3.3-V LVCMOS" -to P33
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to P33
set_instance_assignment -name FAST_INPUT_REGISTER ON -to P33
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to P33
set_location_assignment PIN_6 -to P33[0]
set_location_assignment PIN_7 -to P33[1]
set_location_assignment PIN_28 -to P33[2]
set_location_assignment PIN_31 -to P33[3]
set_location_assignment PIN_32 -to P33[4]
set_location_assignment PIN_33 -to P33[5]
set_location_assignment PIN_71 -to P33[6]
set_location_assignment PIN_72 -to P33[7]
########## Spares 2.5V right, bottom
set_instance_assignment -name IO_STANDARD "2.5 V" -to P25
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to P25
set_instance_assignment -name FAST_INPUT_REGISTER ON -to P25
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to P25
set_location_assignment PIN_105 -to P25[0]
set_location_assignment PIN_106 -to P25[1]
set_location_assignment PIN_111 -to P25[2]
set_location_assignment PIN_112 -to P25[3]
set_location_assignment PIN_113 -to P25[4]
set_location_assignment PIN_114 -to P25[5]
set_location_assignment PIN_115 -to P25[6]
set_location_assignment PIN_119 -to P25[7]
set_location_assignment PIN_120 -to P25[8]
set_location_assignment PIN_121 -to P25[9]
set_location_assignment PIN_125 -to P25[10]
set_location_assignment PIN_132 -to P25[11]
set_location_assignment PIN_133 -to P25[12]
set_location_assignment PIN_135 -to P25[13]
set_location_assignment PIN_136 -to P25[14]
set_location_assignment PIN_137 -to P25[15]
set_location_assignment PIN_141 -to P25[16]
set_location_assignment PIN_142 -to P25[17]
set_location_assignment PIN_143 -to P25[18]
set_location_assignment PIN_144 -to P25[19]
########## Sources
set_global_assignment -name VERILOG_FILE thhor_crs.v
set_global_assignment -name VERILOG_FILE pll.v
set_global_assignment -name VERILOG_MACRO "TARGET_ALTERA=1"
set_global_assignment -name VERILOG_MACRO "TARGET_10C25=1"
set_global_assignment -name VERILOG_MACRO "INFERRED_SRAM=1"

7
fpga/thhor_crs.sdc Normal file
View file

@ -0,0 +1,7 @@
create_clock -name xclk -period 83.333 xclk
derive_pll_clocks
derive_clock_uncertainty
set_false_path -from spi_sck -to xclk
set_false_path -from xclk -to spi_sck
set_false_path -from spi_sck -to {pll0|altpll_component|auto_generated|pll1|clk[3]}
set_false_path -from {pll0|altpll_component|auto_generated|pll1|clk[3]} -to spi_sck

32
fpga/thhor_crs.v Normal file
View file

@ -0,0 +1,32 @@
module thhor_crs
(
input xclk,
input spi_ssel, spi_sck, spi_mosi,
output spi_miso,
// Barometer
output pt_MCLK, pt_SCLK, pt_Din,
input pt_Dout,
// ADCs
output [3:0] ADC_nCS, ADC_SCK, ADC_DIN,
input [3:0] ADC_DOUT,
// LVDS
output S_OUT, D_OUT,
input S_IN, D_IN,
// Spare Pins
inout [19:0] P25,
inout [7:0] P33,
);
wire pll_locked;
wire mclk;
pll192 pll(.inclk0(xclk),
.c3(mclk),
.locked(pll_locked)
);
endmodule // thhor_crs

View file

@ -241,12 +241,12 @@ PEN XP/RSD-1 U2-8
P_DOUT U5-3 U1-77
nCSAp R4-4 U1-66
nCSCp R2-4 U1-46
OUTCp R2-2 U1-50
DOUTCp R2-2 U1-50
P106 P106-1 U1-106
P111 P111-1 U1-111
P105 P105-1 U1-105
P_DIN U5-4 U1-80
OUTAp R4-2 U1-68
DOUTAp R4-2 U1-68
DINCp R2-3 U1-49
nCSDp R1-4 U1-39
P33 P33-1 U1-33
@ -255,12 +255,12 @@ P71 P71-1 U1-71
SCKAp R4-1 U1-69
DINAp R4-3 U1-67
SCKBp R3-1 U1-65
OUTBp R3-2 U1-60
DOUTBp R3-2 U1-60
DINBp R3-3 U1-59
nCSBp R3-4 U1-58
SCKCp R2-1 U1-51
SCKDp R1-1 U1-44
OUTDp R1-2 U1-43
DOUTDp R1-2 U1-43
DINDp R1-3 U1-42
P144 P144-1 U1-144
P143 P143-1 U1-143
@ -279,8 +279,8 @@ P115 P115-1 U1-115
P114 P114-1 U1-114
P113 P113-1 U1-113
P112 P112-1 U1-112
D_OUT-F L41-5 U1-103
D_OUT+F L41-6 U1-101
D_OUT+F L41-5 U1-103
D_OUT-F L41-6 U1-101
CRCERR U2-3 U1-99
S_IN+F R40-4 L40-5 U1-91
S_IN-F R40-3 L40-6 U1-90
@ -301,8 +301,8 @@ SCK U4-2 U2-13 U1-12 U1-11
MISO U4-8 U2-12 U1-10
nSTATUS U2-2 U1-9
nCS U4-4 U2-9 U1-8
P6 P6-1 U1-7
P7 P7-1 U1-6
P7 P7-1 U1-7
P6 P6-1 U1-6
Vpll C127-1 C126-1 C125-1 C124-1 C123-1 C122-1 C121-1 C120-1 C119-1 C118-1 C117-1 C116-1 C115-1 C114-1 C113-1 C112-1 C111-1 C110-1 U5-6 R74-2 XPLL/C3-1 XPLL/R1-1 XPLL/C2-2 XPLL/U1-5 U1-107 U1-35 U1-81 \
U1-130 U1-117 U1-139 U1-122 U1-93 U1-75 U1-3
GND C39-2 C38-2 C42-1 C37-1 C29-1 C28-1 C27-2 C26-2 C25-2 C20-2 C23-2 BOARD-1 C141-2 C140-2 CONN1-0 CONN1-32 CONN1-33 CONN1-34 CONN1-35 CONN1-36 CONN1-37 CONN1-20 CONN1-21 CONN1-22 CONN1-23 CONN1-24 \

View file

@ -458,7 +458,7 @@ Symbol['T' 12.00mil]
(
SymbolLine[0.0000 10.00mil 30.00mil 10.00mil 8.00mil]
SymbolLine[15.00mil 10.00mil 15.00mil 50.00mil 8.00mil]
SymbolLine[0.0000 10.00mil 0.00mil 20.00mil 8.00mil]
SymbolLine[0.0000 10.00mil 0.0000 20.00mil 8.00mil]
SymbolLine[30.00mil 10.00mil 30.00mil 20.00mil 8.00mil]
)
Symbol['U' 12.00mil]
@ -2417,7 +2417,7 @@ Element["" "C0603" "C101" "100nF" 16.8000mm 68.5000mm 0.0000 0.0000 3 55 ""]
)
Element["onsolder" "MSOP_3_8" "U3" "unknown" 18.9000mm 68.5000mm 0.0000 0.0000 2 50 "onsolder"]
Element["onsolder" "MSOP_3_8" "U3" "ADM3061EBRM" 18.9000mm 68.5000mm 0.0000 0.0000 2 50 "onsolder"]
(
Pad[1.8000mm -0.9750mm 2.4000mm -0.9750mm 0.4000mm 20.00mil 0.5524mm "R" "1" "onsolder,square,edge2"]
Pad[1.8000mm -0.3250mm 2.4000mm -0.3250mm 0.4000mm 20.00mil 0.5524mm "_RE_" "2" "onsolder,square,edge2"]
@ -3531,14 +3531,14 @@ Element["" "PIN" "PG1" "unknown" 14.4000mm 67.3000mm 0.0000 0.0000 0 55 ""]
)
Element["" "PIN" "P7" "unknown" 15.8000mm 65.7000mm 0.0000 0.0000 0 55 ""]
Element["" "PIN" "P6" "unknown" 15.8000mm 65.7000mm 0.0000 0.0000 0 55 ""]
(
Pin[0.0000 0.0000 0.7000mm 20.00mil 0.8524mm 0.3000mm "pin" "1" ""]
ElementArc [0.0000 0.0000 0.5000mm 0.5000mm 180.000000 360.000000 0.1500mm]
)
Element["" "PIN" "P6" "unknown" 16.7000mm 65.7000mm 0.0000 0.0000 0 55 ""]
Element["" "PIN" "P7" "unknown" 16.7000mm 65.7000mm 0.0000 0.0000 0 55 ""]
(
Pin[0.0000 0.0000 0.7000mm 20.00mil 0.8524mm 0.3000mm "pin" "1" ""]
ElementArc [0.0000 0.0000 0.5000mm 0.5000mm 180.000000 360.000000 0.1500mm]
@ -9912,7 +9912,7 @@ Layer(6 "bottom" "copper")
[34.6257mm 34.4505mm] [34.7222mm 34.3071mm] [34.8648mm 34.2103mm] [35.0399mm 34.1746mm] [1386.40mil 34.2103mm]
[1392.00mil 34.3071mm] [35.4527mm 34.4505mm] [35.4875mm 1363.20mil] [35.4727mm 34.7400mm] [35.4311mm 1371.80mil]
[35.3662mm 34.9324mm] [35.2810mm 35.0030mm] [35.2589mm 35.0194mm] [35.2244mm 35.0402mm] [35.2163mm 35.0663mm]
[35.2314mm 35.1037mm] [1387.60mil 35.1364mm] [35.4643mm 35.6656mm] [35.4781mm 35.6976mm] [1397.70mil 35.7540mm]
[35.2314mm 35.1037mm] [35.2450mm 35.1364mm] [35.4643mm 35.6656mm] [35.4781mm 35.6976mm] [1397.70mil 35.7540mm]
[35.5100mm 35.7638mm] [35.5235mm 35.7621mm] [35.5770mm 35.7348mm] [35.6089mm 35.7184mm] [35.6612mm 1405.10mil]
[35.6913mm 35.6906mm] [1415.10mil 35.8627mm] [35.9726mm 35.8821mm] [1417.50mil 35.9040mm] [36.0321mm 35.9013mm]
[1427.80mil 35.6670mm] [36.2923mm 35.6424mm] [36.3187mm 35.6148mm] [36.3212mm 35.5872mm] [1429.10mil 35.5555mm]
@ -10678,8 +10678,8 @@ NetList()
)
Net("D_OUT+F" "(unknown)")
(
Connect("L41-6")
Connect("U1-101")
Connect("L41-5")
Connect("U1-103")
)
Net("D_OUT-" "(unknown)")
(
@ -10688,8 +10688,8 @@ NetList()
)
Net("D_OUT-F" "(unknown)")
(
Connect("L41-5")
Connect("U1-103")
Connect("L41-6")
Connect("U1-101")
)
Net("DINA" "(unknown)")
(
@ -10742,21 +10742,41 @@ NetList()
Connect("A/U1-15")
Connect("R4-7")
)
Net("DOUTAp" "(unknown)")
(
Connect("R4-2")
Connect("U1-68")
)
Net("DOUTB" "(unknown)")
(
Connect("B/U1-15")
Connect("R3-7")
)
Net("DOUTBp" "(unknown)")
(
Connect("R3-2")
Connect("U1-60")
)
Net("DOUTC" "(unknown)")
(
Connect("C/U1-15")
Connect("R2-7")
)
Net("DOUTCp" "(unknown)")
(
Connect("R2-2")
Connect("U1-50")
)
Net("DOUTD" "(unknown)")
(
Connect("D/U1-15")
Connect("R1-7")
)
Net("DOUTDp" "(unknown)")
(
Connect("R1-2")
Connect("U1-43")
)
Net("GND" "(unknown)")
(
Connect("A/A/C4-2")
@ -11306,35 +11326,15 @@ NetList()
Connect("U1-9")
Connect("U2-2")
)
Net("OUTAp" "(unknown)")
(
Connect("R4-2")
Connect("U1-68")
)
Net("OUTBp" "(unknown)")
(
Connect("R3-2")
Connect("U1-60")
)
Net("OUTCp" "(unknown)")
(
Connect("R2-2")
Connect("U1-50")
)
Net("OUTDp" "(unknown)")
(
Connect("R1-2")
Connect("U1-43")
)
Net("P6" "(unknown)")
(
Connect("P6-1")
Connect("U1-7")
Connect("U1-6")
)
Net("P7" "(unknown)")
(
Connect("P7-1")
Connect("U1-6")
Connect("U1-7")
)
Net("P28" "(unknown)")
(

View file

@ -1677,7 +1677,7 @@ netname=DINBp
N 33000 39600 33000 40400 4
{
T 32975 40400 5 5 1 1 90 6 1
netname=OUTBp
netname=DOUTBp
}
N 34000 39600 34000 40400 4
{
@ -1697,7 +1697,7 @@ netname=DINAp
N 34600 39600 34600 40400 4
{
T 34575 40400 5 5 1 1 90 6 1
netname=OUTAp
netname=DOUTAp
}
N 34800 39600 34800 40400 4
{
@ -1751,14 +1751,14 @@ N 36100 44300 40200 44300 4
T 38300 44350 5 10 1 1 0 0 1
netname=D_IN+F
}
N 36100 47100 40200 47100 4
{
T 38300 47150 5 10 1 1 0 0 1
netname=D_OUT-F
}
N 36100 46700 40200 46700 4
{
T 38300 46750 5 10 1 1 0 0 1
netname=D_OUT-F
}
N 36100 47100 40200 47100 4
{
T 38300 47150 5 10 1 1 0 0 1
netname=D_OUT+F
}
N 36100 43900 37600 43900 4
@ -4239,24 +4239,24 @@ T 27700 43400 5 5 0 1 0 6 1
footprint=PAD
}
N 27300 43300 27700 43300 4
C 27800 46600 1 0 1 PIN1.sym
{
T 27500 46900 5 10 1 1 0 4 1
refdes=P6
T 27500 46900 5 10 0 0 0 0 1
net=P6:1
T 27700 47000 5 5 0 1 0 6 1
footprint=PIN
}
C 27800 46800 1 0 1 PIN1.sym
{
T 27500 47100 5 10 1 1 0 4 1
refdes=P7
refdes=P6
T 27500 47100 5 10 0 0 0 0 1
net=P7:1
net=P6:1
T 27700 47200 5 5 0 1 0 6 1
footprint=PIN
}
C 27800 46600 1 0 1 PIN1.sym
{
T 27500 46900 5 10 1 1 0 4 1
refdes=P7
T 27500 46900 5 10 0 0 0 0 1
net=P7:1
T 27700 47000 5 5 0 1 0 6 1
footprint=PIN
}
C 28100 48700 1 270 1 PIN1.sym
{
T 28400 49000 5 10 1 1 270 4 1
@ -4549,12 +4549,12 @@ value=100Ω
N 29600 39600 29600 40400 4
{
T 29575 40400 5 5 1 1 90 6 1
netname=OUTDp
netname=DOUTDp
}
N 31000 39600 31000 40400 4
{
T 30975 40400 5 5 1 1 90 6 1
netname=OUTCp
netname=DOUTCp
}
N 33200 39600 34000 39600 4
C 47200 37400 1 0 1 DB37-1.sym