mirror of https://github.com/openXC7/prjxray.git
40 lines
984 B
Python
40 lines
984 B
Python
#!/usr/bin/env python3
|
|
# -*- 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
|
|
|
|
from prjxray import bitstream
|
|
|
|
|
|
def write(bits_fn, fnout, tags):
|
|
'''
|
|
seg 00020000_046
|
|
bit 18_20
|
|
bit 39_63
|
|
tag LIOB33.IOB_Y1.REFBIT 0
|
|
'''
|
|
fout = open(fnout, "w")
|
|
|
|
def line(s):
|
|
fout.write(s + "\n")
|
|
|
|
# Everything relative to start of bitstream
|
|
line("seg 00000000_000")
|
|
|
|
bitdata = bitstream.load_bitdata2(open(bits_fn, "r"))
|
|
|
|
for frame, words in bitdata.items():
|
|
for word, wbits in words.items():
|
|
for bitidx in sorted(list(wbits)):
|
|
# Are the names arbitrary? Lets just re-create
|
|
line("bit %08X_%03u_%02u" % (frame, word, bitidx))
|
|
|
|
for k, v in tags.items():
|
|
line("tag %s %u" % (k, v))
|