スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Tools] Redmine+Backlogs

ソフトウェア開発には馴染みがあるけど、自分の仕事に
適用出来るかわからなかったので、とりあえず入れてみた。

2weekなりの短いスパンでの業務って実際、やっている気がするので。
(元々がアジャイル開発!?)

今回は、なんか信者(亡霊)がいるらしい... Redmineで。

やってみてる感想だと、今はスケジュールなく1日1日で仕事が変わるので、
GUIを楽しんでいる感が否めない。
もう少しスケジュールが決まると面白いのかもね。

かんばんは楽しい!!!

こんな記事も見つけた。
ちょっと分野がメカのハードウェアだけど。。。

スポンサーサイト

[Tools] GitBucket

去年ぐらいから会社でひっそりと「GitBucket」使ってます。
積極的に活用しているのは私含めて2人で、あとは cloneしてもらうだけだったり。

GitBucket の前に「GitLab」も
使ってみたのですが、最終的には gitbucket に落ち着いております。

ツールのそれぞれはこちらの記事がわかりやすいと重います。

どういったことで使っているか。

  1. Exampleソース置き場
  2. 担当ブロックのソース管理

担当ブロックのソース管理について

開発プロジェクト内において、自分が担当したブロックの設計/検証環境を管理してました。

  • 良かったポイント
・一人で使うだけでも管理が楽
  →ブランチきってプルリクしての管理だと後で追いやすい。
  →Redmineとも連結し、チケット管理。
  →Jenkinsで定期的に色々なものを実行。
・共同で作業するともっと楽
  →最新データの共有が楽
  →お互いの作業内容のチェックを楽に行える。(プルリクありがと!)
  • わかったこと
・ネットリストをプルリクすると、差分がデカすぎてGitBucketがやばい
・まだまだ 社内のGitユーザーが少ない。

悩み

こういったことが一部でしか流行らない。。。(今もメインは2人だし)
理想は会社でもしくはプロジェクト単位であると便利だと思うんだけどなかなか。。。

さて、がんばるぞい。

[Toos] TrekUVM

を見ていた際に TrekSoC もあったので、久しぶりにホームページにいったら、

TrekUVM

があった。
どうやら自動生成っぽいんだけど、結構面白そう!!!

これも簡単なブロックレベルで使えそうな気がするんだけどなー

[Tools] Perspec System Verifier

Cadenceがソフトウェア・ドリブンSoC検証の新製品「Perspec System Verifier - EDA EXPRESS」を発表

去年の12月に発表されたものですが、あらためて見かえして。

SoC検証用とあるけど、もう少し面白そうに使えそうかなと思ったので
自分のメモ代わりに。

C/C++のアルゴリズム作って高位合成とかやる場合に使えるんじゃないかと。
アルゴリズムのコードは渡されるけど、テストがイマイチ分からなかったり する場合があったりなかったり。

そういった場合に、そのようなツール使うとアルゴリズム作った段階で
どれだけ検証されてるかが分かるんじゃないかなー

ちょっとしたブロックレベルの検証から使えそうでは!?

と思ったやつでした。まる。

[GDB][Python][SystemC] GDB+Python拡張で SystemCのデータ型を表示させてみる。

とある某所での情報にて。
(やっぱりセミナーに参加することは良いことだ!)

参考:PythonGdbTutorial

参考:GDBでPython scriptを実行する

なんと! Pythonで色々出来るんですね!!!(・∀・)

ってことで、試してみました。
今回やってみたのは、「5.5. Python Pretty-Printer」です。

※データ型の値を表示するためには、予め SystemCのライブラリは
「Debug」にてコンパイルされていることが必要となります。

  • sc_main.cpp
  •  1|#include <systemc.h>
     2|
     3|int sc_main(int argc, char *argv[]) {
     4|  printf("Hello World!!!\n");
     5|
     6|  int        int_val;
     7|  sc_int<8>  m_int8;
     8|  sc_uint<8> m_uint8;
     9|
    10|  int_val = 255;
    11|  m_int8  = int_val;
    12|  m_uint8 = int_val;
    13|
    14|  std::cout << "int_val = " << int_val << std::endl;
    15|  std::cout << "m_int8  = " << m_int8  << std::endl;
    16|  std::cout << "m_uint8 = " << m_uint8 << std::endl;
    17|  
    18|  return 0;
    19|}

GDB+Python無し

$> gdb main
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/kocha/work/tools/gdb/test/main...done.
(gdb) b 18
Breakpoint 1 at 0x8049612: file sc_main.cpp, line 18.
(gdb) r
Starting program: /home/kocha/work/tools/gdb/test/main 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".

             SystemC 2.3.0-ASI --- Nov 26 2013 06:31:13
        Copyright (c) 1996-2012 by all Contributors,
        ALL RIGHTS RESERVED

Hello World!!!
int_val = 255
m_int8  = -1
m_uint8 = 255

Breakpoint 1, sc_main (argc=1, argv=0x8065220) at sc_main.cpp:18
18    return 0;
(gdb) p m_int8
$1 = {<sc_dt::sc_int_base> = {<sc_dt::sc_value_base> = {_vptr.sc_value_base = 0x804a048}, 
    m_val = -1, m_len = 8, m_ulen = 56}, }
(gdb) p m_uint8
$2 = {<sc_dt::sc_uint_base> = {<sc_dt::sc_value_base> = {_vptr.sc_value_base = 0x804a008}, 
    m_val = 255, m_len = 8, m_ulen = 56}, }

っとこんな感じで表示されるのですが、いかんせん見づらいですね。
知っている人は「(gdb) p m_int8.m_val」と入力していたでしょう。

GDB+Pythonあり

(gdb) python execfile("./sc_pretty_printer.py")
(gdb) p m_uint8
$3 = 255
(gdb) p m_int8
$4 = -1
(gdb) 

ちょっとしたコードを書くだけで簡単に、
このようなことが出来てしまいます。

  • sc_pretty_printer.py
  • import re
    import gdb
    
    class SCINTPrinter:
      def __init__(self, val):
        self.val = val
    
      def to_string (self):
        return self.val['m_val']
    
      def display_hint(self):
        return 'string'
    
    def lookup_type (val):
      scint_regex = re.compile("sc_dt::sc_(int|uint)<[0-9]+>")
      if scint_regex.match(str(val.type)) :
        return SCINTPrinter(val)
      return None
    
    gdb.pretty_printers.append (lookup_type)
    

今回、データ型の表示だけですが、もっと色々出来ますので
お楽しみに!

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。