忍者ブログ

EDA Blog

Verilog、SystemVerilog、SystemCなど、ハードウェア記述言語についてのブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SPARC

OpenSPARCに興味を持っているので、The SPARC Architecutre Version 9を注文して
しまいました。
この本でSPARCのアセンブラを学んだら、OpenSPARCで実行してみようと思います。

全然ブログは更新していませんが、パタヘネは3章まで読み終わりました。
演習問題は2章で止まってしまっていますが。
アナログ電子回路もあわせて勉強しているので、ゆっくりと進んでいます。

拍手[0回]

PR

『なっとくする電子回路』読了

パタヘネを勉強する宣言をしておきながら、『なっとくする電子回路』を読んでアナログ
電子回路の復習をしていました。
Amazonでもおすすめされていましたが、確かに分かりやすいです。
同じ著者の『アナログ電子回路』を大学時代に使っていたときはちんぷんかんぷんで
したが、ようやくトランジスタでの増幅回路が分かってきた気がします。
少しずつ『アナログ電子回路』のほうも進めて、アナログ電子回路についての理解を
深めたいと思います。

パタヘネのほうは、ブログでは全然更新していませんが、2章の演習問題に入っています。
SPIMをインストールして、Consoleから文字が出力できてちょっと感動していました。
こちらは後日記事を書こうと思います。

拍手[0回]

ImpulseC/CoDeveloperを使ってみる (7)

『【実践】C言語による組込みプログラミングスタートブック』の続きを読んでいます。
6章の24時間時計のCソースはザイリンクス用のオプションをつけないと合成できないそうで、
Cyclone Iiスターターキットでは動かすのに手直しが必要そうなので、読むだけにしています。

興味のある部分は、186ページに書かれている「どのようなメカニズムでCのソースからハード
ウェアに合成しているか」です。
他の動作合成ツールはどうか分かりませんが、CoDevelopeではBlock化Stage化という
2つの概念が大切になります。

Block化とは、Cのソースを制御文と制御文の間で分割することです。
C言語のソースをパースし、制御文ごとに最適化単位に設定しています。
Stage化とはBlock化で決めた最適化単位を最小のクロックで処理できるように最適化する
ことです。
1クロックでの処理対象がStageということになります。

動作合成での最適化の手順は、CoDeveloperのヘルプにでも書いてあるんでしょうか?
とても興味があるところなので、この本の6章を読み終えたら探してみようと思います。

拍手[0回]

パタヘネ (2)

昨日夜寝る前と、今日の飲みの帰りの電車で上巻の56ページまで読みました。
ちょうど設計原則の4のところまでです。
練習問題はまだやっていません。

第1章の練習問題は、集積回路のコストについての問題(1.51、1.59~1.64)を解いてみようと
思います。

拍手[0回]

ImpulseC/CoDeveloperを使ってみる (6)

ImpulseC/CoDeveloperのロード機能を追加して動作合成した結果をQuartus IIでコンパイル
していたら、ラッチが生成されているようです。
Warning (10631): VHDL Process Statement warning at
Count_comp.vhd(112): inferring latch(es) for signal or variable "nextState",
which holds its previous value in one or more paths through the process
問題になっているソースCount_comp.vhdを見て、nextStateのprocess文を見てみたが、
動作合成で生成されたVHDLコードは見てもよく分かりません・・・。
Quartus IIでDesign Assistantを実行してみたのですが、ラッチが生成される記述がある
ようなワーニングは出ないので、今のところ原因は謎です。

HDLでもラッチを生成させないような記述方法がありましたが、動作合成用のC言語でも
同じような注意が必要になるのかもしれません。

拍手[0回]

パタヘネ

なつたんさんのブログのこの記事に影響されて、パタヘネを勉強しなおしてみたいと
思います。

5年ほど前に、ARM920Tを使ったASICの開発で初めてキャッシュとMMUを扱うことに
なり、パタヘネを読んで勉強して以来です。そのときは練習問題などほとんど解きませ
んでしたが、今回は練習問題もできるだけ解くようにしようと思います。 CoDeveloper
の40日限定ライセンスである程度大規模な回路が動作合成できれば、 例題を
ImpulseCで記述して、動作合成できるかもしれません。

洋書を買った記憶があるのですが、見つからないので第3版の邦訳を使って 進める
予定です。

拍手[0回]

ImpulseC/CoDeveloperを使ってみる (5)

今日も『【実践】C言語による組込みプログラミングスタートブック』を続行中です。
C言語の記述でのクロックの分周と、アップダウンカウンタへの変更まで行いました。
明日5章の残り(ロードつきカウンタ、ロードつき10進アップダウンカウンタ)を確認し、
来週24時間時計の動作を確認すれば一通りこの本は終了です。

ところで、ImpulseCの記述では、シミュレーション用の記述と動作合成用の記述を
分けるのにIMPULESE_C_SYNTHESISというマクロを使用しています。
たとえば、
    #ifndef IMPULSE_C_SYNTHESIS
        // シミュレーション用の記述  --- (1)
    #else
        // 動作合成用(ハードウェア)記述  --- (2)
    #endif
のようになります。

シミュレーションでは(1)の記述を使用して機能確認を行い、動作合成をしてHDLに
するときには(2)を使うのですが、(1)と(2)が等価であることはどうやって確認して
いるのでしょうか?

HDLで設計する場合は、シミュレーションと論理合成とで同じHDLを使用しますし、
Formal Verificationを使用してRTLとゲートレベルの等価性もチェックできます。
動作合成を行うときの等価性チェックをどのように行っているのか、気になります。

拍手[0回]

ImpulseC/CoDeveloperを使ってみる (4)

『【実践】C言語による組込みプログラミングスタートブック』の続きで、今日は7セグ
LEDにカウンタ値を出力させるサンプルを動作合成し、Cyclone IIスターターキットで動作
確認しました。

本の内容はXilinxのボードにあわせたものですので、Cyclone IIスターターキットの7セグ
LED仕様にあわせてC言語のソースを変更する必要がありましたが、他は特に問題なく
動作しました。
7セグLEDですから当然といえば当然です。

新入社員のとき、社内研修でVerilog-HDLから論理合成して7セグLEDを点灯させてい
ましたが、あれから8年経って、今は動作合成しています。
今の新人研修では、動作合成も行っているのでしょうか。

明日は第4章の最後の例を動作確認する予定です。

拍手[0回]

ImpulseC/CoDeveloperを使ってみる (3)

『【実践】C言語による組込みプログラミングスタートブック』の第4章のソースコードをCoDeveloperで動作合成したVHDLをCyclone IIスターターキットで動作させてみました。
適当にクロックを27MHzピンに、リセットをスイッチに割り当てて、LED出力を設定しただけですが。
この本ではISE用のプロジェクトファイルしかないので、後日Quartus II用のプロジェクトファイルをアップロードしようと思います。

ごくごく簡単な回路ですが、C言語で書いた回路が動作していると思うと不思議な感じがします。
引き続き、Cyclone IIスターターキットを併用して、ImpulseC/CoDeveloperを使っていこうと思います。

拍手[0回]

ImpulseC/CoDeveloper評価版

技術評論者から出ている『【実践】C言語による組込みプログラミングスタートブック』という本でImpulseC/CoDeveloperを解説しており、付属のCD-ROMにCoDeveloperの評価版が入っていました。
下記の制限がありますが、動作合成がどのようなものかを体験するには十分そうです。
  • 最大12の加減算器
  • 最大8の乗除算器
  • パイプラインは未サポート
  • 生成されるHDLは3000行まで
  • サポートする形式はGeneric、MicroBlaze、Xilinxデバイスのみ
  • サポートするHDLはVHDLのみ
<a href="http://www.altera.co.jp/products/devkits/altera/kit-cyc2-2C20N.html">Cyclone II スターターキット</a>を持っていて、VHDLよりもVerilog好きな私にはちょっと辛い内容ですが、まずはこの本でImpulseC/CoDevelopeを学習してみようと思います。

DesignWaveも、どうせならこの評価版をDVD-ROMに収録してくれればよかったのですが。
[実践] C言語による組込みプログラミングスタートブック
鳥海佳孝
技術評論社

このアイテムの詳細を見る< /br>

拍手[0回]

カレンダー

12 2025/01 02
S M T W T F S
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

フリーエリア

最新CM

[04/11 なつたん]

最新TB

プロフィール

HN:
aston_martin
性別:
非公開

ブログ内検索

カウンター

アクセス解析