Skip to content

Adding support for Qmtech Kintex-7 dev board.#1601

Open
juanschroeder wants to merge 2 commits into
openhwgroup:mainfrom
juanschroeder:add_qmtechK7_dev_board_support
Open

Adding support for Qmtech Kintex-7 dev board.#1601
juanschroeder wants to merge 2 commits into
openhwgroup:mainfrom
juanschroeder:add_qmtechK7_dev_board_support

Conversation

@juanschroeder
Copy link
Copy Markdown
Contributor

MIG .prj file was generated in Vivado.
Digilent SD card Pmod is assumed in J13.
Running at 40 MHz (not fully meeting constraints
but boots without issues).

Board: http://www.aliexpress.com/item/1005006765717166.html

@juanschroeder juanschroeder force-pushed the add_qmtechK7_dev_board_support branch 2 times, most recently from 56ca233 to f020e99 Compare January 5, 2026 11:16
MIG .prj file was generated in Vivado.
Digilent SD card Pmod is assumed in J13.
Running at 40 MHz (not fully meeting  constraints
but boots without issues).

Board: http://www.aliexpress.com/item/1005006765717166.html
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new FPGA/Linux configuration target to run the Wally SoC on the Qmtech Kintex-7 (xc7k325t) development board, including Vivado IP generation and board-specific constraints/device-tree.

Changes:

  • Introduces a new fpgaTopQmtechk7 top-level and Vivado generator targets/scripts for qmtechk7 (MMCM + DDR3 MIG).
  • Adds a Qmtech-specific XDC constraints file and Linux device tree for booting at 40 MHz with 256 MB DDR3.
  • Extends the config derivation list to include fpgaqmtechk7.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
linux/devicetree/wally-qmtechk7.dts New device tree describing the qmtechk7 memory map and peripherals at 40 MHz.
fpga/src/fpgaTopQmtechk7.sv New FPGA top-level integrating Wally SoC + DDR3 MIG + clocking for qmtechk7.
fpga/generator/xlnx_ddr3-qmtechk7-mig.prj MIG project settings for the qmtechk7 DDR3 configuration.
fpga/generator/wally.tcl Adds qmtechk7 selection for top + constraints + DDR3/MMCM IP import.
fpga/generator/sysrst.tcl Skips board_part assignment for non-Xilinx qmtechk7 board identifier.
fpga/generator/mmcm-qmtechk7.tcl New MMCM IP configuration for 50 MHz input and required output clocks.
fpga/generator/Makefile Adds qmtechk7 make targets for IP generation and FPGA build flow.
fpga/generator/ddr3-qmtechk7.tcl New DDR3 MIG IP generation script using the qmtechk7 MIG .prj.
fpga/generator/clkconverter.tcl Skips board_part assignment for qmtechk7.
fpga/generator/ahbaxibridge.tcl Skips board_part assignment for qmtechk7.
fpga/constraints/constraints-qmtechk7.xdc New board constraints for clocks, IO pinout, SD, UART, DDR3.
config/derivlist.txt Adds fpgaqmtechk7 derivation entry and external memory range.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

set_property IOSTANDARD LVCMOS33 [get_ports default_50mhz_clk]

# Clocks and Resets (adjust to match board)
set_property IOSTANDARD LVCMOS33 [get_ports default_200mhz_clk]
Comment on lines +18 to +20
create_clock -period 5.000 -name sys_clk [get_ports sys_clk_i]
create_clock -period 5.000 -name idelay_refclk [get_ports clk_ref_i]
#create_clock -period 5.000 -name mig_clk_200m [get_ports sys_clk_i]
create_clock -period 5.000 -name idelay_refclk [get_ports clk_ref_i]
#create_clock -period 5.000 -name mig_clk_200m [get_ports sys_clk_i]

set_property CLOCK_BUFFER_TYPE BUFG [get_nets wallypipelinedsoc/clk_out3_mmcm]
Comment on lines +127 to +142
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[15]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[16]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[17]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[18]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[19]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[20]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[21]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[22]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[23]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[24]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[25]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[26]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[27]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[28]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[29]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dq[30]}]
Comment on lines +146 to +148
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[2]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[3]}]
set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[14]}]

set_property PACKAGE_PIN AF3 [get_ports ddr3_odt[0]]
set_property PACKAGE_PIN AC3 [get_ports ddr3_ras_n]
set_property W4 [get_ports ddr3_reset_n]
Comment on lines +213 to +219
assign GPIOIN = {25'b0, SDCCD, SDCWP, 1'b0, GPI};
assign ahblite_resetn = peripheral_aresetn;
assign cpu_reset = bus_struct_reset;
assign calib = c0_init_calib_complete;

logic [3:0] SDCCSin;
assign SDCCS = SDCCSin[0];
Comment on lines +428 to +434
.ddr3_reset_n(ddr3_reset_n),
.ddr3_ck_p(ddr3_ck_p),
.ddr3_ck_n(ddr3_ck_n),
.ddr3_cke(ddr3_cke),
// ddr3_cs_n: always pulled down in this board?
.ddr3_dm(ddr3_dm),
.ddr3_odt(ddr3_odt),
@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
@davidharrishmc
Copy link
Copy Markdown
Contributor

@juanschroeder would you be able to review the Copilot feedback above and click resolve conversation on each item when you are satisfied it is either fixed or irrelevant?

I don't have the FPGA expertise to review this well and Rose is not very active reviewing right now, but this is valuable work worth incorporating, so I will merge it when you have resolved the copilot feedback.

@juanschroeder
Copy link
Copy Markdown
Contributor Author

Hi @davidharrishmc , yes, I will look into this after I finish the Nexys A7 one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants