ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

Vivado 2017.1のTiming Summaryエラー

Vivado 2017.1のImplimantationのReport Timing SummaryでJavaのエラーが発生して、結果が表示されない不具合が発生した。

ベース環境はUbuntu 16.04LTSである。

#-------------------------------------------------------------------------------
# Vivado v2017.1 (64-bit)
# SW Build 1846317 on Fri Apr 14 18:54:47 MDT 2017
# IP Build 1846188 on Fri Apr 14 20:52:08 MDT 2017
# Current time: 4/24/17 8:28:34 AM JST
# Process ID: 2194
# OS: Linux
#
# This report is an indication that an internal application error occurred.
# This information is useful for debugging. Please open a case with Xilinx
# Technical Support with this file and a testcase attached.
#-------------------------------------------------------------------------------
java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.
    at com.google.protobuf.GeneratedMessage.getUnknownFields(GeneratedMessage.java:262)
    at ui.data.device.d.l.getSerializedSize(SourceFile:8409)
    at com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:67)
    at ui.data.device.H.axB(SourceFile:531)
    at ui.data.device.H.axy(SourceFile:454)
    at ui.data.device.H.axl(SourceFile:276)
    at ui.data.device.E.j(SourceFile:122)
    at ui.data.device.E.<init>(SourceFile:63)
    at ui.data.ah.lN(SourceFile:1347)
    at ui.data.ah.cP(SourceFile:217)
    at ui.data.ah.<init>(SourceFile:146)
    at ui.data.aW.<init>(SourceFile:38)
    at ui.project.a.edJ(SourceFile:252)
    at ui.project.a.init(SourceFile:236)
    at ui.project.r.a(SourceFile:1080)
    at ui.frmwork.a.k.d(SourceFile:41)
    at ui.frmwork.HTclEventBroker.i(SourceFile:259)
    at ui.frmwork.HTclEventBroker.fireTclEvent(SourceFile:330)
    at ui.frmwork.designcmds.HTCDesignCommands_openRun(Native Method)
    at ui.a.t.b(SourceFile:230)
    at ui.views.O.n.K(SourceFile:221)
    at ui.b.c.bB.construct(SourceFile:763)
    at ui.frmwork.D.run(SourceFile:201)
    at java.lang.Thread.run(Thread.java:745)

Javaは削除している状態なのでVivado 2017.1付属のJavaを使用しているものと思われる。

ただ、Vivado 2017.1の環境変数を有効にした状態で次のようにjavaを検索しても何も見つからない。

$ which java
$ which javac
$ which jre

せめて、Timing Summaryは表示してくれないと合成後の結果がわからないので原因を探り始めた。

原因を探るキーワードは次の項目である。

java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.

どうも、protobubの不具合らしいWebページが多数引っかかる。

そこでVivado 2017.1のインストールフォルダを眺めて見ると・・・

$ find ./|grep java
<<<割愛>>>
./tps/lnx64/jre/bin/javaws
./tps/lnx64/jre/bin/java
<<<割愛>>>
./lib/classes/protobuf-java-3.1.0.jar
./lib/classes/protobuf-java-2.4.0a.jar

protobufがあるねぇ。

不具合はこれかね?

ひとまず、protobufをインストールしてみよう。

$ sudo sudo apt install protobuf-compiler
$ protoc --version
libprotoc 2.6.1

これではprotobuf-javaはインストールされないので本当は次のようにインストールする。

$ sudo apt install libprotobuf-java

これでも不具合は解消されない。

そこでここからは勘と当てずっぽうで不具合解消を試みる。

$ find /opt/Xilinx/Vivado/2017.1/|grep protobuf
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/libprotobuf.so.7
/opt/Xilinx/Vivado/2017.1/lib/lnx64.o/libprotobuf.so
/opt/Xilinx/Vivado/2017.1/lib/classes/protobuf-java-3.1.0.jar
/opt/Xilinx/Vivado/2017.1/lib/classes/protobuf-java-2.4.0a.jar

protobuf-java-3.1.0.jarなんてあるよ。

これじゃね?

試しにjarの拡張子を変更してみる。

sudo mv protobuf-java-3.1.0.jar protobuf-java-3.1.0.jar.tt

そして、ImplimentationからReport Timing Summaryを実行したら、サマリーが表示された。

結果が表示されたところでVivado 2016.4と比較したところ若干、Slackが良くなっている。

だが、何をインストールしたんだ?