2017-12-19 04:17:08 +01:00
|
|
|
#!/usr/bin/env python3
|
2020-04-16 10:06:01 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
#
|
|
|
|
|
# Copyright (C) 2017-2020 The Project X-Ray Authors.
|
|
|
|
|
#
|
|
|
|
|
# Use of this source code is governed by a ISC-style
|
|
|
|
|
# license that can be found in the LICENSE file or at
|
|
|
|
|
# https://opensource.org/licenses/ISC
|
|
|
|
|
#
|
|
|
|
|
# SPDX-License-Identifier: ISC
|
2017-12-19 04:17:08 +01:00
|
|
|
|
|
|
|
|
# FIXME: getting two bits
|
|
|
|
|
# 00_40 31_46
|
|
|
|
|
# Can we find instance where they are not aliased?
|
|
|
|
|
WA7USED = 0
|
|
|
|
|
|
2018-10-18 04:03:16 +02:00
|
|
|
from prjxray.segmaker import Segmaker
|
2017-12-19 04:17:08 +01:00
|
|
|
|
2018-10-22 21:04:55 +02:00
|
|
|
segmk = Segmaker("design.bits")
|
2017-12-19 04:17:08 +01:00
|
|
|
|
|
|
|
|
print("Loading tags")
|
|
|
|
|
'''
|
|
|
|
|
module,loc,c31,b31,a31
|
|
|
|
|
my_NDI1MUX_NI_NMC31,SLICE_X12Y100,1,1,0
|
|
|
|
|
my_NDI1MUX_NI_NMC31,SLICE_X12Y101,1,1,1
|
|
|
|
|
my_NDI1MUX_NI_NMC31,SLICE_X12Y102,1,1,1
|
|
|
|
|
'''
|
|
|
|
|
f = open('params.csv', 'r')
|
|
|
|
|
f.readline()
|
|
|
|
|
for l in f:
|
|
|
|
|
l = l.strip()
|
2018-01-09 23:45:26 +01:00
|
|
|
module, loc, c31, b31, a31 = l.split(',')
|
2017-12-19 04:17:08 +01:00
|
|
|
c31 = int(c31)
|
|
|
|
|
b31 = int(b31)
|
|
|
|
|
a31 = int(a31)
|
2018-11-02 00:37:50 +01:00
|
|
|
segmk.add_site_tag(loc, "ALUT.DI1MUX.AI", 1 ^ a31)
|
2019-06-19 23:42:33 +02:00
|
|
|
segmk.add_site_tag(loc, "ALUT.DI1MUX.BDI1_BMC31", a31)
|
2018-11-02 00:37:50 +01:00
|
|
|
segmk.add_site_tag(loc, "BLUT.DI1MUX.BI", 1 ^ b31)
|
2019-06-19 23:42:33 +02:00
|
|
|
segmk.add_site_tag(loc, "BLUT.DI1MUX.DI_CMC31", b31)
|
2018-11-02 00:37:50 +01:00
|
|
|
segmk.add_site_tag(loc, "CLUT.DI1MUX.CI", 1 ^ c31)
|
2019-06-19 23:42:33 +02:00
|
|
|
segmk.add_site_tag(loc, "CLUT.DI1MUX.DI_DMC31", c31)
|
2017-12-19 04:17:08 +01:00
|
|
|
|
|
|
|
|
segmk.compile()
|
|
|
|
|
segmk.write()
|