aboutsummaryrefslogtreecommitdiffstats
path: root/gowin/main.cc
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-07-06 15:17:41 +0100
committerGitHub <noreply@github.com>2021-07-06 15:17:41 +0100
commitc696e885736ed052bd1d5e8fd91b42ee3bc6af9f (patch)
tree85ea5f332291f27de2fe3e276b998d89849d6d0b /gowin/main.cc
parentbf542f07b02856f6a04ffc8b5a177baf9acfcd72 (diff)
parent027d54e771ec866e7e7815a4b68a18c6530ddbc4 (diff)
downloadnextpnr-c696e885736ed052bd1d5e8fd91b42ee3bc6af9f.tar.gz
nextpnr-c696e885736ed052bd1d5e8fd91b42ee3bc6af9f.tar.bz2
nextpnr-c696e885736ed052bd1d5e8fd91b42ee3bc6af9f.zip
Merge pull request #751 from trabucayre/gw1ns-2
add support for GW1NS-2 family
Diffstat (limited to 'gowin/main.cc')
-rw-r--r--gowin/main.cc11
1 files changed, 6 insertions, 5 deletions
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));
}