diff options
-rw-r--r-- | .cirrus/Dockerfile.ubuntu20.04 | 2 | ||||
-rw-r--r-- | gowin/CMakeLists.txt | 2 | ||||
-rw-r--r-- | gowin/main.cc | 11 |
3 files changed, 8 insertions, 7 deletions
diff --git a/.cirrus/Dockerfile.ubuntu20.04 b/.cirrus/Dockerfile.ubuntu20.04 index 095d1d33..a6ad1c3b 100644 --- a/.cirrus/Dockerfile.ubuntu20.04 +++ b/.cirrus/Dockerfile.ubuntu20.04 @@ -65,4 +65,4 @@ RUN set -e -x ;\ PATH=$PATH:$HOME/.cargo/bin cargo install --path prjoxide RUN set -e -x ;\ - pip3 install apycula==0.0.1a5 + pip3 install apycula==0.0.1a9 diff --git a/gowin/CMakeLists.txt b/gowin/CMakeLists.txt index 695ef884..5d70cd32 100644 --- a/gowin/CMakeLists.txt +++ b/gowin/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.5) project(chipdb-gowin NONE) -set(ALL_GOWIN_DEVICES GW1N-1 GW1N-4 GW1N-9) +set(ALL_GOWIN_DEVICES GW1N-1 GW1N-4 GW1N-9 GW1NS-2) set(GOWIN_DEVICES ${ALL_GOWIN_DEVICES} CACHE STRING "Include support for these Gowin devices (available: ${ALL_GOWIN_DEVICES})") message(STATUS "Enabled Gowin devices: ${GOWIN_DEVICES}") diff --git a/gowin/main.cc b/gowin/main.cc index 95a7e2c1..01fcf25b 100644 --- a/gowin/main.cc +++ b/gowin/main.cc @@ -54,7 +54,7 @@ po::options_description GowinCommandHandler::getArchOptions() std::unique_ptr<Context> GowinCommandHandler::createContext(dict<std::string, Property> &values) { - std::regex devicere = std::regex("GW1N([A-Z]*)-(LV|UV)([0-9])([A-Z]{2}[0-9]+)(C[0-9]/I[0-9])"); + std::regex devicere = std::regex("GW1N([A-Z]*)-(LV|UV|UX)([0-9])(C?)([A-Z]{2}[0-9]+)(C[0-9]/I[0-9])"); std::smatch match; std::string device = vm["device"].as<std::string>(); if (!std::regex_match(device, match, devicere)) { @@ -62,12 +62,13 @@ std::unique_ptr<Context> GowinCommandHandler::createContext(dict<std::string, Pr } ArchArgs chipArgs; char buf[36]; - snprintf(buf, 36, "GW1N%s-%s", match[1].str().c_str(), match[3].str().c_str()); + snprintf(buf, 36, "GW1N%s-%s%s", match[1].str().c_str(), match[3].str().c_str(), + match[4].str().c_str()); chipArgs.device = buf; - snprintf(buf, 36, "GW1N-%s", match[3].str().c_str()); + snprintf(buf, 36, "GW1N%s-%s", match[1].str().c_str(), match[3].str().c_str()); chipArgs.family = buf; - chipArgs.package = match[4]; - chipArgs.speed = match[5]; + chipArgs.package = match[5]; + chipArgs.speed = match[6]; return std::unique_ptr<Context>(new Context(chipArgs)); } |