blob: f7184bd44950c87f615ff9713fe4e93a8fe0689c [file] [log] [blame]
#!/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.util import OpenSafeFile
class Bitfilter(object):
def __init__(
self, frames_to_include=None, frames_to_exclude=[],
bits_to_exclude=[]):
self.frames_to_include = frames_to_include
self.frames_to_exclude = frames_to_exclude
self.bits_to_exclude = bits_to_exclude
def filter(self, frame, bit):
if self.frames_to_include is not None:
if frame in self.frames_to_include:
return True
if frame in self.frames_to_exclude:
return False
if (frame, bit) in self.bits_to_exclude:
return False
return True
BITFILTERS = {
('artix7', 'INT'):
Bitfilter(
frames_to_exclude=[
30,
31,
],
bits_to_exclude=[
#
(0, 36)
]),
}
def get_bitfilter(part, tile):
""" Returns bitfilter for specified part and tile.
Either returns bitfilter to specified part and tile type, or the default
bitfilter, which includes all bits.
"""
key = (part, tile)
if key in BITFILTERS:
return BITFILTERS[key].filter
else:
return None