OpenCores
URL https://opencores.org/ocsvn/ezidebug/ezidebug/trunk

Subversion Repositories ezidebug

[/] [ezidebug/] [trunk/] [EziDebug_src/] [ezidebugscanchain.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 EziDebug
#ifndef EZIDEBUGSCANCHAIN_H
2
#define EZIDEBUGSCANCHAIN_H
3
 
4
#include <QMap>
5
#include <QStringList>
6
#include <ezidebugprj.h>
7
class QString ;
8
//class EziDebugTemplateFile ;
9
class EziDebugScanChain
10
{
11
public:
12
    struct RegListStructure
13
    {
14
        char* m_pnamehiberarchy ;
15
        char* m_pregName ;
16
        char* m_pclock ;
17
        unsigned int m_nbitwidth ;
18
        unsigned int m_nstartbit ;
19
        unsigned int m_nendbit   ;
20
    };
21
 
22
    EziDebugScanChain(const QString& chainname);
23
    ~EziDebugScanChain();
24
 
25
    const QString &getChainName(void) const;
26
    //QString getFirstInstanceItemName() const;
27
 
28
    const QMap<QString,QStringList> &getLineCode(void) const;
29
    const QMap<QString,QStringList> &getBlockCode(void) const;
30
 
31
    const QMap<QString,QVector<QStringList> >& getRegChain(void) const;
32
    int getChildChainNum(QString clock);
33
    const QStringList &getSyscoreOutputPortList(void);
34
    void  addToSyscoreOutputPortList(const QString& portlist);
35
 
36
    const QString &getscaningPortClock(void) const;
37
    const QString &getSlowClock(void) const;
38
    const QStringList &getInstanceItemList(void) const;
39
    int   traverseAllInstanceNode(EziDebugInstanceTreeItem *item);
40
 
41
    int   traverseChainAllReg(EziDebugInstanceTreeItem *item);
42
    int   compareCodeSequence(const QMap<QString,int> &ilinesearchposMap ,const QMap<QString,int> &iblocksearchposMap) ;
43
 
44
 
45
    void  setChainRegCount(const QString &clock ,int count);
46
    int   getChainRegCount(QString clock);
47
 
48
    const QString &getCfgFileName(void) const;
49
    //EziDebugTemplateFile * getTestBenchFile() const;
50
 
51
 
52
    void addToLineCodeMap(const QString &modulename, const QStringList &code);
53
    void addToBlockCodeMap(const QString &modulename, const QStringList &code);
54
 
55
    void replaceLineCodeMap(const QString &modulename, const QStringList &code);
56
    void replaceBlockCodeMap(const QString &modulename, const QStringList &code);
57
 
58
    void addToClockSetMap(EziDebugInstanceTreeItem *item);
59
    QString getChainClock(QString instancename,QString clock);
60
 
61
 
62
    void addToInstanceItemList(QString modulename ,QString instancename);
63
    void removeItemListDuplicates(void);
64
    void addToScanedFileList(const QString & filename);
65
    const QStringList& getScanedFileList(void) const ;
66
    void removeScanedFileListDuplicate(void) ;
67
 
68
    void setChildChainNum(QString clock ,int num);
69
 
70
    void setHeadTreeItem(EziDebugInstanceTreeItem *item) ;
71
    EziDebugInstanceTreeItem * getHeadTreeItem(void);
72
 
73
    void backupFileList(void) ;
74
    const QStringList &getBackupFileList(void) const;
75
    void clearupFileList(void) ;
76
    void resumeFileList(void) ;
77
 
78
    void addToRegChain(QString iclock ,int chainNum ,const QStringList& reglist);
79
    //int codeNum(QString modulename);
80
 
81
    //void createCfgFile(EziDebugPrj::TOOL tool);
82
 
83
    friend  int EziDebugPrj::domParseScanChainInfoElement(const QDomElement &element,char readflag) ;
84
    friend  int EziDebugPrj::domParseScanChainStructure(const QDomElement &element,char readflag, EziDebugScanChain *chain) ;
85
    friend  int EziDebugPrj::domParseReglistDescriptionElement(const QDomElement &element,char readflag, EziDebugScanChain *chain) ;
86
    friend  int EziDebugPrj::domParseCodeDescriptionElement(const QDomElement &element,char readflag, EziDebugScanChain *chain) ;
87
 
88
    friend  int EziDebugPrj::saveInfoToLogFile(QDomDocument &idoc, EziDebugPrj::LOG_FILE_INFO* loginfo) ;
89
 
90
    static const QString& getChainRegCore(void) ;
91
    static const QString& getChainToutCore(void) ;
92
    static const QString& getUserDir(void) ;
93
    static void  saveEziDebugAddedInfo(const QString &regcore,const QString &toutcore,const QString &dir) ;
94
 
95
    //friend  int EziDebugPrj::domParseReglistStructure(const QDomElement &element,char readflag, EziDebugScanChain *chain) ;
96
    //friend  int EziDebugPrj::domParseCodeStructure(const QDomElement &element,char readflag ,EziDebugScanChain * chain) ;
97
private:
98
    QMap<QString,int> m_nregCountMap ;
99
    QString m_iChainName ;
100
    QString m_iregCode ;
101
    QMultiMap<QString,QString> m_iuserDefineCoreMap ;
102
    QStringList m_iinstanceItemList ;
103
    QMap<QString,QStringList> m_icodeMap ;
104
    QMap<QString,QStringList> m_iblockCodeMap ;
105
    QMap<QString,QVector<QStringList> > m_iregChainStructure ;
106
    QString m_islowClock ;       // 用于产生  tout 信号的慢时钟
107
    QString m_iscaningPortClock ;   // 用于 扫描端口 的 时钟
108
    QString m_cfgFileName ;      // cdc or stp file
109
 
110
    QMap<QString,QStringList> m_iclockSetMap ;
111
    QStringList m_iscanedFileNameList ;        // 不用保存   用于 undo 操作
112
    QStringList m_isbackupscanedFileNameList ; // 备份扫描过的文件
113
    //EziDebugTemplateFile* m_ptestBechFile ;
114
    QMap<QString ,int>    m_nchildChainNumMap ;
115
    EziDebugInstanceTreeItem *m_pheadItem ;
116
    QStringList m_isysCoreOutputPortList ;
117
 
118
    static QString  m_iscanChainRegCore ;
119
    static QString  m_iscanChainIoCore ;
120
    static QString  m_iscanChainToutCore ;
121
    static QString  m_iuserDir ;
122
};
123
#endif // EZIDEBUGSCANCHAIN_H

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.