【Verilog】プログラムで作る回路 Project1【VHDL】
1 :
名無しさん@お腹いっぱい。 :
03/12/25 14:35 ID:zojVWW+1 回路設計も、最近ではプログラミングで行うようになってきました。 実際に回路を作ってみると、トラブル回避にはちょっとしたノウハウやテクニックが必要なことが多く、 資料すらなかなか入手困難です。 まあ、愚痴を言い合いながらプログラミングスキルをアップしていきましょう! FPGA,CPLD関連のサイトは2-1000あたり。
プログラミングとか言っている時点で何か違う
せめて言語設計とか言って欲しかった。 スレタイでスレを立てた奴のスキルが解るのがアレだが。
>>3 FPGAはフィールド”プログラマブル”ゲートアレイなので、プログラムでいいっしょ?
実装で苦労してるわけで。(w
プログラムで作るって辺りがなどうもね。(w プログラミングとはちと違うぞ。ところでHDLスレってここだけ?
でも、いいんじゃないのかな。 今は、HDL、C乱立してるし、プログラムで書くストアドロジック、回路で書くワイヤードロジック、 更には順序回路の布線論理でゲートレベルで書く書き方や、RTLレベル、更にはチップ入出力レベルのビヘイビアレベルで書く書き方があるし。 いろいろ書き方があるから。
>>5 SystemCだと
「プログラムで作る」
って感じですな。
デジタル設計の仕事を始めた30年前に回路記述言語があったら、今ごろこんな苦労はしないだろうなあ・・・とほほ。
おやぢの頭には残らないんだ。文法とか、制限事項とか。
>>7 でも、HDLでもそうだけど、言語設計段階のシュミレーション結果と合成段階のシュミレーション結果が違って苦労する点もあるみたいだよ。
更に、Cだと書き方によって、全然違う回路ができるみたいだし・・・。
実際どうかは知らん。
でも、Cで書いてもRTL迄かみ砕いた書き方をするとそれなりに思った回路を 生成させることは出来るのではないかと思う。 但しそれにどの程度の意味があるかは解らんが。
CをHDLだと思っちゃいけないんだよ。VerilogやVHDLとは まったく別物だと思わないとあの便利さは評価できないと思う。 あれは紛れもなくプログラミング言語だね。
そもそもスレッドが分かれてるんだが?
>>10 CをHDLだと思ってはいけないのではなくて、必要ならHDLとして使うCを
考えるはず。
VHDLもCもたいして変わらないよ。HDLとしてのVHDL, Verilogとプログラ
ミング言語としてのCしか考えられないだけでしょ。現実的に確保でき
るツールとか人材などを考慮すると。
言語仕様は関係ない。
>VHDLもCもたいして変わらないよ 漏れ的にはぜんぜん別世界だった。 HDLとして使えるCっていうアプローチじゃ、単にVerilogなりVHDL の予約語をC互換とかC風味にするっていう程度のことになってし まってぜんぜん美味しくない。(インターフェースの9月号なんて 典型的って感じ)
>> HDLとして使えるCっていうアプローチじゃ(ry だから言語の違いより使い方の違いだよね。 どこからCの話になったんだ?
単にmodelsimの代わりにgccが使えていいよ以外に意味あるの? > systemC
GCCでSimできんのか?(w
漏れはHandel-Cしか知らないけど、C/C++の気分で書いて、
そのまんま動くところは美味。
>>16 gccでシミュレーションするつーか、C/C++でテストベンチが書ける
という感じかな?ベンチ部分はネイティブコードで走ってくれるし、
ファイル入出力とかWinのAPIも叩けるから使いようによっちゃ
結構便利かも。
>>15 シミュレーションが速い、ソフトとの同時設計・検証とからしい。
SystemCはC++のクラスライブラリの形になっているから、C++コンパイラで
実行可能だと聞いたが。
>>17 結局仕事に使うとなると、FPGAなりに回路を実装することになるんだけど
コンパイルエラーの確認程度の意味が無いなら現実的にGCCが使えるとは
言い難いな。
>>19 知りもしないで何を偉そうに。
ModelSim 5.8 のPC番以外はSystemCを使うがすべてgccベースで動くんだよ。
少なくともシミュレータレベルは所詮プログラムなんだからC++処理系を
利用しようとするのは当然だ。
論理合成はそうは問屋がおろさないけどね。
>>20 GCCだけあっても役に立たんと言ってるんだよ
けんか腰で書くならレスくれるな
>>17 ステートマシンの部分がC++で書けると楽っぽい気がしますね。Verilogだと結構制限が厳しかったりしますんで。
>>20 俺みたいな貧乏人はMXEIIの5.7c Starterまでしか使えないんだよ。金出してレジストしてくれというメッセージがうるさいけど、金がないんだからショウガナイ。
(うわーん)
でもプログラムで回路ができるわけじゃないんだけどな。 ネットリスト+タイミング記述で回路ができるのがHDL
>>24 FPGAなんかはRTL書けば回路になるじゃん。ネットリストなんか書かないよ。
ってか、ネットリストはいいけど、「タイミング記述」ってなによ? SDFを書けば回路になるのか? 検証と記述をいっしょにしてんのかな。
27 :
名無しさん@お腹いっぱい。 :04/01/09 23:50 ID:aQXIjZPE
28 :
名無しさん@お腹いっぱい。 :04/01/10 00:08 ID:a+hCOgHI
今から回路設計を初めてやる人っていきなりHDLからやるのかな? どう考えても最初は回路図で設計して、慣れてからHDLのほうがよさそうだが。
30 :
26 :04/01/10 00:33 ID:Hw5nSq6C
>>27 ん? SDFと書いたんだが。
なんでテストベンチとかじゃなくて「タイミング記述」なのかが分からんのよ。
回路作るのに必要なもの、って意味ならHDLとテストベンチが必須でしょうに。
そこそこの経験あればタイミングなしでFPGA程度ならできちゃうよ。
>>28 FPGA程度ならHDLだけで充分。まさにプログラミングでいいと思う。
論理さえ保証できればいいわけだし。
>>30 > 論理さえ保証できればいいわけだし。
そんな訳はない。論理合成のエンジンが優秀になっただけで
書き方が悪いと全然速度が出ません。
>>28 某大手さんに出向いたとき、今の人は回路図で説明
されてもわからないんで、HDLで説明してくれと言われた。
>>32 某大手さんにVerilogで納入したら、(中堅どこの連中に)回路図付けてくれと言われた。
未だに、ISEでschematicオンリーで作ってるんだから・・・
HDL見てプログラムと見てしまう奴はプロとしてはやっていけないな。
>>34 回路をガチガチにチューンする事がない職場が殆どだと思うよ。
だから手軽に回路を書いて、クリティカルパスをクリアしてるからOK
としてるところが多いのかと。
これだとHDLの便利さと手軽さのみの恩恵を受けて回路など不要と
言いたくもなるだろう。
>>34 プログラムとしてみていますが、給料貰っています。
あなたのいいたいことはなんとなく分かるのですが、
あなたは「プログラム」に詳しくないのでは?
どっちにしろ、物事は視点によって変わって見えるわけで追求する点が 解れば落としどころも変わって来るもんだろう。 もう少し冷静になれよお互い。
プログラムとしてしか見てない奴が書いて投げ出したソースを、 バグを取った上にデータシート見ながらサイズとスピードを満足させるのが最近の俺の仕事。 やってて腹が立つし、残業手当も出ないので、あまり穏やかな気持ちでは無い。
>>36 の言いたいことはだいたいわかるのですが、
念のため確認すると「オレは給料泥棒だ」ってことですよね?
人間オプティマイザにされているんじゃ、そりゃ面白くなかろうな。
>>39 求められる品質によってそれでも良い場合がある。
それだけのことだよ。
餅つけ
>>38 そいつが間抜けなだけ。
サイズとスピードを満足させ、バグのないプログラムを作れば問題ない
だろうが。
プログラマもアウトプットが要求を満たすことを目標に作ってるんだよ。
なんかプログラミングという作業に幻想を抱いていないか?
>>44 蒸し返すなよ。
議論がしたいならそれなりのやり方もあるだろ。
回路とプログラムは異質なもの もしプログラムで解決できる問題なら組込みCPUを使えばいいだけの話 それじゃ遅い/電気食う/規模でかくなる等の問題があるから回路設計するんだろ そのような回路設計がいわゆるプログラムというもので表現できるわけがない RTL表現はプログラムのように見えるが、実はまったく異質なのだ
クロックを意識したRTL書かないと高速回路は難しい。 DCやPKSなどのツールだけでは限界がある。 わかっている人が書くRTLは、レイアウトのし易さが全然違う。
>>47 禿しく同意
漏れはFPGA使いなんだが、スペックめいっぱいの高速回路を
書くには結構センスが要る、
漏れはヘタレなので何度も組みなおさないとそこまで逝けぬ。
しかし下には下がいるもので、何度組みなおしてもスペック
満たせない奴の尻拭いが良く漏れに回ってくる。
>>47 「RTL」にすらなっていない記述が横行している所が問題なのでしょう。
>>50 この例なら
素直にCPU+GDC+αのシステムLSIを作ったほうが高速かつ安価になるだろ
なんでわざわざFPGA使う必要がある?
こんなのシステム学生実験や新人教育に使う以外の意味はないと断言する
>>51 俺は***本当に***こんなに簡単に実装できるなら、
全体的なコストを考えたらFPGAでやりたいとおもた。
ちょっと弄ってみたいと思ったが、試用版は論理合成できないのね・・・。
100マソくらいなら会社に買わせて見たいが・・・。
>>51 >そのような回路設計がいわゆるプログラムというもので
>表現”できるわけがない”
Cは、別スレッドがあったと思うが。
>>51 確かにこのサンプルに「実用性」はないけどね(ボールが画面上を
動いているのを見て何が楽しいんだか・・っていう意味で)
>素直にCPU+GDC+αのシステムLSIを作ったほうが高速かつ安価になるだろ
数が出ないなら、システムLSIを作るだけの金がペイしないと
思う。あと、ROM/RAMが要るのかな?
CPUが実行するプログラムはシミュレータで確認してから内蔵?
速度はどうだろ?この例だとボールの位置のアップデート(移動)
はワーストでも2クロックで終わるけども。CPUだとどうかな?
20命令くらいは必要?1命令1クロックとして、20クロック。
このFPGAが20MHzくらいで動いてるとすると、CPUは200MHz
で動かさないといけない計算か。
結構忙しいね。
>>55 そもそもダムヘッドをMPUでやらせようと言う話ではないでしょ?
FPGAが一個搭載された板と、ビデオ回路が載ったマイコンボードの
コストは大きく変わらないでしょう。
FPGAで十分処理可能な範囲であったとして、ビデオ回路が 載ったマイコンボードと価格が大差なくて、ワンチップですんで しかも速度がずっと速いならそれはそれで嬉しいんじゃない?
一般的には
>>50 の例で使われるようなFPGAはかなり高コストで
>>56 のいうことは明らかに間違い。CPU+ビデオ回路の方が安く済む。
コストを考えるとFPGAは、教材とか新アーキテクチャの試験ぐらいにしか使えない
>>58 んじゃーコスト計算してみてよ。
それと、製品にCPU積むかFPGAを積むか選択するのは単にコスト条件だけじゃない。ってことがわからんようでは
ダメだな。
あのサンプル回路では、CPUに軍配があがるのかもしれんが。
LEDを交互に点灯するという課題を与えられてもやっぱりCPU+LEDの方がいい。と主張するのかな?
>>58 間違い云々て言われてもな。(w
アプローチの仕方完成形に何を求めるかで答えは変わってくるから間違いも糞も無いよ。
えらく好戦的だがなんか悪いものでも食ったか?
>>49 ウチは「RTL???」なんて聞き返すような輩がゴロゴロしてます
「コンパイルが遅くなるから」という理由でquartusやmaxplusのタイミングアナライザを
OFFにしてる奴もゴロゴロしてます(外注もそうだな・・・)
ターゲットデバイスのデータシートなんてマジメに見やしません。
「セットアップ、ホールド、tpd、ハザード、同期回路」とか言っても通じません。
でも出荷します。で、戻ってくる。しばしば俺が直すことになる。
ウチだけじゃなくて外注のソースも酷いから、世の中こんなものなのかなと思ってきたけれど、
やっぱり辞めた方がいいのかな。。。
>>50 で使う程度のFPGAならそんなに高くないでしょ?
Xilinxのスパ2:XCS2S200(20万ゲート)の208ピンがDigi-Keyで
1個買いしても3千円位で買えるご時世なんだし、企業で
トレイ単位で買ったらもっと安いんじゃない?
20万ゲートもあったら、CPUも入っちゃうか(w
タイプミスだな XC2S200 だね。
>>61 そりゃ余りにもレベルが低すぎですな。
細かい数字の意味するところ、概念は回路から来る部分が多いので
回路を知らないと辛い部分はあるでしょう。
ただ、余りにも回路が大きくなると見れる部分とそうでない部分が出て
くるので確認の方法も難しいところ。
>>61 なんか自分を見ているようだ(涙)。
違うのは漏れは不良社員なので今居る会社の居心地がいいくらいか(キュウリョウガスイガナー
デザインウェブマガジンの何月号かにFPGA上にCPUをのっけた方が 安く済むっていう記事をみたことあるな。 昔に比べて、FPGAも低価格化、性能向上してるから、乗っけた方が安く済むかもな。 なんつったって、仕様変更に強いっていうのもコスト減につながるのでは?
67 :
名無しさん@お腹いっぱい。 :04/01/18 17:13 ID:RXxarl9o
age
>>66 CPUのコアだけ使うならそうだけど、
ふだん使ってるチップは、周辺やA/Dやメモリ込みのオールインワンだしなあ。
69 :
名無しさん@お腹いっぱい。 :04/01/19 12:08 ID:e1ItR7kW
>>68 つまり、使わないデバイスの分までお金をとられているってことだよなあ。
>>66 最近のCQ出版も、提灯記事というか、メーカーや代理店の人間が広告
宣伝を兼ねた紹介記事書くことが多くなってるから、自分で情報を
フィルタリングしないとな。
ルネサスのH8/Tinyあたりで、32〜64KBのフラッシュROM+8MBのRAM、その他
汎用I/OやらA/Dポートが全部内蔵で、量産単価500円以下だが、これと
同等機能をCPLD/FPGAでいくらで置き換えできる?
> 仕様変更に強いっていうのもコスト減につながるのでは?
普通、CPUのコアに対する仕様変更なんて入らないだろ?
それより、fpga.orgあたりから、仕様実績のないIPを引っ張ってきて
使ってみたはいいが、バグが取れなくていつまでたっても製品が出荷
できなくなるニョガン!
>>69 それは設計以前にデバイスの選定に問題がアル。それに、CPLD・FPGAに
したって、使ってないゲート分を値引きしてくれる訳じゃないしな。
>>59 > LEDを交互に点灯するという課題を与えられてもやっぱりCPU+LEDの方がいい。と主張するのかな?
部品点数、開発工数、製品コスト、仕様変更への対応の柔軟性などを全て考慮しても、
ワンチップCPUの方がはるかに合理的だと思うが?
PICやAVRならLEDを直接駆動できるし、リセット回路や発振回路内蔵も内蔵して
いる。8ピンSOPのCPUとチップ部品を組み合わせれば、44ピンのCPLD/FPGAパッケージ
に相当する基板サイズ上に全て実装できるだろう。実装費を除く部品原価は
1000個/ロットで300円くらいか?
だいたい、2個のLEDを交互に点滅させるくらいなら、CPUを使わずともマルチ
バイブレータでいいじゃん。これならTr×2個+R×4個+C×2個+LED×2個で
済む。点滅周期の変更は、CR時定数の変更にって対応。
CPLD/FPGAなら仕様変更に対応というが、例えば2個のLEDのうち、一方は
1秒ごとに点滅(0.5秒間点灯、0.5秒間消灯の繰り返し)し、他方は1時間毎
に1秒点灯(1秒点灯、59分59秒間消灯の繰り返し)なんて仕様に変更されて
対応できるか?CPLD/FPGAじゃ何ゲート必要だ?
点灯周期や点滅間隔を変更するのも、ワンチップCPUなら簡単だぞ。
何を必死になっているのかさっぱり理解できんな。 >なんて仕様に変更されて >対応できるか?CPLD/FPGAじゃ何ゲート必要だ? 0.1秒ごとのクロックで1時間でも、3万6千カウントだから、 15ビット程度だけどな。CPLDどころか、GAL22V10を数個 程度でできちゃうんじゃない? ちなみに、5万ゲートクラス(DesignWaveのオマケ程度) のFPGAで5ドルくらいだとか。
おっと、32768は超えてるから16ビットだな。失敬、失敬。
>>73 SRAM型FPGAは別にROMがいるから、I/OとROMを内蔵した1chipCPUには
コスト、実装面積ともに対抗できません
でも1chipCPU遅いし〜
普通はさ、目的を実現するための最適解を探すのが「技術者」の仕事でもあるんだよね。 近所のコンビに買い物に行くのに10tトラックやフェラーリーで行くのか、自転車でいいのか? どこかの人は何が何でもフェラーリーで行っちゃうわけだけど、徒歩であったり自転車という選択肢の方が楽な場合が多い。 TPOを考えないと、世間に取り残されちゃうよー。
>>73 > 0.1秒ごとのクロックで1時間でも、3万6千カウントだから、
> 15ビット程度だけどな。CPLDどころか、GAL22V10を数個
> 程度でできちゃうんじゃない?
実現できるかどうかを問題にしているのではない。回路全体の部品点数
とコストを問題にしている。それに、1個のGAL22V10よりPICやAVRの方が安い
んだが?
ディスクリート部品やワンチップCPUで組んだ場合200円掛かる回路を10個ほど集積できる
規模のFPGA/CPLDが回路あたり単価100円だったとしても、必要なのは1回路
分だけなので、FPGA/CPLDを使う方が割高。
GALにしろFPGA/CPLDにしろ、パワーオンリセット回路も、発振回路も入ってないし、
低消費電力版だと、コア電圧用とI/O用の2系統の電源も必要。
> ちなみに、5万ゲートクラス(DesignWaveのオマケ程度)
> のFPGAで5ドルくらいだとか。
それって10万個とか買った場合の話だろ?1000個ロットじゃ単価1000円も切れん
し、ロットでそんだけ使うなら、普通は専用カスタム起こした方が安く付く罠。
>>76 何を必死になっているのかさっぱり理解できんな。(ry
漏れもPIC,H8,SH,8051コアもんなんかいろいろ使うが、 必要に応じてFPGAも使ってるがな。 遅いって言うのがそんなに気に障ることか?良くわからんな。 「できるか、何ゲート必要だ」って言うから、あぁ、きっと たくさんゲートが必要になると思っているんだろうなとしか 解釈できんかったからゲート数にしたらたいしたことはないと 指摘したまでなんだけどな。
ついでに・・こいつはSMP(スイッチ・モード・ポンプ)っていう、 昇圧用の発振回路も内蔵してるから、確かLCとダイオード 位つける程度で、乾電池1本でも動作できたはず。 小さくまとめるには便利かもね。
>>80 > 「できるか、何ゲート必要だ」って言うから、あぁ、きっと
> たくさんゲートが必要になると思っているんだろうなとしか
> 解釈できんかったからゲート数にしたらたいしたことはないと
> 指摘したまでなんだけどな。
じゃ、もっと実用的な課題にしてやろうか?(w
一般的な時計のアプリケーションじゃ面白くないので、年、月、日、曜日、時、分、
秒、それぞれに1個づつ割り当てられた計7個のLEDを使って、現在の時刻を
LEDの点滅回数で表示する時計を実装してくれ。
各LEDとも、1回の点滅はON期間/OFF期間とも0.5秒とし、10の位と1の位との
間は1秒間のOFF期間を、再度繰り返し表示するまで3秒間のOFF期間を設ける
ものとする。また、カレンダーはうるう年表示に対応すること。時刻の設定機能
は省略する。
20ピンのPIC/AVRなら余裕で実装できる機能だが、CPLD/FPGAで実現する場合、
動作クロックとは別に外部から2Hz(周期0.5秒)に分周したクロックを供給する位の
ハンディをやってもよいぞ。(w
> こいつはリセットのCRはおろか、外付けのクリスタルすら必要ない。
繰り返すが、そんなのは最近のワンチップCPUでは当然で珍しくもなんともない。
ちなみにサイプレスは値段が高いし、国内代理店の対応もよろしくない。
なんか一人の空気読めない奴のおかげですっかりおかしな流れになってるなぁ。
>じゃ、もっと実用的な課題にしてやろうか?(w なにをムキになってるんだ?わからん奴だ。
>>84 彼は、77で俺が「普通はさ、目的を実現するための最適解を探すのが「技術者」の仕事でもあるんだよね。」
と書いているのに読めないみたいですね。だからムキになっちゃってるんだとおもあわれ。
FPGAで仕様を満たす回路ぐらいすぐに組めるレベルだけど、PIC使っても簡単にできるレベルだよね。
7セグを7個もダイナミック点灯させるとなるとPICあたりだと結構な量の外付け回路いるし。
まあ、GLHAoc4Lがどういうチップを選択して、どういう構成で作ろうとしているのかを聞きたいねえ。
回路設計のセンスがあるかないか、一発でわかる部分だから。
キミの考えている回路構成教えてくれる?>GLHAoc4L
昔書いたのをちょっとチェックしていたんだけど、 CycloneのM4KをVRAMにして簡単なゲーム位 入りそうだな。 DesignWaveのCycloneボードの回路図だけでも どっかに落ちてないかな?ちょっと書いてフィッティング してみたいんだけど。
>>86 > 7セグを7個もダイナミック点灯させるとなるとPICあたりだと結構な量の外付け回路いるし。
仕様書を最後まで読む能力もないヤシに、設計はできない。(w
あえて簡単な仕様にしたのは、価格の安いFPGA/CPLDでも実現可能なレベルに
抑えたから。
製品レベルなら表示制御なんてのは瑣末的問題で、2週間20プログラムタイマ付き
くらいでもワンチップCPU(場合によっては4bit)の領域だろ。当然、消費電力
なども問題になるしな。
>>86 なるほどね。
「こうなっちゃいけない」という見本みたいな人ってことですね。
出してきた課題とやらも笑っちゃうけどね。FPGAでビデオゲーム
だって作れるご時世なんだけどな。PICに入る程度のプログラム
だったらそっくりそのままHDLに落ちるんじゃないかな。
「LEDじゃなくてDVI使って表示してくれ」とか言われたら、
DV内蔵のマイコンを必死で探すんだろうか?
おっと、表現が変か。 HDLに落として、10万ゲートクラスのFPGAなら入っちゃうんじゃないかな? が正しいか。
>>90 入っても高コスト大電力になって意味ないじゃん
>>88 ああ、読み間違えたよ。確かにね。それが何か?
鬼の首とったかのように言うのは止めてくれる?
で、キミの考えている構成くらいかけるだろ?
揚げ足取るだけで、何を使うか位書けないのは何故?
動作クロックから時計クロックくらい作れますが何か?
ムキになてカコワルー
いや、この場合「入れられるかどうか」という感じの聞き方だからね。 実際の製品でこんなものだけのためにFPGA使ったら馬鹿だよ。 要するに、PIC並みのアルゴリズム処理がPICよりはるかに 高速にできることと、複数の処理を同時に並行してできることだろうね。 場合によってはこういうリアルタイム性が大事なこともあるから。
>>89 「TPO」「適材適所」という言葉をしらんお人がおるようで・・・
>>93 PICで動作するプログラムをそのまま論理合成にかけても、まともな回路は出てこない。
一本道のプログラムを自動的に並列化された回路に変換するなんて無理だ。
> 要するに、PIC並みのアルゴリズム処理がPICよりはるかに
> 高速にできることと、複数の処理を同時に並行してできることだろうね。
こういう結果を望むなら、人間様が設計しなおして、RTL形式で書く必要がある。
これが現実。
>>89 プッ!FPGAでビデオゲームって、昔のビデオゲームやキャラクタ端末には、マイコンやCRTC
なんて入ってなくて全部TTLのランダムロジックで組んであったのだが?
集積度が高いデバイス使って詰め込めば何でも入って当然だろう。
まぁ、このスレ読んでると日本の技術レベルの低下が手にとるように判るな。
>>93 アルゴリズムとかリアルタイムとか、横文字並べたいだけの房のようだな。リアルタイム処理
とリアルタイム性は同じのもか別物か?パラノイアとパラノイドの違いが判るか?
嫌な盛り上がり方をすんなよ。 いい加減空気読めよ、おめーら
>パラノイアとパラノイド 辞書引かなきゃ意味分からん。 >リアルタイム処理とリアルタイム性 名詞と形容詞?
>>95 アルゴリズムとプログラムのコードは別物では?
ステートマシンを作ることによってイベントドリブンじゃない、ループぶん回しプログラムも可能ですが、どうでしょう?
ステートマシンはRTLでは無いですが・・・(VHDLではSTATE MACHINEブロック)
>>95 あぁ、フルオートで並列化させようなんて無理でしょ?
ソース眺めて並列化できるところをちょっと指示する
程度でもいいんでは?
あと、たとえば
if (a==b) c=d+e;
でも、
aのロード、bとのコンペア、ジャンプ、dのロード、eとの加算、cへのストア
と、6命令として、FPGAが10MHz動作でも、CPUなら1命令1クロック
としても60MHz相当だし。意外とルーズにやってもハードって速いもん
なんだなと思った。
おっと、また書き忘れた。 FPGAのとき各変数はF/Fに割付けられるから、このif分全体が 1クロックで終わる。ってことでね。
>>99 純粋に質問なのだが ShqRbBEiがいうRTL記述の定義って何?
クロックエッジで遷移するように書かれたFSMならRTL記述だとオレは思っている
>>102 architecture RTL of hogehoge is ブロックに書くコード。
>>103 ワラタ
そんで冗談はさておき、実のところはどうなのよ?
>>104 データパス部分だけというと、微妙だなあ。
意識した巡回遷移させない部分はRTL。(やっぱり微妙だなあ)
世間一般的にはRTL=データパス+ステートマシンなんだよなあ。
組み合わせ回路部分もRTLだし。
ああ、すまんねー。
P.S.受けてくれてありがd
横レススマソ。 おれはRTLというのはFF(レジスタ)を人間が明示的に指定して、勝手に コンパイラなどに生成させないものをいうと思う。だめ? でもこれじゃあHandel-CもRTLになってしまうな。
>>106 レジスタトランスファと言うくらいだから、FFを想定した書き方なんだけど
クロック(信号の立ち上がり等)を中心にした同期回路ととっても問題無いかと。
VHDLで言うところの、プロセス分とイベントになる訳だが。
108 :
名無しさん@お腹いっぱい。 :04/01/19 23:08 ID:q4/yq0Ig
一寸さー教えてくれる? HDLで少し大きなプログラム作ろうと思って、ステートマシンを階層化したわけ。 main、 sub1 ,sub1-1, sub1-2,,, sub2, sub2-1 ,sub2-2 見たいに3階層。 そうすると、3階層になるとクロックがずれて、条件が成立するじゃない。 普通、ステートマシン作るのにFFつかって、その状態を1ッぱつラッチして 状態つくるでしょ。でないと配線伸びるから、うまく動作しないよね。 で、そうするとmainとsub1-1までに6クロックも開きが出るわけ。 たとえば画像処理の場合なんかで、Vsync、Hsyncなんかで ステート作った場合、データは6クロックバッファを通すして遅れを調整 せんといけんでしょう。 わっちゅうほどバッファがいるんで、悩んでます。 Cなんかで造ると絶対こんなんになるんじゃなかろうか? この考えただしい? 諸先輩がたご意見ください。
>>108 日本語がまったく意味不明だが、間違っていることは確信できる
>Cなんかで造ると絶対こんなんになるんじゃなかろうか? 仕様です。 でもって、貴方はすでにHDLシミュレーションの罠にはまってトリコろーる。 これも仕様です。誰でもなります。(w
111 :
108 :04/01/19 23:59 ID:q4/yq0Ig
>>109 > 日本語がまったく意味不明だが、間違っていることは確信できる
その確信を説明に具体化する作業を試みよ。
そうすると新しい光が見えてくる。 単なる信仰や確信では
暗黒のロジックの中をさまようだけである。何チャって。
>>110 階層化している例をあまり見ないのだが、単に便居不足だけだとは
おもうが、皆バカスカバッファつかってんだろな。きっと。
バッファをばかすか使う以外にもFFの多重化なんて手法もあるね。 まぁ配線遅延の問題はデバイスベンダーが提供するツールに おまかせしちゃうのがいいんだと思います。 HDLのレベルでは、そんなの気にせずに論理だけ書けばいいんでない?
113 :
108 :04/01/20 09:01 ID:isvNwWzq
>>112 > HDLのレベルでは、そんなの気にせずに論理だけ書けばいいんでない?
ん? 俺の頭のなかではそういう風には簡単にいかんので、
もう一寸きいてくれる?
たとえばだよ
if((MainState == "DataRead" ) &&
( Sub1State == "Post") &&
( Sub1sub1State == "RamMode") ){
CS_1420 = ON;
Databus[] = ADIN[];
}
みたいにしょうと思うだろ。へたら。
----------------------------- data
..----------------------------- mainState
....---------*******@@@@@@@@@@@@@ sub1State
......--***@@@@ sub1sub1State
それぞれ上の階層の条件を待ってステートを決めると、2clock
づつずれていくじゃない。でマッチを取るためには
ffffff----------------------------- data
ffff..----------------------------- mainState
ff....---------*******@@@@@@@@@@@@@ sub1State
......--***@@@@ sub1sub1State
こんなことして、FFをいれて時間調整するわけ。
これって結構面倒なんで、こういうこと意識せずに書けたら
最高なんだけど。
114 :
108 :04/01/20 09:13 ID:isvNwWzq
HDLって組み合わせロジックの判断はできるけど、 ステートの判断はできないんだよね。 時間軸を考慮してというかFFの挿入も考慮して論理合成できるツールってあるの?
>>108 有限ステートマシンが実際どのような回路で構成されるか知ってる?
ムーア型とかミーリー型とか教科書に載ってるから調べてみろ
いわゆるRTL記法で書けば、勝手にFFが挿入されたりしないよ
116 :
108 :04/01/20 10:51 ID:isvNwWzq
>>115 > いわゆるRTL記法で書けば、勝手にFFが挿入されたりしないよ
「 勝手にFFをいれて欲しい」というのが趣旨なのですが。
階層化ステートマシンと言う概念は、当然あるはずです。そしてそれを
実現しようとすると、前述のような問題が発生するのですが、それについての
言及をみたことがないので、不思議だなーとおもうているのです。
基本的には表記法(設計手法)を確立すれば、そういうロジックコンパイラを
つくることは難しくないはずです。
>>116 > 基本的には表記法(設計手法)を確立すれば、そういうロジックコンパイラを
> つくることは難しくないはずです。
/⌒ ⌒ヽ、
// ノノノヽヽ
〃σ;--◆-◆
|| ;ミ ω 彡 < だったら、藻前が作ってみろと言うことになる。
ヽ;ミミミ⌒彡
゙゙゙゙゙"" メンセキ メンセキ メンセキ
>>116 > 階層化ステートマシンと言う概念は、当然あるはずです
当然かどうかは疑問だが、108の脳内に存在するのは確からしい。
だが、現実世界では、広く知られたものでもないし、必要ともされてない。
正しくRTL記法を用いれば、階層化しなくても十分に複雑なステートマシンが
容易に書けるし、細かくブロック(エンティティ)に分割したって、勝手に
FFが挿入されてタイミングがずれていくなんてこともありえない。
> 基本的には表記法(設計手法)を確立すれば、そういうロジックコンパイラを
> つくることは難しくないはずです。
需要がないからね。108が自分でつくる以外にないだろうな。
というか、108が何かすごい誤解をしているだけの気がする。
素直にムーア型FSMで設計してRTL記法で書くべし。
119 :
名無しさん@お腹いっぱい。 :04/01/20 11:03 ID:zhCX/DIl
RTL記法ってふつーのRTLのこととちがうの? ふつーのRTLなら勝手にFFが挿入される例ってHDLの教科書見れば口がすっぱくなるぐらい注意点が載ってるけど それとは違うわけ?
>>119 論理合成すると勝手にFFが入るような書き方はRTLとは言えんだろ
てか、FFがどう生成されるかを明示的に書いて同期式回路を 生成させるのがRTLでしょ。 レジスタ、トランスファなんだからクロックによるデータ移動と とっても良いと思うが。
122 :
名無しさん@お腹いっぱい。 :04/01/20 11:44 ID:zhCX/DIl
>>120 >論理合成すると勝手にFFが入るような書き方はRTLとは言えんだろ
RTL記述であっても書いてる本人は意識しなくても前のクロックの状態を保持してるから論理合成ツールに勝手に
FFを挿入するわけだし、RTL記述であっても論理合成できない場合もあるよ。
記述レベルを正確に言うと
ビヘイビアレベル、RTL、ゲートレベル
であって、
>>120 が言うのは3つのうちの最後、ゲートオンリー+ライブラリセルの接続のみの記述のことかな?
でも、普通HDL使って回路書く場合、そういう書き方は面倒すぎてしないな。
単に、
>>122 がいうRTL記述の定義が世間一般のものとは違うだけと見た
意図どおりに論理合成できる書き方すべてをRTLと呼ぶ定義もあるよね
124 :
名無しさん@お腹いっぱい。 :04/01/20 11:54 ID:zhCX/DIl
>>123 それ今言おうとしてたんだけど。
シンセサイザブル == RTL記述
ってのは厳密には正しくないよ。言葉の定義だけの問題だけど。そう言ってる人も居るけど。正確じゃない。
AとBというステートマシンがあって、 BがAのステート値を直接参照して動くように したのが「階層化ステートマシン」で、 これをやると、Aのステート値が確定した次のクロック サイクルでしかBが動かないので、それを「ずれ」と 言ってるわけ?
126 :
108 :04/01/20 14:50 ID:1J0castu
>>125 > AとBというステートマシンがあって、
> BがAのステート値を直接参照して動くように
> したのが「階層化ステートマシン」で、
> これをやると、Aのステート値が確定した次のクロック
> サイクルでしかBが動かないので、それを「ずれ」と
> 言ってるわけ?
ですね。
>>126 ステートマシンとは、ある時点の状態によって次クロックの状態が決まる回路のこと
というか、ステートマシンに限らず、完全同期回路とは
すべてのFFの状態がクロックエッジでのみ変化できる回路のことだ。
そもそも、なぜ「階層化」をしたいの?
状態が遷移する条件を抽象化(隠蔽化?)したいってこと??
だったら aliasとかマクロを使ったらどう?
階層化ってのは記述の階層化、回路のモジュール化の意味だろうか。
129 :
名無しさん@お腹いっぱい。 :04/01/20 15:15 ID:zhCX/DIl
一発目データ処理の遅延は多分避けようがないがうまくパイプラインを作ってやれば
2発目以降ははじめの遅延以外発生させずに処理できることがある。
バッファっていうのはBが処理してる間Aの出力を保持して、そのときAは新たなデータを
受け付けて処理してるのかな?
>>108 は知らず知らずのうちにパイプラインと等価な回路を作ってるんじゃないの?
>>129 データパスじゃなくてステートマシンの話だからなぁ…
ステートマシンのパイプライン化って意味あるの?
単に
>>108 がステートマシンの設計のやり方を誤解してるだけだと思う
131 :
108 :04/01/20 16:51 ID:1J0castu
>>118 > 正しくRTL記法を用いれば、階層化しなくても十分に複雑なステートマシンが
> 容易に書けるし、細かくブロック(エンティティ)に分割したって、勝手に
その能力を持ってすれば、階層化すれば256倍楽に書ける。(はず)
>>127 > そもそも、なぜ「階層化」をしたいの?
> 状態が遷移する条件を抽象化(隠蔽化?)したいってこと??
> だったら aliasとかマクロを使ったらどう?
そういうことです。
そもそも、CPUのプログラムなんかは、クロックの遅れなんて意識
しないでしょ。だから複雑になっても楽にプログラムできる。
いまのHDLはサブプローセス(モジュール、マクロ、そのた)を通せば必ず
時間遅れ(ゲート遅延のことじゃないよ、かん違いしている人いるけど)
が出るのに、自己管理以外対処方法がないでしょ。
例えば漫画かいて、そのままインプットして、AのエッジとBのエッジを
アンドして一致を待ってるのに永久に一致しない。
「あれっ」てことあるでしょ。
そこで階層化(簡単化、単純化、抽象化、隠蔽化、省力化、そのた)したいけど、
モジュール(実体配置)による抽象化だと、そこらへんが問題になる。
なんか簡単な方法で簡単化する方法はないか? それがテーマなのです。
ピンアサイメントしてタイミングチャート(漫画?)書いたら、合成してくれるツールきぼんぬ。(をい
133 :
108 :04/01/20 16:57 ID:1J0castu
>>129 >
>>108 は知らず知らずのうちにパイプラインと等価な回路を作ってるんじゃないの?
そう何もしないパイプ6段構成ってこと。
ステートマシンを見やすくするのにそりゃー一寸もったいないだろかなってこと。
高速回路だとパイプをバコバコ使うでしょ。そして、ゲートを叩くタイミングが
こんがらがって解らなくなる。自己管理できないために。
そんなことがないためにも、まずこんがらない手法の確立が急がれるわけです。
134 :
108 :04/01/20 16:57 ID:1J0castu
>>132 > ピンアサイメントしてタイミングチャート(漫画?)書いたら、合成してくれるツールきぼんぬ。(をい
それはあるだろ。
>>132 MATLABのsimulinkのこと?
用途に寄るがそこそこ使えるらしいよ
スマンが
>>108 の言ってることを翻訳してくれる人って居ますか?
さっぱり解らんよ。
>>131 まず誤解を解くと
> いまのHDLはサブプローセス(モジュール、マクロ、そのた)を通せば必ず
> 時間遅れ(ゲート遅延のことじゃないよ、かん違いしている人いるけど)
> が出るのに、自己管理以外対処方法がないでしょ。
マクロやモジュール(エンティティ)では、遅延させないことも可能。
なんで必ず遅延(FF)が入るなんて勘違いしてるんだろう?
プロセスというかレジスタを生成するプロセス部なら
レジスタなんだから1クロック後に結果が反映される。
細かくマクロやモジュールに分けるのはいいことだ。
でも、なんでわざわざマクロやモジュールごとにFFを入れたがるのか
それが理解不能なところだ。
138 :
108 :04/01/20 17:26 ID:1J0castu
>>137 > マクロやモジュール(エンティティ)では、遅延させないことも可能。
ん?
> なんで必ず遅延(FF)が入るなんて勘違いしてるんだろう?
> プロセスというかレジスタを生成するプロセス部なら
> レジスタなんだから1クロック後に結果が反映される。
そうだがしかし、、、。
> 細かくマクロやモジュールに分けるのはいいことだ。
> でも、なんでわざわざマクロやモジュールごとにFFを入れたがるのか
> それが理解不能なところだ。
理論的にはできる。しかし、1クロック後に結果がでるような
回路にしたら、配線が広がって非常に動きにくいんでは?
なんか説明がわるいのかな?
パイプってなんでする?て聞いたらもっとわからなくなる?
139 :
108 :04/01/20 17:28 ID:1J0castu
>>135 >
>>132 > MATLABのsimulinkのこと?
> 用途に寄るがそこそこ使えるらしいよ
Muxplusについてなかった? 講習会でやった気がするが。
140 :
108 :04/01/20 17:29 ID:1J0castu
>>136 > スマンが
>>108 の言ってることを翻訳してくれる人って居ますか?
> さっぱり解らんよ。
すまんなー。おれからも頼むよ。
141 :
108 :04/01/20 17:33 ID:1J0castu
>>130 > データパスじゃなくてステートマシンの話だからなぁ…
データパスのゲートをコントロールするのがステートマチンだと、、、。
> ステートマシンのパイプライン化って意味あるの?
それはあまりいみがないでしょう。
>>138 > 理論的にはできる。しかし、1クロック後に結果がでるような
> 回路にしたら、配線が広がって非常に動きにくいんでは?
> なんか説明がわるいのかな?
>>112 で既出だが
> まぁ配線遅延の問題はデバイスベンダーが提供するツールに
> おまかせしちゃうのがいいんだと思います。
>
> HDLのレベルでは、そんなの気にせずに論理だけ書けばいいんでない?
ステートマシンなんて、すごく小さい回路なんだから遅延なんか気にしなくても問題ないよ。
もちろんデータ幅が多いデータパスについては考える必要がある。
そもそも論理設計ってのは、信号のタイミングチャートをまず書いて
それを実現する論理回路を書いてくものだ。
そこまで機械に自動的にやらせるのは無理。
その代わりファンアウトとか配線遅延の問題は機械任せにして良い。
>>140 普通にVHDLなりVerilogなりで回路を書いていてるんだよねぇ?
だから余計君の言ってることが謎に満ちて聞こえる。
144 :
142 :04/01/20 17:42 ID:c6JfNl/8
あ 念のために補足すると 配線遅延ってのは1クロック遅れることじゃなくて物理的な配線遅延のことだよ。 完全同期回路のクロック周波数の上限に影響する
>>139 うちはザイ リンクス猪木!という上司がいて或寺のmaxplusは縁がなくて知らんかったよ。
早速インスコしまつ。
146 :
108 :04/01/20 18:00 ID:1J0castu
>>142 > > HDLのレベルでは、そんなの気にせずに論理だけ書けばいいんでない?
> ステートマシンなんて、すごく小さい回路なんだから遅延なんか気にしなくても問題ないよ。
あのー。ステートマシンが小さくても、モジュール化しないってことは
配線の海のなかに埋没するってことになりません。
しょうもないステートマシンの頭でタイミングが間に合わないって事も当然あるでしょ。
おもいもかけないところに配線がつながったりしますよね。
いや、LCELLで切れ、バッファ(ノンクロックのね)で切れって話は当然です。
でもやっぱり海は深い。最後はFFで逃げるしか手はない。常套手段だとおもうよ。
でその常套手段から話を出発しているつもりなんだけど。
もひとつ補足
>>138 > 理論的にはできる。しかし、1クロック後に結果がでるような
> 回路にしたら、配線が広がって非常に動きにくいんでは?
> なんか説明がわるいのかな?
> パイプってなんでする?て聞いたらもっとわからなくなる?
これは恐がりすぎ。ばしばし1クロック後に結果がでるような回路にしろ。
どうせ、ステートマシンなんてどんないいかげんにつくっても
32bit+32bitの加算器よりずっと小さくて高速にまわる回路になるんだから
いちいち恐がるな。
>>146 ちなみに今時の論理合成ツールは、モジュールをフラットに展開してから処理する。
つまりモジュール分けはソース可読性を良くしたり、
シミュレーション時の信号名を階層化するのに使うだけで、
論理合成にはまったく関与しない。
149 :
108 :04/01/20 18:33 ID:1J0castu
>>142 > そもそも論理設計ってのは、信号のタイミングチャートをまず書いて
> それを実現する論理回路を書いてくものだ。
> そこまで機械に自動的にやらせるのは無理。
回路によって、多分意識のもち方として、データパスに重きを置く場合と、
論理回路に重きを置く場合があるんじゃないかな?
論理回路の場合はそれこそ、あなたの言うとおりだとおもう。
ところがすこし大きなシステムになると、データパスに重きを置いて、
ステートマシンでそのゲートを閉じたり開いたりするようなイメージで考えた方が、
考えやすい場合がある。そうすると、ステートマシンの設計が重要になってくる。
ステートマシンもかなり大きくなる。
抽象的レベルで考えた場合、動作は簡単なのに、実際には1、2
クロックの時間ズレの調整がすごく煩雑になってくる。簡単というのは
ストーリーに沿って流れているので簡単なのであって、実現しようとすると
細かいタイミングで難しい。 そういう経験をしたので、みんなはどうしてるのかな?
ておもうのです。
>>147 > これは恐がりすぎ。ばしばし1クロック後に結果がでるような回路にしろ。
> どうせ、ステートマシンなんてどんないいかげんにつくっても
> 32bit+32bitの加算器よりずっと小さくて高速にまわる回路になるんだから
> いちいち恐がるな。
慧眼。なるほど。
150 :
108 :04/01/20 18:39 ID:1J0castu
>>148 > 論理合成にはまったく関与しない。
そうだね。 だけど、自分が使うモジュールはFFがたいてい入っているなー。
>>149 > ところがすこし大きなシステムになると、データパスに重きを置いて、
> ステートマシンでそのゲートを閉じたり開いたりするようなイメージで考えた方が、
> 考えやすい場合がある。そうすると、ステートマシンの設計が重要になってくる。
> ステートマシンもかなり大きくなる。
だから全然でかくないんだってば! 結局ここの感覚の違いなのかなぁ?
確かに、ステートマシンってHDLのソースコードでは結構な行数を使うんだけど
合成される回路は非常に小さいものだ。
逆に std_logic_vetctor(31 downto 0)型のA B Cについて
A <= B + C
って一行さらって書いたコードの方が、行数は少なくても回路はえらくでかくなる。
A <= B * C なんて書いたらどうなることやら…
152 :
108 :04/01/20 18:51 ID:1J0castu
例えば1clock 10nsec 加算に9.98nsecそして、その結果をステートマシンに 反映しなければならない。 ん? そしてさらに、、、 やっぱり現実的には色々あるから、1clockでやるのは難しかったりする。
>>152 それは1clockでは難しいね
加算するデータパスはパイプラインにしてあるんでしょ?
そしてステートマシンは、データパスパイプラインの
任意のステージから信号ひっぱってきて、次の状態を決めれば
いいってことだよね。
つまり、ステートマシン自体はパイプラインにする必要はないでしょ?
ステートマシンの階層化なんて謎の概念も出てくる余地ないでしょ?
154 :
108 :04/01/20 19:26 ID:1J0castu
>>153 しごく尤もなご意見です。不味い例を出してしまったかなと思ったところです。
私も仕事を引き受けるときは、あなたのように、常に歯切れ良くしゃべるのですが、
月末になるとど坪に嵌って、歯切れがわるくなります。その原因を解決するのが
ステートマシンの階層化だと思うのですが、そもそも階層化するからそういう状況に
なるのだといわれると今は返す言葉がありません。
まいりました。ぺこり。再度熟考してみます。
155 :
名無しさん@お腹いっぱい。 :04/01/20 21:25 ID:kyOyevsY
或寺や材リンクスだけじゃなくて、ラティスや、ActelのPLD使っている、谷津はいませんか??
156 :
名無しさん@お腹いっぱい。 :04/01/21 01:07 ID:6xQgjGpM
状態図を階層化して考えるのは普通だと思う。 自分なら次のようにRTL化する。 たとえば main状態が{A,B,C}の3状態で、 A/B状態はそれぞれsub状態{i,j,k}/{l,m}を持つとしてVerilogで input condition;// 遷移条件 parameter A = 0, B = 1, C = 2; parameter i = 0, j = 1, k = 2; parameter l = 0, m = 1; function [1:0] main_next; // main状態遷移関数(AかBかCを返す) function [1:0] Asub_next; // Asub状態遷移関数(iかjかkを返す) function [1:0] Bsub_next; // Bsub状態遷移関数(lかmを返す) reg [1:0] main_state, main_next; reg [1:0] sub_state, sub_next; always @(posedge clk) main_state <= main_next; always @(posedge clk) sub_state <= sub_next; always @(*) case (main_next) A: sub_state = Asub_func(sub_state, condition); B: sub_state = Bsub_func(sub_state, condition); C: sub_state = 0; endcase always @(*) main_next = main_func(main_state, condition);
always @(*) ってどういう意味?
いつも@(*)
159 :
156 :04/01/21 03:59 ID:6xQgjGpM
>>157 間違えた @(*) じゃなくて @* で。
Verilog2001のセンシティビティリストの省略です。
実際の回路で使ったことはないのさ〜
>>156 よくわからないが
A: sub_next = Asub_func(sub_state, condition);
B: sub_next = Bsub_func(sub_state, condition);
C: sub_next = 0;
のtypo?
状態遷移の条件をわかりやすく記述するために
マクロや関数を使うのはいいことだよね
108の言ってる「階層化」は、それとは違う何か別のモノを指すっぽいけど…
>
>>125 >> AとBというステートマシンがあって、
>> BがAのステート値を直接参照して動くように
>> したのが「階層化ステートマシン」で、
>> これをやると、Aのステート値が確定した次のクロック
>> サイクルでしかBが動かないので、それを「ずれ」と
>> 言ってるわけ?
>ですね。
と言っているんだよね。
漏れはどうもBがAのステート値を直接参照するっていうのが
気味悪くて嫌なんで、結局こういうときは別信号こしらえてるな。
(単なる感覚の問題なんだろうけど)
C++でいうと、ステート値なんていうのはそのステートマシン
内部で閉じていて欲しいprivateデータだ、勝手に覗き見するな
って感じで。
データもみんな受け渡しするように書いてるから、結局コマンド
とデータをセットで「ホイッ」と投げるような書き方だな。
・・・というのじゃ答えになってないのかな?
いや、なんか遅れが出て、データのラッチタイミングが ずれるから、そこでディレイ用のF/Fが・・とかいう 話みたいだったから、 「データとコマンドをいっしょにして投げるように習慣づければ いいんじゃない?」っていうことなんだけども。 ぜんぜんはずしていたらゴメン。
> なんか遅れが出て、データのラッチタイミングがずれるから、そこでディレイ用のF/Fが・・・ なんて話を聞くと本当にこの方設計しているのかしら?と思いたくなる。
>>164 スレタイとか
>>1 が やばいから、同類を引き寄せるんだろうね
そもそもHDLはプログラミング言語じゃなくて、ハードウェア記述言語だし
ソフトウェアのプログラム手法では、マトモな回路を合成できない
>>165 ま、HDL系とC系は今後分けた方が良いかもね。
もう何がなんだか。(w
C系では回路がわかってなくてもまともな回路になるのか? プログラムのCでもまともにアセンブラを書けない奴のソースははまともな実行コードにはならないが?
>>167 それは仰る通り。
ただ、このスレでCとHDLをごちゃ混ぜにして進行することに無理がありそうな
気がしてるだけだよ。
変なのをHDLスレに残せって言ってる?
170 :
名無しさん@お腹いっぱい。 :04/01/21 23:09 ID:WT0oMe4p
PWB CAD は自動配線を競わなくなったけど。 シンセツールはソフト屋でもSystemC使ってまともな回路が合成できるまでがんばるのかな? それよりVerilogの文法や書式をもっとCに近づけてくれた方が個人的にはうれしいんだけどな。 begin end が面倒だし、`が見にくい。それ以外はあんまり不満がない。
>>170 > シンセツールはソフト屋でもSystemC使ってまともな回路が合成できるまでがんばるのかな?
それはCOBOLerにまともなJavaアプリが作れるよう、コンパイラが頑張るようなもの
原理的に不可能でしょ
172 :
名無しさん@お腹いっぱい。 :04/01/22 05:02 ID:48TiayCH
Javaなんて誰でもかけるよ。優秀なCOBOlerなら問題なく書けるでしょ。
優秀だったら、単にCOBOLも書ける/書いた経験があるってだけで 他の分野もこなせる普通の技術者だ。COBOLerと呼ばれることはない。
>>173 Java書きはJavaerというのか?
CはCer?C++er? Pascaler?Assemblerer?COBOLerってなに?
所でHDLで回路を記述する場合、論理合成後の結果を予め想定した 明示的記述をすることがあると言うか漏れはそれが多いのだが、 Cでもやっぱり場合によっては似た記述をするんだろうね。(w
>>175 もちろんそうでしょ CでもRTL風に書かないとダメっぽそう
ただ、Cで float型の変数 a bについて a * b って記述して合成すると
固定小数点の乗算回路として実装されたりするなら
デジタルフィルタの設計において、見通しが良くなるし
ロジックの検証も楽かも知れない
>>176 なるほどね、使い分けか。
今一Cの便利さってに懐疑的だったのだがそれなら解る。
アルゴリズム検証と回路生成を共通にするには若干努力が
必要なわけか。 ただ開発がシームレスに出来る可能性を
考えると恩恵は大きそうだね。
178 :
名無しさん@お腹いっぱい。 :04/01/22 14:58 ID:48TiayCH
たのむからSystemC,SpecCをいうときはC系と"系"をつけてよ。プログラムのCと見分けがつかんから。
>>178 C系ってどういう意味で使ってるの? 直訳するとC systemだが…
C like HDLって意味なら C風の方がピッタシくる
アタマ悪い女子高生の「みたいなー」の言い換え語の「〜系」って
技術的な話題にはそぐわないと思うっす
>今一Cの便利さってに懐疑的だったのだがそれなら解る。 これだけ見たら日ごろアセンブラ書いてるやつが遅まきながら C言語の便利さに気づいたようにも取れる。
>C++er? Cプラプラーってのはど? HDLer は HDエラー "ラ"は上あごにしっかり舌をつけて発音してください。 じゃないとHDErrorになっちゃうから。
C系の良さって、良く言われるソフト屋を回路設計に転用できるってメリットよりも ビヘイビアコンパイラーと組み合わせた時のメリットが大きいと思う。 現状のVerilog1995-2001は制約が多すぎて、RTL以上の抽象度で記述するのに向かない。 けれど、SystemVerilogは抽象化についてもカナリ強化されているから結構期待。
C系厨キターーーーー C系にはCそのものは含まれるのか? 太陽系には太陽は含まれないのか??
正直、文脈から誤読はなさそうだから系を付ける付けないなんて どうでも良いことなのですが・・・。 論理合成と記述の抽象度に関しては今までだんだん改善されて 来てるのでこれからもだんだん良くはなっていくでしょうが、ある日 突然劇的に改善されて、記述を目一杯サボっても良い様になる 訳はないでしょうね。 簡単にはメーカーもツールも信じられなくなるほど騙されてきたのに ここで又騙されるのは嫌。
記述をサボりたいから抽象度を上げるんではなくて、 RTLには限界があるように思えてならない。 昔は回路が決まればタイミングもほぼ決まって、 後は巧くレイアウトすれば収束したんだけれど、、 最近は回路が決まってもレイアウトした後に予想もつかない クリティカルパスが出来てしまい、回路修正が必須になっている。 それも組み合わせ論理をいじるだけではすまなくて、 パイプライン中でF/Fを切る位置をずらしたりしないと収束しないことも有る。 そうなると制御系のFSMも書き直さなければならず大変。 それだったら、データパスとかは最初からサイクルアキュレートでない抽象的な 記述で書いておいて、緩いタイミング制約としてサイクル数を指定して、 ビヘイビア合成ツールに配置配線を考慮して合成したもらった方が 良い回路ができる可能性があると思う。 (現在のツールはそこまでの能力は無いかもしれないが) RTLは'回路を意識'した記述は出来るけど、'レイアウトを意識した'記述は難しい。 どのように配置されてもタイミング収束しやすい回路を記述することはは 出来るかもしれないけどきっと冗長なぬるい回路になる。
でもアルゴリズムは普通プログラムCで考えるだろ? それ見ながらHDLに翻訳して手順を回路にマッピングし直す作業がなくなれば それはそれで非常にメリットがあると思うんだが、 アプリケーション考える->即回路ができるってことでソフト屋どころか HDL書いてた奴の人減らしも出来るのではないかと。
同じフレーズを10年前にも聞いた気がします。(w
>>189 たぶん10年後も同じフレーズが売り文句でしょう。w
>>187 問題意識としては正しいと思うけど、それは大学で研究するレベルの長期的課題だよね
今のところ、そんな魔法みたいなツールを開発する手間かけるくらいなら、
まともな技術者をたくさん雇ったり、ターゲットに早いプロセスを採用した方が
コスト、時間ともに小さくできそう
RTLは同期回路の抽象的なネットリストを表現するには十分な抽象度があると思う。
俺は、RTLって日進月歩で進化する新しいプロセスに対応する手間を削減するために
使うものだって意識をもってる。
もしプロセスの進化速度がいまの1/10だったら(半世紀で倍の速度)
いまだにスケマ図ベースでカリカリにチューンして設計してるかも知れない
漏れはHandel-Cしか知らないけども
たとえば
http://adsp2191.hp.infoseek.co.jp/program/fir/fir03.shtml の
for ( k=0; k<TAP-1; k++ )
{
sum += delay[j--]*h[k];
if ( j < 0 )
j = TAP -1;
}
sum += delay[j]*h[TAP-1];
で整数演算でいいなら、j--が[]の外に出て
if (j==0) j=TAP-1; else j--;
にしてやる程度かな。
ついでにsumの計算とif文、それからk++は
並列動作可能だから
k=0;
while(k<TAP-1) {
par {
sum += delay[j]*h[k];
if (j==0) j=TAP-1; else j--;
k++;
}
}
sum += delay[j]*h[TAP-1];
ってとこか。(乗算のロジックは勝手に生成される)
これで、whileループは一回あたり1クロックでまわる。
浮動小数点演算なんかだと、関数呼び出しの形になるから
ちょっと読みにくくなるけれども。
人手でHDLにして最適化していけばずっといいものには
なるだろうけども、それであがる何割かの「よさ」と、かける
時間のトレードオフを考えるとどっちが得か、微妙なシーン
が多い気がする。
193 :
名無しさん@お腹いっぱい。 :04/01/23 14:11 ID:BlyyP1Mw
こういうのが居るからわけがわからなくなるんだよ。 FIRフィルタをわざわざハード使ってやるのになんでまたCPUやDSPと同じような構成にせにゃならんのだ。 チミはマッチドフィルタを勉強したまえ。ハードでやるってのはそういうこと。乗算、加算器を一つしか使わないという発想自体が よくない。 それから、プログラムにしてもそれじゃチミお話にならんよー。 あくまでももとの式に忠実に書くが x, h を配列、px, phをポインタtして *px = x + N-1; *ph = h; for( k = N-1; k >= 0; k-- ){ y += *px-- * *ph++; } で事足りる、配列のインデックスに カウンタ値を持ってくること自体よくない。 因みにDSPでやる場合xの並べ方を逆にしておいて、 y+= *px++ * *py++ になるような工夫をしておけば乗算、加算、2箇所のポインタのインクリメントが1命令で実行できるはずだ。
ちゃうちゃう。別にFIRフィルタを書きたいのではなくて、 先にCで書いたようなのを、まんま持ってきて軽く並列 部分を切り出す程度でも落ちるってこと。 プログラムが話しにならないって話は、先のリンク先 を書いた香具師にでも言ってくれぃ。
HDLなりEDIFになるよってこと。
補足 ソフトのコンパイラでCのソースがアセンブラになるのと同じように、 C=>HDL/EDIF っていう変換がされるわけ。なんとなくイメージで C/C++=>アセンブラ=>機械語 って階層で下がっていくイメージがあったからつい「落ちtる」と 言ってしまった。すまん。
そういう意味なら > 人手でHDLにして最適化していけばずっといいものには > なるだろうけども、それであがる何割かの「よさ」と、かける > 時間のトレードオフを考えるとどっちが得か、微妙なシーン > が多い気がする。 Cで書かれたコードが元からあるって前提がうさんくさいね Cのコードを書く工数を省いて、最初からハードを意識してHDLで書けば 時間もかからないのでは?
199 :
名無しさん@お腹いっぱい。 :04/01/23 15:04 ID:BlyyP1Mw
>>195 了解。
http://adsp2191.hp.infoseek.co.jp/program/fir/fir03.shtml リングバッファ部分で速度が落ちることを言いたいわけね。それは間違いないが、データの格納の話をFIRに絡めて
書いてあるからわけがわからなくなる。実際にFIRフィルタ内部で複雑なことやろうって言うのがそもそも間違い。
データを絶え間なくハンドリングしなきゃならない場合、格納は必要なバッファx2倍のリングバッファをこしらえて、
格納自体はDMAに任せる。FIRフィルタ演算はデータがバッファの半分まで溜まった時に一挙にやってしまって、
メモリに書き込む、その間もデータはリングバッファの残りの半分の部分に書き込まれ続ける。そして演算結果の
読み出しは外部から均等間隔の割り込みを与えてそのタイミングで出力するような割り込みルーチンを作るとか
DSPの外部にFIFOを用意してFIFO経由で正確なタイミングで読み出すかだな。
>Cのコードを書く工数を省いて、最初からハードを意識してHDLで書けば
>時間もかからないのでは?
実際の仕事したことないだろ?Cもしくは何がしかのプログラム言語で十分シミュレートして、アルゴリズム検証を
してからHDLに持ってこないと、わけのわからないものが出来上がる。シミュレートしたり、アルゴリズムを検証するのは
LSI屋がやらないことも多い。そこはアプリケーション屋の仕事であったり、研究部門の仕事であったりする。LSI屋はテスト
データとか検証の終わったCソースを持ち帰ってRTLへの翻訳作業をやる。
Tiなんかがすごいと思うのは、たんなるチップの下請け屋じゃなくて、ありとあらゆる規格制定委員会などに顔を出して
(出せる能力のあるアプリケーション分野のエンジニアを揃えることが必要)くること。顔出すだけじゃなくて当然口も挟む。
プログラムで書かないでMATLABなどのツールで アルゴリズム検証やるケースも多いと思うぞ むしろそっちの方がアルゴリズム検証の段階で 並列化を十分検討できるので回路化するのが楽
201 :
名無しさん@お腹いっぱい。 :04/01/23 15:16 ID:dMiFs0xO
あったま良さそぉ〜
202 :
名無しさん@お腹いっぱい。 :04/01/23 15:27 ID:BlyyP1Mw
MATLABはプログラム言語の実行環境だよ。プログラムレスっていうならSimlinkか? できるっていうのと売り物になる製品を作るのは大違い。MATLABってのは方向性を探る上では利用価値が 大きいけど。用意してくれたライブラリのユーザになってるだけじゃだめなんだよ。 その中身を十分理解したうえでハードウェアの実情に合うように構成しなおさないと売り物にはならない。 MATLAB->HDL自動変換で売り物にならないRTLは生成出来るだろうけどね。
203 :
名無しさん@お腹いっぱい。 :04/01/23 15:39 ID:BlyyP1Mw
>並列化を十分検討できるので回路化するのが楽 どういうことなの?
ちと刺激的な書き方してしまったのと、サンプルが不適切で無用 の反発を買ってしまったことはお詫びしますわ<(__)> HDLとCって別に対立構図で描く必要はないと思ってるんだけどもな。 Handel-Cの場合Interfaceを使ってHDLで書いたものとも結合でき るし、適材適所で使い分けすればいいだけで。 最初からHDLで考えた方が楽なものをわざわざCなんかで考え 直す必要はないだろうし、逆に既にソフトウェアで検証できたもの とか、ソフト的に考えた方が楽なものをわざわざ人間様の脳みそ 使ってHDLに変換してやらなくても、まぁそこそこ(あくまでも 「そこそこ」だろうけども)のものとして動かせるようになってきて いて、「そんなもんでいいよ」という場面も増えているんじゃないかな? だったら、そんなものはアルゴリズム考えたソフト屋なり研究部門 に押し付けて、ただでさえ人手不足で忙しいハード屋はそんなやりかた じゃ話にならないような、脳みそに汗かくような部分に注力したほうが いいんじゃないかなと思うのだけども。
>>203 MATLAB/Simulinkを使うとブロック線図を描くだけで実際に計算できる
C言語のような1本道じゃないので、ASIC/FPGAによる実装と親和性高い
こんなイメージ
http://www.cybernet.co.jp/matlab/product/dsp/highlights03.shtml >>202 のいうことはわかるが、それが
「Cもしくは何がしかのプログラム言語で十分シミュレート」が必要って
理由にはなってないんじゃない?
MATLAB環境でだって十分なシミュレーションはできるし
C言語だって、libcライブラリのユーザになってるだけじゃダメでしょ
最初からHDLで開発するんだってわかってるなら
わざわざC言語でプロトタイプつくる必要ないのでは?
いままでDSPでしかやったことがない技術者が「HDLとかRTLとか勘弁してよ〜」
って弱音吐いてるようにしか見えないよ
206 :
名無しさん@お腹いっぱい。 :04/01/23 16:16 ID:BlyyP1Mw
>MATLAB環境でだって十分なシミュレーションはできるし >C言語だって、libcライブラリのユーザになってるだけじゃダメでしょ >最初からHDLで開発するんだってわかってるなら MATLABってのは単にblasをラップしただけ。何でMatlab使うかといえばライブラリが揃ってるから。 その演算部分に相当するところをハードで起こしたいのに、ライブラリに頼っちゃ意味ないだろうが。 >libcライブラリのユーザになってるだけじゃダメでしょ それを言うなら、libmに頼るだな。libcが持ってる部分をハードで起こす必要なんかないだろ? そうだよハード起こすのに最終的には libm も頼っちゃだめ。 >いままでDSPでしかやったことがない技術者が「HDLとかRTLとか勘弁してよ〜」 俺はもともとハード屋で、DSPこそ経験がないのだが・・・ というより、もうちょっと勉強しろよ学生ちゃん。
207 :
名無しさん@お腹いっぱい。 :04/01/23 16:44 ID:BlyyP1Mw
>>205 わかった。お前、Cごときもまともに使えないだろ。Cで十分検証とか書かれてるのを見て不安になったんだろ?
卒論は行列エクセルことMatlabちょこちょこ使ってお茶濁しただけだろ?
いまれまでMatlabしか使ったことないバカ学生が「Cで検証なんて勘弁してよ〜」
って弱音はいてるようにしか見えないよ。
お前、System CなんてC++そのものだぞ。
208 :
名無しさん@お腹いっぱい。 :04/01/23 16:54 ID:BlyyP1Mw
でもまぁ安心させてやろう。RTL書くのをメインの仕事にするだけなら、Cは読めるだけでも何とかなる。 俺が書いただろ、 "Cもしくは何がしかのプログラム言語での検証" 仕様に基づく部分がC、それを見ながら頭ひねる段階で何がしかの計算が必要になる場合が多い。 それには別にMatlab使っても構わない。 俺は別にMatlabは否定してないよ。ただお前のMatlabがプログラム言語じゃないって解釈が間違ってると言ってるだけ。
209 :
名無しさん@お腹いっぱい。 :04/01/23 20:25 ID:qdrSD/ws
どうでもいいが、21世紀にもなったことだし そろそろalways @(posedge clk)がFF専用記述としか思えないオヤジには、 退場してもらってもいいよな。
新しい物、やり方ってのは、必ずどっかしらに問題はらむもの。 always記述をFF専用として使ってきたのなら、さてちょと踏み出してみようとなったとき、充分な検証もされずに製品に移すと、シッペが帰ってくるんじゃないの。 特にシミュレーションと実装との差や、タイミングスキューで。
>>209 もう少し詳しく説明してくれないと無知な私には一体何を言ってるのかさえ解りません。
verilog-HDLのalwaysを使った記述方法、functionを使った記述方法のことでしょう。 シュミレーションプログラミングする段階で異なったプログラムになる。
213 :
名無しさん@お腹いっぱい。 :04/01/23 21:00 ID:OmcGfvdX
自分は確実な組み合わせ回路をどんどんモジュール化してって、それを一種のライブラリみたいにして、モジュールの組み合わせで組んでくのが着実な方法だと思うYO。 ステート図、ステート表も、ステート一個一個の記述が安定しているからその組み合わせの図が安定して分かりやすくなる利点もあるわけでして。
解るけど、適当なところで改行する方が読みやすいよ。
>>211 alwaysの中に
data<=data_n;
みたいな記述だけが、延々と並べてあるRTLを想像してくれ。
この類のは大概シミュレーションも遅いし、再利用もしにくいし。
216 :
名無しさん@お腹いっぱい。 :04/01/23 21:56 ID:sShPQ7EO
教えて下さい VHDLの勉強を始めたばかりの初心者です。 エディターでソースを書くとき、「コメント」は'--'とのことなのですが 広範囲にわたってコメントアウトしたいときは、何か良い書き方が あるのでしょうか? すぐにCと比較してしまうのですが、Cだと1行のコメントアウトは、//で可能で、 複数行のときは先頭に/*、末尾に*/を書けば、その間の行もコメントアウトできますよね。 これと同じような書き方が、VHDLにあるのかしら と思いまして。 宜しくお願いします。
218 :
名無しさん@お腹いっぱい。 :04/01/23 22:20 ID:EDbk669G
>>216 verilogなら/* */で複数行のコメントアウトが出来るんですが・・・
219 :
名無しさん@お腹いっぱい。 :04/01/23 22:28 ID:FPG3wUsE
>>216 デバッグ用にコメントアウトしたいなら、
if generate 文を使え。
220 :
名無しさん@お腹いっぱい。 :04/01/23 23:46 ID:WaSiDtHD
216です。 みなさんありがとうございました。 やっぱ、だめですかー。Verilogならあるんですよねぇ。 なんかVHDLは使いにくいなぁ って感じです。 どうしようかなVHDL..... 迷いが出てます。 ありがとうございました。
221 :
名無しさん@お腹いっぱい。 :04/01/24 00:13 ID:DE/t6GXn
216です。 もう一つ教えてください。 同じVHDLでも、XilinxのISEとALTERAのなんとか(名前知らない)では デバイス焼き込み後の実行スピードが異なると思うのですが、 それは大きく違うものなんでしょうか。それともあんまり変わらない のでしょうか。 また、VHDLとVerilogでは、同様に動作速度に差が出ますでしょうか? 宜しくお願いします
>また、VHDLとVerilogでは、同様に動作速度に差が出ますでしょうか? >宜しくお願いします どっちだと思う?
223 :
名無しさん@お腹いっぱい。 :04/01/24 00:19 ID:DE/t6GXn
そうですねー、Verilogのほうがあとに出来たので、Verilogでしょうか?
>>215 退場云々言ってる割にはつまらん理由だな。(w
>>220 その程度で使いにくいなんて言っていたらVHDLなんか使えんよ。(w
225 :
名無しさん@お腹いっぱい。 :04/01/24 01:52 ID:PzSlSidC
質問〜! VHDLとVerilogって何が違う? 言語がとかではなくて・・・。 後者のほうはなんだか、シミュレートが〜とか聞いたり・・・
>>225 シュミレーションと実装のギャップはどちらも引けをとらない位わr・・・(ry・・・っと・・・uいよ。
ただし、書き方による。問題ない組み合わせ回路を繋いで組めば問題ない部分が多いし、変則すればそれだけスキューが広がったりする。
お隣の板で、オールオーバのシュミレートで1clock遅れて出て来たなんて、とんでもHAPPNなことも書かれてた。
227 :
名無しさん@お腹いっぱい。 :04/01/24 02:25 ID:USEUNYuU
>>223 言語の違いは速度には直接影響しない。
影響するのはツールの賢さと、チップ自体の速さ。
XILINXの場合はどうだろう。
TranslateとImplementationってやるでしょ。
Translateで言語の違いを吸収してImplementationで配置配線を
するものだと俺は思っている。
VHDLで書いてもVerilogで書いても配置配線は同じだから
結局、動作速度は同じじゃないかな?
もし差がでるとしたらそれはツール(Translate)の差だと思うよ。
>>227 ためしにVHDLとverilogで同じ回路を書いてみてみた。@ise6.1foudaton
吐くRTL全然違う・・・・_| ̄|〇
ise? Synplify か Leonardoのどっち使ってんの? zbam2rDJ いい加減恥さらしてることに気づけよ。
>>229 罪のISEの組み込みシンセだから、どっちでもないよー
synplify買ってもらったほうがいいかなあ
231 :
名無しさん@お腹いっぱい。 :04/01/24 15:08 ID:IgBvTT/6
216です。ご回答ありがとうございました。 やはり当初の予定通り、Xilinx, ISE, VHDLで行くことにしました。 さて、XilinxのISE(伊勢と読めますね?)で勉強しているのですが、 このツールの使い方がよくわかりません。ISEの使い方について、 「日本語で結構詳しく」書かれた本やURLなどがありましたら、教えて下さい。 ISEのテキストエディターで、カーソルを行末に持っていき、 さらに右に動かすと、さらに右に行くんですが、これを通常の エディターのように、さらに右に動かすと、次の行の先頭に カーソルが移動するようにはできないでしょうか? 使いにくくて困っています。先輩の皆さんはどのようにしていますか? 宜しくお願いします。
どこのでも一緒だとおもうけど、だいたいあぁいうものに 付いてくるエディタって、エラーなんかが起きたときにその場 で確認したりちょっと直すという程度のことしか考えてないの が多いと思う。 どうせテキストファイルなんだし、自分が使い慣れたもので 書くのが一番では?
>>231 PIC応用ガイドブックにISEの基本的な使い方なら載ってるよ。
Verilogの方がよっぽど手っ取り早いと思うぞ。modelsimもお試し版はVHDLサポート辞めるようだし
「まぁ・・・何をお使いになられても似たようなものですが・・・」 「こ・・これなんですか?」 ・・・・・・
蛇男か
>>234 Visual C++ですね。おつかいになられまつか?
>>236 ま、まさか私が・・・。はっはっは
えー。こ、これなんですか?
VHDL信者って赤日とか捨民とかと同じ匂いがする。 とっくに終わっちゃった言語なのに。
>>237 「MS-BASCOMです。おつかいになられまつか?」
>>238 「まぁ、何をお使いになられても似たよ〜なもんですが・・」
>>238 そういうしなくて良い無駄な論争に持ち込むのはサヨクの手口なのですが。
どっちにしろそう言う物言いは賢そうに見えない。
241 :
名無しさん@お腹いっぱい。 :04/01/25 15:01 ID:doVzgSOU
VHDLが終わったというのは間違いないよ。 国防総省御用達ってだけで、Verilogより後発で、しかもめんどくささ倍増、 生産効率極めて悪しでもう終わりだよ。
じゃぁ、残るは、CとSchema?
>>241 VHDLに先はないだろうね。
ただ無駄な論争はこのスレでして欲しくない。
Verilogは「先がない」から外されてるのは何で?何でVHDLだけ?
VHDLよりは生産効率がいいから。書いてみればすぐわかるだろ。
別に無駄な論争だとは思わないね。実際仕事してれば廃れていくことが まさに見えているのに、これからやろうとしてる新人君に、そのことを隠して 役に立たない言語習得に無駄時間費やさせることのほうがよっぽど無駄だろ。
>>246 VHDLは消えゆく運命にあるのは解るがその事をひたすら強調して
しなくて良い論争や、叩きを無駄と言ってるの。
249 :
248 :04/01/25 18:14 ID:llX8wRQ2
あと、今使っているツールはクオータス2のwebエディションです。 将来はniosで遊びたいです。
>>248 なんか一つ覚えておけば乗り換えるのはそれほど難しくないと思うよ。
普及率から言うと、Verilogだろうけどね。
あと、在る寺ならVerilogエディションも只でDL出来るんでないかい?
試してみてはどうかと。
251 :
名無しさん@お腹いっぱい。 :04/01/25 22:53 ID:doVzgSOU
>>247 知らない人間に現実を諭してやるのは全然問題ないしむしろ親切ってもんだ。それを知って上で自分で取捨選択すればいい。
判断材料を十分与えてあとは自身で決めればいいんだよ。
お前のような現実を覆い隠す姿勢こそが問題なんだよ。
>>248 Verilogでやり直してみると随分記述量が少なくてすむことはすぐわかる。
暇があればVerilogで書いてみれば?後発で乗り込んできた癖に、ほとんど方言程度の違いしかない。そのくせ記述量だけやたらと
多くVerilogと比較すれば生産効率はマイナス。何のために登場してきたのか首を傾げたくなると思うよ。
>>251 つまらん議論でレスを無駄にするなと言う事が「隠す」事なのかい?
うんざりだよ。
なんでおかしな言いがかりをする奴が粘着するんだ?
253 :
名無しさん@お腹いっぱい。 :04/01/25 23:00 ID:doVzgSOU
つまらんと思ってるのはお前個人の判断だ。つまらんと思うならレスせずに無視するか立ち去れよ。 これからどのHDLを勉強しようかと悩んでる人間には貴重な情報かもしれん。自分の物差しだけでものごとを推しはかるな。 推し量ってもいいがそれをつまらんとかかってな憶測を書き込むな。
>>253 > 自分の物差しだけでものごとを推しはかるな。
貴方にも言えることです。私一人無視できずに俺を無視しろとはよく言えますね。
で、私を叩くことでこのスレの雰囲気は随分悪くなりましたね。お解りですか?
これこそが無駄な議論でしょうが。
255 :
名無しさん@お腹いっぱい。 :04/01/25 23:12 ID:doVzgSOU
じゃ、別な言い方をしてやろう。 つ ま ら ん な ら 立 ち 去 れ ば ? これだけだよ。つまらん議論だというならレスするなってこった。
257 :
名無しさん@お腹いっぱい。 :04/01/25 23:20 ID:doVzgSOU
結局そういう捨て台詞しか残せないのかい?情けないね。 そんなことするぐらいなら書き込まずに去れといってるんだよ。
(゚∀゚)ノイヨウ!いつものようにやってますねェ〜
>>257 あのねぇ、必死になってVHDL叩きすることにどんな意味があるんだ?
と言いたいの。 終わってる言語だ、過去の言語だで、話はおしまい。
ことさら強調して言い続ける事ではないわね。 本当につまらん。
で、結果として悪い空気がだけが残りましたと・・・ほんとうに馬鹿でしょ貴方。
260 :
名無しさん@お腹いっぱい。 :04/01/25 23:34 ID:doVzgSOU
スレ汚すなといいながら >頭悪いですね。 だの >ほんとうに馬鹿でしょ貴方。 だの、糞なんだよお前。 だから、つまらんなら出て行けよ。誰も迷惑しないから。
262 :
名無しさん@お腹いっぱい。 :04/01/25 23:37 ID:doVzgSOU
お前のような下請けやって両方必要とする連中ばかりじゃないんだよ。 とりあえず手っ取り早く論理回路組めるようになりたいと思ってる輩により効率的なのはどちらか という疑問をもつのは当然出し知ってるからレスしたわけだ。それがつまらんろいうなら2CHに来なきゃいいだろうが。 アフォかお前。
>>262 より多く学ぶのも又学習です。
勉強なのであれば余計経験が必要と考えます。
ゴホゴホッ・・。んっん〜。 みなさま〜、お騒がせしております、 毎度おなじみ〜、2chもんちゃくでございます♪ ご不要になりました〜、古新聞〜、古雑誌〜、ぼろきれなど〜・・・(ry
俺は 51C5uejm は糞だと思ってるだけで、ここで書かれてることがつまらんと思ったことないからレスしてる。 つまらんなら興味あるところに行けばどうよ。わざわざつまらんとコメントする方がよっぽどおかしな行為だね。 このスレの中で、少なくともおれ以外でもVHDLがよくないと思ってる奴が何人も居るようだし、どの言語が一番よさげ か興味をもつのはぜんぜんつまらん話じゃないね。 >より多く学ぶのも又学習です。 >勉強なのであれば余計経験が必要と考えます。 じゃお前Pascal勉強してるのかFortranは?Lispはどうだ?Prologは? Eiffelは? 知識は無駄にならんかもしれんが、人生の時間って言うのは限られてるんだよ。最小の努力で最大の効率を 挙げたいと考えるのは当然だろうが。 さらに上で挙げたプログラム言語はそれぞれ特徴もあるがVHDLとVerilogなんてほとんど際立った特徴がない そんなものは仕事で両方扱わなきゃならない人間以外は効率のいいほうだけ習得しようと考えるのは全く間違いじゃないよ。 お前こういう議論つまらないんだろ?
>>265 死に絶えた言語を掘り出して細勉強しろと言う主張は一切していないし
VHDLは、未だに使われている。 単に主流ではないだけで。
> じゃお前Pascal勉強してるのかFortranは?Lispはどうだ?Prologは? Eiffelは?
話題そらしですね。
267 :
名無しさん@お腹いっぱい。 :04/01/26 00:12 ID:2Txh63Fx
>>266 死に絶えた言語を掘り出して細勉強しろと言う主張は一切していないし
LISPは、未だに使われている。 単に主流ではないだけで。
ってのはどうだ?
VerilogとVHDLの関係は、CとLISPなのかい?(w 馬鹿言っちゃいかんよ。
hd73r4AI == 51C5uejm はつまらん言語論争に夢中だね。
>>269 どっちが良いか論争など無意味且つつまらんと言う典型だね。
271 :
774ワット発電中さん :04/01/26 00:26 ID:2Txh63Fx
つまらんと言いながら何夢中になって書き込んでるんだよバカ
第三者の目にはどっちも馬鹿に見えるが、VHDL叩きに必死だった奴の方が厨くさい。 別にどっちでも良いし新しいのがでてくりゃ勉強すりゃいいだろタコ。 そして一番ゆるせんのがこれだ > お前のような下請けやって両方必要とする連中ばかりじゃないんだよ。 俺も下請けで両方やってるわけだが下請けを卑しむ奴は死んでくれ。マジで。
でも、やるんだったらVerilogの方がいいんでしょ。 と、燃料を投下してみるテヌト。
>俺も下請けで両方やってるわけだが かわいそー。よっぽど自分の仕事にプライド持てないみたいだね。合掌。 >> お前のような下請けやって両方必要とする連中ばかりじゃないんだよ。 どこにも侮蔑する表現ないのにねー
277 :
774ワット発電中さん :04/01/26 00:45 ID:DTZ6OgCp
名無しが変わったの気付いたかな?>>ALL
>>275 やっぱり厨はお前なわけだ。(w
で、どうみても人を見下した書き方だからむかつくんだよその書き方。
もろに下請けを馬鹿にしてる。 なんでわざわざ「下請けやって」等と
入れる?理解に苦しむクソ野郎だ。
そろそろ、終わりにしよう。 漏れが言っても説得力ないか。(w
>>277 よっぽど自分の仕事にプライド持てない糞下請けだなぁ。仕事やってるだけでもありがたく思えよ。
バカはホントの事言われると怒るんだよバカ。人としてみてるとでも思ってるんか?あーん?
281 :
774ワット発電中さん :04/01/26 00:55 ID:2Txh63Fx
>>278 クスォアマな可能性もあるわけで・・・。
もしそうなると、燃料くべる毒牙をもった魔女か・・・。
モマイラは、こんなマジョタンにムチでピチピチつァれだいでつか?
>>278 むかついたら、2chブラウザで消すとレスを見ることもなくなるから
精神衛生上良いでしょう。
>>281 恥ずかしくないか?ボケ。その言い様を見て誰もまともとはおもわん。
>>283 そうする。
285 :
774ワット発電中さん :04/01/26 01:14 ID:2s/uigbe
216です。 VHDLで書ける物は、Verilogでも書けますよね? ってか、このロジックはVHDLでしか実現できないなんてことは ないですよね? (あるいはその逆です) また普及率でいうとVHDLとVerilogと どちらがどのくらいなのでしょうか? 実は、今日本屋で本見ていたら、 あきらかにVerilogの方が行数少なくて1画面内での見通しがいい。 /* */もあるっていうし、よく見ると記述がC言語に似たところがあるし。 みなさんの話では、普及率も記述量の少なさもVerilogの方が優れているとの ことですし。またまた迷ってしまいました。 本当はCで書けるといいんですけどね。
愉快だなぁ!でも、まぁそう怒るなよ。 少なくとも時間給からすると俺の給料よりたかーい害虫費払ってんだから、まともに仕事ちてちょーだいね。 これでも君らがへそ曲げないようにぴりぴり注意して接してるんだから。お願いちゅるね。
>>285 > VHDLでしか実現できないなんてことは
今となっては、あまり使わない記述で一部存在します。
ただし実用上無くても無問題なので気にせず、Verilogを
学ばれれば宜しいかと。
288 :
774ワット発電中さん :04/01/26 01:36 ID:2s/uigbe
>>287 ありがとうございます。了解です。私は、組み込みマイコンでは不足する
部分にCPLDやFPGAを使いたいと思っています。ありがとうございました。
289 :
248 :04/01/26 01:46 ID:NkNIKu3E
「FPGAボードで学ぶ論理回路設計」でVHDLを勉強中の248です。 どうやら、VHDLは後発でシェアが少なく、記述量が増えるようですね。 移行は簡単との事ですので、基盤とそのチュートリアルが付いている 今の本を最後までやってからVerilogを試してみます。 回答してくれた皆様、ありがとうございました。
290 :
774ワット発電中さん :04/01/26 02:28 ID:2s/uigbe
>>248 =289
216です。私もVerilogにしようかと考えています。
いっしょにがんばりましょう。って、関係ないか.......
>>265 pascalはまだ現在進行形で開発システム売られています。ボーランドのやつね。
COBOLはPC用の市販システムは淘汰されましたが、事務系の開発ではいまだに現役です。
で、Algol-Pascal-ADA系を経てC/C++を勉強してましたが、VHDLもVerilogも一瞬で言語体系が理解できました。(^^)v
趣味でForthとかlispとかprologとかAPLとかFORTRANとかCOBOLとかBASICとかアセンブラ各種(80/68/86/PPC/41他)やりましたけど、
他の言語をやって初めて見える世界もあったりするわけさ。
まあ、死んだ言語は良い言語。バージョンアップで苦しまないし(w
>>291 あ、うちの会社の発注元は
VHDLもVerilogも信用してません。
「漢ならSchematicぢゃろうが!」
だそうですよ。
シミュレーション面倒なんで勘弁してくれ。>某社
>>292 そいつは頼もしい。
CISCマイクロプログラムのようなストアド設計の部分もSchemaのモジュールを組み合わせてやってしまうのかな。
まぁ、シミュレーションでの信頼性はSchemaだからループを作るような事をしたり、メタステーブルするようなタイミングマージンの無さがなければ、
シミュレーションにも信頼性が高いと思うけれど。
>>293 信頼性の話じゃなくて、シミュレーションが遅いんじゃないの?
アクセラレータとか使えなさそうだし。
シミュレーション遅いなんて、たいした秒数かかんないんだし。 確実性、実機との近似性が問題。ストアド(プログラム)上のシュミレーションは信用できず。 せめて合成後でなければ・・・。しかし、合成後のシミュレーションの結果が・・・。 メタステ、グリッヂの起こすタイミングマージンきついコードをはくこともあるでしょ。 スケマはゲートの数で見れば一目瞭然だし。
>>295 数秒で終わるような短い記述の方が少ないので一寸驚いた。(w
ゲート数見て分かっちゃうのも驚いた。 配線遅延は気にしないのか?
シミュレーションが数秒で終わる程度の規模なら、場合によっては スケマもいいかもね。回路全体が把握しやすいから。
>>298 DHLを始めた頃簡単な回路だと、記述を初めて面倒くさくなって回路図に
戻ったこともありました。(w
今では、小さい回路でもHDLで書いてしまうなぁ。
>>297 分かるよ。Schemaで組むと綺麗に並んでるからね。
1ゲートは大体同じくらいの遅延を持つものでできている。
>>299 制御回路は巨大化するならマイクロプログラムのようにストアドで書いた方が良いけれど、
高速部分だし、できるだけSchemaで書いた方が良いと思う。
レジスタとかはSchemaで組んだモジュールとして蓄積しておけば、組み合わせて使えるでしょ。MUX、GATEなんかSchemaで繋ぐべきだし(←こんなんで吐くソース変えられてたら像が分かりにくくてしょうがないw)
あと、Schemaで書く時の利点は、整然としてるから、リクロック・リタイミング(組み合わせ回路で一番遅いタイミングに出力が合い伝搬してゆくこと)が見つけやすい。外部ではタイミングズレを修正するのに使われたりするけど、
石内部だと良くない、てか致命的になることもある。完全に同期なら良いけれど。
追加
>>297 >配線遅延は気にしないのか?
最も高速な命令デコードや制御回路をど真ん中に配置することで各部への分散長をそろえられる。
スケマって回路図入力のことじゃないの?フロアプランや配線も 含んでるの? きれいに並んでるって、配線密度低すぎじゃないの? 楽しすぎだよ。 あと、ゲートが同じくらいの遅延って、どこのデバイスだ?
>>302 スケマツールにも色々あるからね。EDA前に綺麗に並べられたりするよ。
MENTERのはよいと思ふ。
ゲートはNANDやNORのことだが・・・。
この組み合わせで、ANDだのORだのNOTだのmodulu作っといてステート表に沿ってビシバシ繋ぐでしょ?Schemaんときは。
>>300 FPGAで50万ゲートを越える回路書いてるんで事実上無理>スケマ
>>304 制御回路だけで50万ゲートじゃ無理かもしれないけど、
レジスタ、メモリが大半占めれば、単位モジュールをブロック塀感覚で積み上げるだけだよ。
命令デコーダ、制御回路はストアドで書いて、レジスタ、メモリ、そのGATE、MUXはスケマで組めばなんてことな・・・(ry
NANDとNORとORとANDじゃ遅延が異なると思うが…。UPとDOWNでも違う。 まあ配線遅延に比べればゴミだが。 ちょっとしたゲート数の違いより配線長や配線層の違いのほうが効くだろ。 距離が同じでも配線がすなおに引けるとは限らないし。 だからゲート数ではあまり分からんと思うのだが。
>ゲート数ではあまり分からんと思うのだが。 うん。配線長の違いをゲート数でクッションできたりするしね、Schema。 ストアドコードが吐いた回路じゃ修正どころか解析するのも一苦労。
でも、CやHDLがないとデカイシーケンスは組めない訳で。 使い分けでしょ。確立してる、カウンタ・レジスタ・メモリなんかはSchemaで組んで、シーケンスはストアドと・・・。 CODE・コントロールピンが多かったりするとなおさらストアドロジック要るし。
あれだな。ソフトで言うところのアセンブラとCの差みたいなもんだな。
CADENCEのLSI、IC(含アナログ)、EDA統合設計ツールも良いね。
家電なんかで使われてるHYBRID-ICもこれ使ってる気がする。
フォトマスク製造装置用のMEBES等の多層マスクに非常に近い。
EDA見たことない方は見てみると良いよ。↓
http://www.cadence.co.jp/images2003/top2003-22.gif このツールでコードから実際の石内部のPNP構造の絵までこのツールで流れてく。
絵の中の色の一つ一つがマスクの一枚一枚だよ。このファイルをMEBES変換して
で、フォトマスク製造装置にファイル入れて、ガラスマスクにレンズ超縮小描画する。
で、複数マスクを作って、露光装置(ステッパ)でマスクをフィルターにして、シリコン上に露光して、レジスト・エッチングをする。
で、複数マスクでこれを繰り返し、何層も半導体層を築く。で晴れてチップの焼きあがりーとなります。
312 :
774ワット発電中さん :04/01/27 23:27 ID:9gIPYHz3
いっそのこと、昔みたいにトランジスタレベルで 組んでいけば速度も消費電力も最適化できるかもね。 時間はいくらあっても足りなくなりそうだけど。
>>305 いや演算回路を入れまくりだから実ゲートの部分でも、ゲート換算で
30万を越えることはありまくり。
315 :
774ワット発電中さん :04/01/28 00:45 ID:IVDEkQqw
>>311 訂正。
セルをPNPと書いたのは良くない。PNPは石内部の抵抗構成で使われているけど。
MOSは
P ゲート P
 ̄□ ̄ ̄□ ̄ ̄□ ̄
N
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
N層上に載せたP層だからこうなる。
P層の作り方はレジスト剤と付して、マスクして露光、観光してない部分をエッチング、穴ポコにイオンビームドーピングまたはガス雰囲気で浸透拡散でよかったよね。
で、レジスト(レジスト剤洗浄)と。
>>311 のリンクのカスタム石の文章ででてくるガードリングは、
_ _
□
.↑ココ
の角が電界が強くて、特にTrの場合、なだれ増倍効果(アバランシェ効果)により、絶縁破壊を起こさないように丸くする。
>>315 スマン、顔文字に見えて笑ってしまった。(w
317 :
315 :04/01/28 01:01 ID:IVDEkQqw
>>315 ゴメソゴメソ
間違いと書いておきながらまた間違いた。
MOSはこう
N ゲート N
 ̄□ ̄ ̄□ ̄ ̄□ ̄
P
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
P層の上にN層が乗ってる。
スマソ、大訂正!(w
>>311 ,
>>315 ,
>>317 P-MOSは
>>315 でN-MOSは
>>317 >315,317のはデプレッションタイプ。エンハンスメントは
N-MOSなら
P ゲート P
 ̄□ ̄□ ̄□ ̄
ドリフト抵抗層
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
Nサブストレート層(ベース)
となってる。
あと、
>>315 のガードリングのもおかしい。
>絶縁破壊を起こさないように丸くする。
ガードリングは□の縁に堤防のように丸く厚みをつけたウェル(□のような部分をいう)を形成する。
そのようにしたウェルはこんな感じ
 ̄| ̄ ̄| ̄
.U ̄U
これで、脇の面積が大きいことで絶縁破壊可能性を減じる。作り方はウェルの縁どりだけの深いウェル作るマスクを作る。
>>312 リンクでは↓となってる。
>ガードリング効果の計算
あと、端子のPIN形状もピングリッド指定というので決められる模様。すなはち
. | こういうのと |。_。_
 ̄| ゚̄ ̄| ̄  ̄| |
 ̄ ̄ ̄  ̄ ̄
のようにウェルの上部にRING状に設けたり。
ラッチアップは
N N P P
 ̄□ ̄□ ̄| ̄□ ̄□ ̄| ̄
|____N|
Pサブストレート層_______
となってるところで左側N-MOSと右側P-MOSは回路として分断されてるが、
帯電により、デカイNウェルとPサブストレートが順方向バイアスされて、PNPNの寄生サイリスタができて短絡する。
これを防ぐ為に、デカイNウェルの周りを丸く厚くしてガードリングして、帯電を分散させる。
>>312 リンクのカスタム石の文章でこう表現されてる。
ラッチアップを考慮しながらウエル領域のマージやガードリングの作成を自動で行うことができます。(マージは分からないけど、フローティングウェルではないと思ふ)
あと、
>サブストレート・カップリングによるノイズは、ミックスシグナル設計で引き起こされる予期しない誤動作や歩留まりの低下などの主な原因となることがあります。
>キーとなるトランジスタのサブストレート・カップリングの影響を正確にモデリング
のサブストレートカップリングはラッチアップのような寄生Tr。↓参考
http://www.rohm.com/products/databook/memo_std/standerd/ba101b-j.html
デザインコンパイラがコンスタントアダーを全然コンパクトにしないんだけど、 どうにかならないかな。 実はDCって時代遅れ?
320 :
774ワット発電中さん :04/01/29 18:13 ID:bIfAKZyA
vhdlとverilogをgoogleで検索をかけました。 vhdlのほうがヒット数が多いです。 vhdlは嫌いです。
321 :
774ワット発電中さん :04/01/29 18:39 ID:9XB1bLpC
なんでVHDLが嫌いなの?
322 :
代弁 :04/01/29 18:44 ID:O1IHPjK6
マカーだから(w
>>321 一般的には記述量の多さが嫌われる理由の様です。
324 :
774ワット発電中さん :04/01/29 19:10 ID:bIfAKZyA
記述量が多いので、つらいのは、コーディングする人だけ、 仕様として読む場合、記述が多いほうが助かる場合が多い。 コンピュータ言語はただでさえ、記号が多い。 記述量が少ないほうがよいなら、みんな数学が好きなはずだ。
326 :
774ワット発電中さん :04/01/29 19:23 ID:bIfAKZyA
学校の先生がベリロガーだったからです。 verilog XL しか使えないからです。 modelsim 使い方むずい
>>326 おいおい。
ASICを起こすだんになってツールのことを考えると、VHDLは確かに
不利だったけどね。
最近FPGAしか使ってないから漏れ的にはどっちでも良い感じですが。
何れにしろ、VHDLは完全に斜陽、VerilogはC迄のつなぎなのだろうか?
FPGAのツールが対応したらこっちも対応するんだろうけどね。(w
連投ごめん あと漏れの主観だけど、レジスター、ワイヤーって概念より信号の変化を イベントとして駆動するVHDLの方が漏れの性に合ってた。
Schema好きな俺も制御回路はそうだと思う。(ストアドで組むし・・・) シーケンシャル(ソフトで言うとインタプリテッド)な感じじゃなく、イベントドライブンな感じ。 Schema好きでもブール計算はいや。
330 :
774ワット発電中さん :04/01/29 20:21 ID:bIfAKZyA
VHDLはタイプ変換 A <= to_integer(unsigned(signalA)) が、めんどうくさい。堅苦しい。
オマイラ タイプ数が多いとか言ってないで まともなエディター使え
タイプ数云々より、コンパイラオプションすら満足なものないじゃん。それ用のスクリプトでも組まなきゃやってられんだろ。
333 :
774ワット発電中さん :04/01/29 22:24 ID:bIfAKZyA
modelsimのサイ(たぶん白サイ)はかわいい
やっぱりCだな
336 :
774ワット発電中さん :04/01/29 23:56 ID:fSDbFgLr
昔のバージョンはもっとfunnyだったんだが、だんだんリアルなサイに変貌してきた。
338 :
774ワット発電中さん :04/01/30 13:30 ID:amqIoQ4g
VHDLとVerilogのどちらを勉強しようか、いろんな本を買ってみたら いい本に出会いました。 デザインウェーブBooks HDLによる高性能デジタル回路設計 対比表まであって、みなさんの仰ることが、よくわかりました。 みなさんありがとうございました。
>>338 どっちのHDLショー
関口サイド Verilog
三宅サイド VHDL
城島サイド ABEL(ここだけ愛のヱプロン3ぽく)
さあ。Dotch!?
PALASMもイレテクレヨー
AHDLも
>>335 Verilogなんかは、Cの予約語と同じにしてしまってもいいのがあるね。
begin end とか `if とか。
>>342 begin を{でエイリアスできないかな
漏れ、pascal使いなんでbegin,endは全然苦になりません。
>>344 verilogはpascalで、VHDLはAdaか?
Pascal のような Cのような・・・構成としてはPascalに近いのかな?
348 :
774ワット発電中さん :04/02/03 02:01 ID:0SMMhEh3
今度、1日研修に参加して、Verilog HDLを勉強することになりました。 大阪なので、ちょっと遠くてつらいが。たこ焼き食べて頑張ります。
OBPか?
お前らHDLをはじめる前に小林本を読破しとけよ
最近すっかりC化してしまって、HDLに戻れなくなってる 自分が怖い
読破するような高尚な本じゃないじゃん。
353 :
774ワット発電中さん :04/02/04 13:47 ID:4AZb+HZo
今後の業界の流れとしては、System-C と System-Verilog の役割分担が進む。 VHDLとVerilog-HDLの言語争いはもう終わり。設計対象のRTLを記述するのは、 System-Verilog 3.1 に統合される。 今までの Verilog-HDLの不満点を全て解消してくれた感じだ。 その修正・追加内容は非常に合理的で納得がいくものばかりだ。 アサーション記述も強化され Verification言語としての機能も大幅強化される。 これに対してテストベンチを記述するのが、System-C になる。 両者の役割は、明確に分かれていく。
お利口さんの優等生的な回答ならそうなるんだろうな。 間違ってはいないと思うけど、面白みがない。
これで開発お願いねって言われると選択の余地がないのが 自営の辛いところ。(w Cには興味有りだけど、仕事で使うのはもう少し先かな。
Cは吐く回路の実機とのギャップ、信憑性が怖・・・。 例えばアセンブラ埋め込むと省略されたりするだろ、それと同じことが・・・。 シミュレーションも悩ませてくれそうだ・・・、しかも実機との差が・・・。 ヤパー、スケマが安心して使える・・・。
別に無理して使うようなものでもないからいいんでないの? やりやすいものでやれば。
仕事でやってりゃ、無理して使うもんだよ。 上もしくは客から、これ使えって言われれば、 嫌だとはいえない。
>>353 e言語とかVeraはどーなっちゃうの?
Verificationは言語設計よりも実装の方が大事っぽい。
360 :
774ワット発電中さん :04/02/06 19:56 ID:4H6c55Z9
system verilogとか、C言語設計とか、 畢竟、hdl toolが業界に行き渡ったため、 次の食いブチを、模索するEDAベンダのバズワードだとおもう。 自分はABELでもvlogでも、もうおなかいっぱいです。
漏れはC言語系は楽だから好きだ。
362 :
774ワット発電中さん :04/02/13 00:57 ID:Xj2iRVoV
先月 Verilogの勉強会に行ったんですが、 casexの文字がcarsexに読めてしまい、笑いをこらえるのに必死。 このときり講師、偶然女の人。まじめ顔で発音してたけどね。 類義語に「おこめ券」とかあります。 さて、VerilogはCに似ていて いい感じなんですが、 Cのプリプロ命令の #define みたいに、単純に置き換えのできる表記って あるのでしょうか? 例えば #define { begin #define } end とか できるとソースが見やすくなると思うんです。
>>362 ちったあ自分で調べろ
まんまの'defineがあるだろ
それから、例にあげた置き換えは
ガイシュツだけど、連接演算子とかぶるよ。
carsex、おこめ券では学習出来たと思えませぬよ。(w
365 :
774ワット発電中さん :04/02/13 09:31 ID:3tfo6YwD
>>363 自己レス`define(バッククォート)だった。
スマソ
366 :
774ワット発電中さん :04/02/13 14:47 ID:9XWBb3rL
>>363 ありがとうございました。知らなかったです。ありがとうございました。
ちなみに、C言語には「C言語辞典」みたいな、コマンド一覧の本が
あるんですが、Verilogにはそんな本はありますですか?
いい本があれば教えて下さい。
また、私のパソコンでは、以下の内容で 完了までに1分ほどかかるんですが、
これは「遅い」でしょうか? 私にはとても遅く感じるので、新しい
パソコンを買い直そうと思っています。みなさんは、どのくらいの
スペックのパソコンをお使いなのでしょうか。
環境 IBM ThinkPad セレロン600MHz RAM 256MB Win2000SP4
実行内容 Xilinx ISE6.1.03 Verilogで書いた'3 to 8'デコーダーを
論理合成、配置配線、その後 jedecFile生成まで 約1分!!!
どうでしょうか?
>>366 実際にもう少し大きい規模の回路を組むと死ぬほど遅くなります。P4-2Gで、やっとというレベル。
368 :
774ワット発電中さん :04/02/13 16:11 ID:9XWBb3rL
366です。 やっぱりP2-2Gくらい必要ですか。 今のままで行くと、256セルくらいの容量になると、仕事になりませんね。 近所のコンビニ行って帰ってくると終わってる....? たまんない。 やっぱり新しいパソコン買います。
369 :
774ワット発電中さん :04/02/13 23:29 ID:9XWBb3rL
>>366 です
その後、今日知人の家のパソコン(P3-1.2G)で、同じことをやったら、
びっくりするような結果が出ましたので、ご参考までに.....
4MHzClockを24bitのDFFを使って0.1secを切り出し、
それを4bitカウンタ4個でカウント、7SEGのLEDに9999までの時計みたい
な表示するものをVerilogで作成。同様に 論理合成、配置配線、jedec生成まで
P3-1.2G......25秒
私のセレロン700..............なんと3分11秒 あちゃちゃー。信じれん。
RAM容量の影響も大きいかも。
新人レイプマン誕生!スーフリとの関連は?!
電通のレイプマン
サトウ食品のバカ息子を追放せよ
広告板は今お祭り騒ぎ!!
http://society.2ch.net/test/read.cgi/koukoku/1076247919/l50 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※
電通社員と受付嬢が会議室でバックでやってるところを会議室の監視カメラが
しっかりと記録していて、受付嬢だけが首になった。社員はというと・・・、結局
なんの影響もないし。
これってどうなの?
顔がキモイので学生時代モテなかったらしい
それで親のコネで電通入社
モテなかった反動からか、電通内部でやりたい放題
電通社員2年目で和田さん並の暴れん坊に昇格。
この底辺生物に社会的制裁を!
372 :
774ワット発電中さん :04/02/13 23:46 ID:9XWBb3rL
それが実は、同じ256MBなんですよ。しょぼ。 みなさん、どのくらいの時間がふつーなんでしょう。 どこぞのCコンパイラみたいに、コンパイル2-3秒で終わりみたいな 感じにはいかないですよね? たぶん。
数分で文句いってるのか…
375 :
774ワット発電中さん :04/02/14 15:40 ID:o06mArXO
はい、1分は なかなか待てないんです。(気が短い?) 374さんは、何分ぐらい待ってみえるのでしょうか。 10分以上? てことはないですよね。
376 :
374 :04/02/14 15:51 ID:C6VNaLTU
この前やったときは論理合成より後で30分から1時間くらいでした。 PCの2GHz位のやつです。6000LE程度なのでたいした回路じゃありません。 FPGAはこんな簡単にできるのか!と思いましたが… しかし、こんなので育ったら人間が腐ってしまいますね。 (実際困ってるらしい) でも便利で早いほうがいいに決まってる。
377 :
774ワット発電中さん :04/02/14 16:41 ID:GVw2URs/
えーーっ、1時間ですか? うわぉ、信じられません。 いつもそんなに時間がかかるとなると、わたしのように ちょっと変えて、はい焼き込んで、評価 というやり方だと 全然ダメですね。シミュレーターできっちりやらないと いかんのでしょうね。 でもModelSim高いし。
そういうやり方だとFPGAしか作れんだろ。 FPGAにしたって(あるいはソフトでも)効率悪すぎ。
>>377 そのやり方は大規模ロジック設計に向いていない。
シムレーション(modelsimより安価なのがある)で検証、
FPGAでも検証がスジ。
最低数百万から始まるシミュレータはなかなか手が出ないわね。>Modelsim 色んな意味で便利だから欲しいところだけど。 そう言えば、二万数千LEクラスの回路になるとマシンパワーがあってもフィッティングに 一時間前後かかった様な気がします。
381 :
774ワット発電中さん :04/02/14 21:57 ID:GVw2URs/
377です。 LEって何でしょうか? Logic....Eは.... ModelSimより安いシミュレータって、教えて下さい。 ISE6から起動できるものがいいんですが。 パソコン決めました。 IBMの ThinkCentre S50, HT-P4 3GHz 512MB 7200rpm です。 どのくらい速くなるか、楽しみです。
LE = Logic Element ALTERA用語みたい。XILINXだとSlice相当かな?
LE = LUT + DFF LAB = LE x n MegaLAB = LAB x m
>>380 modelsim のSEは数百万だけど、PEは数十万円じゃないかな。
メンターが対応するようになって、風通しがよくなったな。
前は・・・
Xilinxだと、LCAっていうのがあった・・よね? 死語?
あれ?CLBだっけ??? うーん・・古すぎる記憶・・・
FPGAの内部構造をLCA,LEの事をCLBといったような。
SystemCってホントメジャーになるのかな? プログラム言語ではC++があまりに難解で生産性があがらずWindowsの メジャープログラム言語の座から滑り落ちてる。ハード屋が ストラウストラップの電話帳読んでる暇あるか?
>>385 FPGAと言う名前に変わってるからね。
ロジック セル アレイだっけかな。 もはや古語ってか死語ですね。
>>388 FPGAユーザーとコストを無視出来るセットメーカーのASICはあると思うよ。
391 :
774ワット発電中さん :04/02/17 22:17 ID:3eqPpgJm
今日、XilinxのISEの研修に行って来ました。 講師の人に質問攻めにしたのは、この私です。 すごく勉強になって、行ってよかった。講師の人ありがとう。
VHDLかverilogかの正解は無いと思うんだけど、僕の場合はverilogが優勢かな? verilogは1988年から使っていて、ここ6-7年はVHDLなんだけど。 理由は3つ: ・シムレーションがラク ・行数が少ない ・デザインコンパイラがVHDL-93をきちんとサポートしていない ってことかな。後者は痛かった、最後に変更をいれなきゃならんかったし、 シノプシスはVHDL-93はサポートしてますっていっているしなぁ・・・ まぁ、人それぞれ。
>>388 昔Cとアセンブラの対比で言われたのと同じでしょ。
そのうち今のソフトと同じように下手なHDL'erが書くのよりも
ずっと良くなるかも。
ただ、Cベースってツボにはまったときの生産性の高さは
驚くほどだから、デバイス屋さんでも、Time is Moneyな
世界で先行者利益を稼ぐようなものを作る時には味方に
なってくれるかもしれない。
ただ、Cベースでしか設計できない人の生産性の低さは 驚くほどだから、デジタル土方さんでも Time is No Moneyな デスマーチで人件費おさえてものを作る時には人柱に なってくれるかもしれない。
まあ、ファームウェアみたいに、CはCとしてつかって、 必要ならVHDLなりVerilogをアセンブラ的に使うのが良いのではないかなぁ(可能かどうかはしらん)。 個人的には、SystemCのようなシステム全体をCで抽象化する高尚なヤツじゃなくて、単にロジックをFPGAに 書けるレベルに落としこんでくれるツールが欲しいな。
現状、ソフトの分野でもHALはアセンブラで書くことを考えるとハードの分野でも どうしても回路を変えたくないモジュールは、ガチガチに記述したHDLで、と言った 感じで住み分けることになるんでしょうね。 シミュレータ、合成ツール共に他言語混載が前提になりますが。
結局のところ、優秀な設計者で生きていくには、Cベース、RTL,、回路図 の3者の利点をうまく行かして、高性能なLSIを作ることが出来るか? ってことになるんだろうね。 システムの要求に比べてシリコンの性能が良すぎれば、Cベースの無駄 だらけのLSIでも製品にはなれるね。 先進のマイクロプロセッサの技術はその3者にCADを駆使したような もんだから、シリコンをしゃぶり尽くしている観がある。
>>394 Cとアセンブラの半紙をHDLに持ち込むつもりはないよ。
Cベースって一言で言うけど、CをベースにするかC++をベースにするかで全く様相が違うってこと。
習得も圧倒的にC++が難しいと思うよ。
ピュアCは随分成功した、C++はさらなる生産性の向上を期待されてたけど、習熟して使いこなす
(ベターCじゃなくて)には相当のイニシャルコストが必要ってこと。結局生産性が上がらなかっ
たってのがC++の実績だったように思う。
ソフトの世界で、もひとつうまくいかなかったC++ベースのSystemCをこれからHDLに取り入れて
生産性向上にどれぐらいつながるのかな?ってこと。
399 :
398 :04/02/18 22:53 ID:KVS7pLiW
半紙 だってよ 話 に訂正して読んでね。
C++は言語仕様が肥大化したからね。 合成が前提ならCの範囲で十分いいと思うし、それでも 漏れにとってはすごく便利だった。 欲を言えばクラスを使ったカプセル化程度までは サポートしてくれるといいかな?っていう程度かな?
どんなハードが合成されるんだろう?想像もつかない。(w
>>402 これは面白そうですね。
スレ立てます?・・・寂れそうだけど(w
>>402 サンクス。 暇を見てやっています。
どっちにしろ、クォータスがCに対応したら嫌でもやることになるんでしょうが。
>>403 てか、寂れてはいるけどそのURLって電気電子板のCスレだよ。(W
>>404 いや、分っているんですけど(w
スレタイがSystemC,SpecCになっているので。
HandelCの書き込みをしている人も遠慮がちに書いているみたいなので、
どうかなぁ、と思った次第。
406 :
774ワット発電中さん :04/02/19 14:21 ID:WF/i8e5t
CとHDLは抽象レベルは同じではないでしょうか? Cでもゲートレベル記述は出来るし、 HDLでも、動作記述(アルゴリズム記述)はできます。 ただ、アルゴリズムを書く人に、C使いが多いのでは? HDLでRTLを書くのは、単に合成のためでは??
407 :
774ワット発電中さん :04/02/19 14:48 ID:DsdYN/Gp
>>406 まぁ、人間ってそんなに器用じゃないからさ、全部をプロとして
扱える人なんて極々少数だよ。企業としてはさ、全体として
生産性があがればいいから、それぞれに分化させちゃうのさ。
抽象レベルっていうのが何を指すのか良くわからんけど、 書いてみて楽ならそれでいいんでないの?
409 :
774ワット発電中さん :04/02/20 12:14 ID:DyjFE2Wq
Verilogスレはこっちに来てたのか。 Xilinx ISEでSynthesizeするときにでる警告で Input <clk> is never used. ってどういう意味なんでつか? module hoge(clk) input clk; always@(posedge clk) こんな感じで入力信号の値を一切参照しない時に出てくるんだけど。 Hierarchical block <module> is unconnected in block <topmodule>. って警告も意味がよくわかんないし。 ひょっとしてXilinx使うときの暗黙のルールみたいなのあります?
410 :
774ワット発電中さん :04/02/20 12:57 ID:u+YEoqVL
>>409 ザイリンクスを使ったことはないけど、このサンプルではclkを内部で
回路を構成するようには使っていないということでしょ?
だったら英語のメッセージ通りで:
・入力<clk>は使われていませんよ!
ってことでしょ。
もうひとつは:
・アイアラキ上のブロック<module>は上のブロックでは
接続されていませんよ!
ってことじゃんかな。
辞書引いた?
っていうか、このくらいは辞書無しでも理解できないといかんよ。
411 :
774ワット発電中さん :04/02/20 13:43 ID:DyjFE2Wq
>>410 あー、いや、警告の意味はわかるんだけど、
入力<clk>使ってるのに、モジュール繋がってるのに
警告がでるんでつ。
ModelSimでのシミュレートは問題なかったんで、
Xilinx特有の現象なのかなぁと。
412 :
410 :04/02/20 14:05 ID:u+YEoqVL
>>411 あ、そんなんか・・・スマソ。だったら、回路を構成しないということ
以外に考えられないなぁ・・・合成結果を見ました?
最適化する段階で 「なんだよこのソース、クロックなんか意味ねーじゃんよ! 寝ぼけたもん書いてんじゃねーよ、ヴォケ!取っ払ってやったから 有難いと思え!」 ってことになったんでは? 一箇所しくじると、芋づる式に不要なロジック(絶対動かないところとか) が出てきて、最終的にごっそり意味なしになったりするから。 ここ以外の場所のメッセージを先にチェックしてみては?
module hogehoge (clk,hoge,foo,bar) input clk; input hoge; output foo; output bar; always@(posedge clk) begin foo <= hoge; bar <= ~hoge + 1; end endmodule って設定しても、合成する時点で xxxx never used ってわらわらとwarningが出ますね。
最適化されて、hogeが変化しないなと思われて、 それならfooもbarも固定値でいいじゃん・・ってことになってしまったとか?
416 :
410 :04/02/20 17:10 ID:u+YEoqVL
>>415 そんな気がする・・・入力信号やclkが上のレベルで固定値に
なっているとか、出力が使われていない・・とかではないかな・・・
ああっ、もうダメッ! ぁあ…VHDL書くっ、Verilog書きますうっ!! カタッ、カタッッ、カタッカタッカタッッッッーーーーーッッッ!!! いやああああっっっ!!手伝って、お願いぃぃぃっっっ!!! カタッ!カタタタタターーーーーーッッッ…カタッ! カタタタタタタタタタッッッッ!!!! んはああーーーーっっっ!!!アッ、アルッ、アルテラァァァッッ!!! ムリムリイッッ!!論理合成ッッ、論理合成ィィッッ!!! おおっ!エラーッ!!エッ、エラッ、エラーーーッッ!!!デバッガ見てぇっ ああっ、もう ダメッ!!はうあああーーーーっっっ!!! カタッ!カタッ!カタカタカタッッッッ!!!! いやぁぁっ!あたし、こんなにいっぱいソース書いてるゥゥッ! かたかたかたっっっっ!!!!修正ッッ!!! ぁあ…同期っ、同期取れないっ!! カタッ、カタッ、カタカタカタッーーーーーッッッ!!! いやああああっっっ!!同期取れてっ、お願いぃぃぃっっっ!!! カタッ!カタカタカターーーーーーッッッ…カタッ! カタタタタアアアアアアッッッッ!!!! んはああーーーーっっっ!!!ザッ、ザイッ、ザイリンクスッッ!
∧_∧
⊂(´・ω・`)つ-、
>>417 ツマラン
/// /_/:::::/
|:::|/⊂ヽノ|:::| /」
/ ̄ ̄旦 ̄ ̄ ̄/|
/______/ | |
| |-----------| |
まぁ〜 ||ムリムリイッッ!!論理合成ッッ、論理合成ィィッッ!!! このあたりっは、ちがう意味でわかる気がする…
420 :
774ワット発電中さん :04/02/20 23:20 ID:r6QrXof0
VHDLは読めるんだけど、未だに回路図で書いてしまう俺。 やっぱHDLの方が良いんすかね?
>>420 生産性はHDLの方が上でしょう。
新たに回路設計をする時に一気に変えるのが宜しいかと。
面倒そうに見えても慣れると楽。
>>421 タイミングが複雑なロジックは回路図で書きたい衝動に駆られる。 たぶん、回路図のほうがいいんはじゃないかな、このケース。 RTLになって状態機械を多用するようになりました。回路図時代でも 使っていましたが、いあまはステートダイアグラムを書いてステート マシンとハードロジック、データパスの組み合わせになっていますだ。
>>422 漏れもそう思っていたけど、馬鹿みたいなステート数のワンホットを
さらりと書けてしまう現実を知ってしまって馬鹿らしくなってしまいました。
今でも回路で書けと言われれば問題なく出来ますが、仕様変更の事を
考えるともはや回路には戻れない感じかしら。
424 :
774ワット発電中さん :04/02/21 02:36 ID:NdNkdqQt
回路図で書こうとしましたが、FD3RCE(←テキトー)みたいな型番と 中身の機能が全然覚えられずに やめました。 また、私の価値観として「回路図というにはひどすぎる図面」しか できないので、精神衛生上よくありません。 そんなわけでマイコンのほうに逃げていましたが、 uSecオーダーの制御になると、マイコンではできないため HDLをやることにしました。
425 :
422 :04/02/21 11:13 ID:ptb1VJF6
回路図というのはそもそも実体の無いもので、実体としては レイアウト図しかないんだよね。そんでRTLを使っても良い回路 というのは、状態遷移図やタイミングチャート、FFや組み合わせ 回路や信号線をあらかじめ書いた図があり、しっかりと練ってあ るものが質も高いよね。 RTLをそのままエディタで書いちゃう奴でろくな設計者をみたこと ないな。 再利用の出来ない設計データなぞ、ゴミみたいなもんだ。
>RTLをそのままエディタで書いちゃう奴 じゃ、お前はどうやってRTLを書いてるんだよ。
・・・えっとRTLって抽象度の低い回路に近い記述だと理解していたのですが。
モジュール作って、検証したものをつなぎあわせってことだろう。 自由なHDLだとどう動作するか分からないってことじゃないの。 ステートダイアグラムだって、幾つかのパターンに分けられるわけだし。
429 :
422 :04/02/21 18:02 ID:BsDmKuPR
>>426-428 そうですね、428さんが言っている通りです。仕様を見て、すぐにRTLを 書いてシムレーションで検証してRTLを修正するという輩が多いのですが (昔はこれはEWSの回路図エディタだったりする)、再利用が出来るような データベースにはなりませんね・・・僕の経験からすると。 >>425 で書いたのはブロック図、状態遷移図、タイミング図をきちんと 書いてから、RTL設計している奴が結局は優秀な設計者になるということ です。 朝だったので寝ぼけていたかな・・・
>>424 アホな上司が「74シリーズ互換のライブラリー作って回路図で描いてくれんか?」だって。
Verilogで書くという話じゃなかったんかい!
と、転職しようかと思ったよ。
>>430 そういう輩には74189とラッチをずらっと並べただけの回路にしてやろう(w
「一応初期値は入ってるものとします」ってか。
要するにLUTとF/Fだなや。
433 :
411 :04/02/22 09:58 ID:fdu5U/Db
always @(inp) if (inp) outp = 0; else outp = 0; のinpが取り除かれるのは仕様らしいな。 じゃぁ、どーゆーコード書けちうねん。とツっこんでみた。
そういや、レベルとエッジトリガをラッチとFFと呼び分けて いるんだけど、どう使い分けています。尤も、ラッチを使う のは、IO端子とかスペシャルセルのインターフェースの 部分だけなんだけどさ。 ただなぁ、FFとラッチの内部構成を知らないとか、ラッチで 回路を組む(「IFのデータバスはエッジで取り込むんじゃなく て、ラッチを使うんだよ!」とか言っても)のが理解出来ない のが結構居るんでツカレマツ。 ああ、HDLの話題から遠ざかる・・・
トランスペアレントラッチは、アドレスバスデータバス共用のマイコンの アドレスラッチ用にしか使ったことが無いです。(w
>>435 内部ゲートはトランスミッションゲートで構成?
なら、カスタム石用のツールですね。
最近はすべてエッジトリガのFFだけで組むことも多いな 特にFPGAだとラッチとか立下りエッジFFとかは有害無益だ
438 :
434 :04/02/23 14:47 ID:Zftc+pgB
こっちはLSI設計専門だけど、かつての設計はラッチ主体で設計した んだけど、論理合成導入でFF主体に変えました。ラッチや 立下りFF、非同期セット・リセットFF、非同期FFは同じように特殊 セルとして扱うようにしています。 特殊セルはそれぞれ別モジュール化にしています。ちょっとは バックエンドワークがラクになるかなっ?てことですが。
クロックスキューによるオーバーヘッドが大きい 高速LSIではラッチを使って同期設計すると 効率がよくなるとういう話はありますね。 いまのところ合成ツールが対応していないから、 RTLをF/Fで合成してからラッチに置き換えることになるけど
>>434 > 回路を組む(「IFのデータバスはエッジで取り込むんじゃなく
> て、ラッチを使うんだよ!」とか言っても)のが理解出来ない
> のが結構居るんでツカレマツ。
すれ違いかもしれないけど、こういう奴いるんだよねぇ。
しかも、こういうのに限って知ったかが多くて扱いに困る。
でも、「Dラッチ」とも言うからやむを得ないかも
ハードは趣味でしかやらないから業界内の慣習には詳しくないんだけど、 同期・非同期という呼び分けはしないもんなの? 10年前にPALASMとか使ってた 時代でも非同期動作は極力排除しろって風潮だったと思うけど。 非同期バス嫌いだったな。
443 :
434 :04/02/24 11:00 ID:9lcYX8gF
>>442 いまでも非同期は極力排除だよ。バグを生みやすいし、生産性が落ちるしさ。
スーパーな設計者なんて極々少数だから、一般設計者でも設計できるように
マネージメントしないと、設計なんて出来ないよ。
非同期回路のインプリメント方法を示して、その範囲で設計をさせて、レビューで
チェックか、本当に分かっている奴しか、非同期回路を組ませない。
でも分かってないということが分かってないから困るんだけど。
444 :
434 :04/02/24 11:02 ID:9lcYX8gF
>>439 そうですね、ラッチベースだと高速回路を設計できますね。
そういった場合にはトランジスタレベルで回路を組むという
技を使ったりします。
もう十年以上前から非同期排除は叫ばれ続けてるね。 FPGAが非同期回路を入れてくれるなって感じだったし、漏れは 小林某を本を教科書にしてたから余計非同期回路嫌い。
446 :
434 :04/02/24 12:38 ID:9lcYX8gF
>>445 かつてはLSI設計屋はラッチベースの同期設計、TTL設計屋さんは
FFベースと非同期設計が主体だったんネ。
昔のボード屋さんの設計は非同期カウンタとか、タイミング
合わせにワンショットとかの嵐だったよん。
古いボード屋さんの非同期設計からの脱出が問題だった
んだと思うよ。古いLSI設計屋はASIC手法の導入でFF
ベース設計に変わったんだけど。
小林さんの本は入門編しては良いよね。VHDLを始めたときに
(verilogは長い使用経験があるけど)、小林さんの本を使用した
なぁ・・・でも、仕事で使うVHDLの参考書はAHENDENの
The designer's Guide to VHDL 2nd edとVHDLの規格書ですネ。
447 :
774ワット発電中さん :04/02/24 14:00 ID:TlnaIUlE
>>414 reg宣言は?
reg宣言したら、うちのISEでは問題ない。
448 :
774ワット発電中さん :04/02/24 15:16 ID:9lcYX8gF
>>447 あ、ほんとだreg宣言が無い!んじゃ、動かないな。
データ駆動型と非同期設計を組み合わせたというのがあったような 気がしたな。 同期型と違って速く動けるところは速く、時間のかかるところはそれなりに 遅く動くから、全体としてのパフォーマンスはあがるとかいう理屈だった ような。 非同期=>同期=>非同期 っていう感じかぁ・・なんて漠然と思っていた。
451 :
774ワット発電中さん :04/02/24 22:58 ID:DE/t6GXn
ラッチで、トランスペアレントでないラッチってあるのでしょうか? FFには、R-S, T, Dなどがありますが。もしラッチでトランスペアレントでないものが あるとすれば、それはD-FFと同じなのではないかと思うのですが。 どうでしょうか?
452 :
774ワット発電中さん :04/02/24 23:16 ID:Ph31sfYR
453 :
774ワット発電中さん :04/02/24 23:28 ID:3dP2+vmP
すみません 先輩方々 よきアドバイスを・・・ XC9572を 汎用プログラマで焼いた時 誤ってセキュリティー(プロテクト??)が掛かってしまい 次から消去も書込みも出来なくなりました。 この石は、もうゴミ箱行きですかねぇ?
>>452 キモヲタにすらなれない田舎者は引っ込んでいた方が身のためだぞ。
455 :
774ワット発電中さん :04/02/24 23:45 ID:yGtlBZrg
セキュリティービットが落ちている状態は解除できないでしょう。 つーか出来たら意味がないんじゃ?
457 :
774ワット発電中さん :04/02/25 00:07 ID:HkiAnitS
>>455 ほんとですねぇ
説明書見たら 保護状態でも消去出来るようなモードが有りました。
実験開始してみます。
有難う御座いました・
セキュリティービットの意味はあまり無いって事か・・・。 消すだけなら出来ると言うのなら解らないでもないが。
460 :
434 :04/02/25 08:57 ID:CLVZfMKV
>>451 うーん、FFでもTとかを区別していないなぁ。TだRだとか言っても、同期FFだったら、生のFF部分に
外付けの回路が付くだけなんで、あんまり意味がないと。つまりさ、論理合成時にその外付けの
回路と周辺回路を一緒に回路を構成させちゃうので、生のFFしか使わないんだ。
で、ラッチ(つまりトリガがトランスペアレントね)も、同じことになるんだと思うんですが。その
「トランスペアレントでないもの」という意味がわかんないけどさ。D-FFはFFでエッジトリガ
という意味だとすると、ラッチとは別物でしょ?
デザインウェイブとか読んでも、ラッチとFFの意味を区別して名称を分けていないな。まあ、普遍的な
決まりごとじゃないわな。自分との関連する人の間では明確にしているんだけどさ。
>>450 Ashendenですね。サンスコ。ジジイなんで目が悪いっす・・・
と言いますか、トランスペアレントラッチを使うシチュエーションになったことが無いから よく解らんですな。 特にFPGAだと記述でDFFしか使わないのが普通でしょ。
462 :
774ワット発電中さん :04/02/25 10:39 ID:b2MAWWnh
463 :
774ワット発電中さん :04/02/25 19:53 ID:hQznJb5X
なんで大文字と小文字の区別ができないんだ。。。
>>463 VHDLの仕様です。
嫌だったらVerilogを使いましょう。
つまらないバグの元になることもあるから善し悪しかもね。>大文字小文字の区別 しかし、論理値であるZはしっかり大文字と小文字の区別があるからそれで 何時間も悩んだ経験あり。(w
466 :
774ワット発電中さん :04/02/26 00:15 ID:mspi2LpI
369=377 です。 パソコン届きましたので、さっそくやってみました。 P4-3.2GHz 1GB RAM で、13秒でした。 これなら、なんとかイライラせずにできそうです。 ご報告まで。
467 :
【内閣府】骨太抜本改革 :04/02/26 00:29 ID:7jHkeM6J
サ−ビス分野における530万人雇用創出促進チ−ム 小泉内閣 座長 島田 晴雄 内閣府特命顧問 慶応大学教授 小平 信因 内閣府政策統括官(経済財政ー運営担当) 坂 篤郎 〃 (経済財政ー社会システム担当) 青木 功 厚生労働省政策統括官(労働担当) 大田 弘子 内閣府官房審議官(経済財政ー景気判断・政策分析担当) 小川 洋 内閣府官房内閣審議官 藤原 隆 金融庁総務企画局長 瀬川 勝久 警察庁生活安全局長 高原 耕三 総務省情報通信政策局長 房村 精一 法務省民事局長 藤井 秀人 財務省官房長 近藤 信司 文部科学省生涯学習政策局長 水田 邦雄 厚生労働省政策統括官(社会保障担当) 川村秀三郎 農林水産省経営局長 林 良造 経済産業省経済産業政策局長 三沢 真 国土交通省総合政策局長 炭谷 茂 環境省総合環境政策局長 中城 吉郎 構造改革特区推進室長 宮川 正 総合規制改革会議事務室長
7jHkeM6J IDあぼーん推奨
469 :
774ワット発電中さん :04/02/26 05:55 ID:+zSYa0hw
機械工学板のALTERAとXILINXスレに書いていたんだけど、電気電子板の方がいいよと紹介されたので、 こちらにも質問。 アルテラのFPGAで、分周したクロックをモジュールに供給するにはどうしたらいいのでしょうか? 分周回路の出力を単純にレジスタのクロックに乗せていいものかと、思案中 いちおう分周回路の出力は、一度、外に出して、クロック入力端子から入れ直した方がいい、 でも、Quartus2がグローバルというクロック用の配線に、分周回路の出力を自動的に配線してくれるのでは? というレスはもらったのですが。。。 ちなみに、前者の方法は配線が決まっているので、できれば避けたいです。
471 :
774ワット発電中さん :04/02/26 10:44 ID:h25oj3eE
大文字小文字の区別が出来るツールと出来ないツールがあります。 上位側のRTL設計で区別して信号名を使うと、下流側で一緒にして しまうものがあると、設計エラーになります。 ですんで、信号名やモジュール名は小文字を使う という取り決めを しています。
D-FFのトランスペアレントモードは要するに垂れ流しだよ。 他のは、エッジトリガだったりするだろ。
データが筒抜けだから透過という意味でトランスペアレントなんでしょうね。
D-FFはエッジトリガのフリップフロップを指すと思いますが、 トランスペアレントにするということは、ラッチとして動かすとい うことですか? そうすると、このモードでは前段か後段の片側は常にスルー になるのかな。
>>461 亀レスですが
長大なランダムロジック(例:マルチプライヤ、それもWallaceなど)に
スキューを入れるために、クロックを2相つかうとか、1相でも立ち上がり
と立ち下がりでトリガするような方式を使って千切りにする方法があるのよ。
過去の技術で、(主にASIC)今はふつーに @posedge ck でいいと思うけどね。
LATは滅多に使うことはなくなった。
昔のASICをPLDに落っことしたいとか、HDLに落としたいとかいうような
課題をOJTかなにかで貰ったんじゃないかと思われ・・・・
素直にD-FF記述に書き直しなされ。
入力バッファを入れなければならない理由を教えてくださーい。
477 :
774ワット発電中さん :04/03/02 09:23 ID:e0/bz1U5
signedとunsignedにarith 使い分けわけわかめ(+_+)
479 :
名無し募集中。。。 :04/03/03 22:54 ID:kCSBMmLj
論理合成までのスレで、ちょっとスレ違いかもしれませんが、質問です。 アルテラのFPGAを使っているのですが、 フィッターをうまく使いこなすノウハウとかありませんか? いつも60〜70%くらいしか行きません。 FPGAの特性を考慮した記述というのもあると思うのですが、 簡単で効果の高い方法があれば、と思っています。 デバイスはCycloneです。
プロジェクトXの再放送見た? あの時代に回路の速度云々ってどうやって見積もってたんだろ? テンプレート使って紙の上で設計して・・・・ ほとんど神業
>>480 つい十年くらい前まで、CADを使っていない所は手計算当たり前でしたよ。(w
>>480 スタジオで手にとって見せてた回路図は、回路図というよりシーケンス図に近いような気がしましたが、
どちらにせよ気が遠くなりそうな代物ですね。
それを、一箇所短絡させるだけで計算速度が速くなることを一目で見抜いてしまう伊藤氏って・・・
故池田敏雄氏と言えば、何年か前、テレ朝が二時間番組を組んでやったドラマの方が 内容が濃くて好きだな。(w 田原宗一郎が案内役だったのがかなりアレだったけど。
>>479 LEの構造を理解して、ツールが最適化しやすいように
ソースを書いてやるといいらしい・・っていうのは
聞いたことがあるけど、それ以上はわからんです。
485 :
482 :04/03/04 00:40 ID:G4l5lWtw
あっ、池田氏だった。そうだった。伊藤氏って何で思いついたんだろ?
田原は池田の本を書いてて、プロジェクトXのテロップにもその本が紹介されて たから、テレ朝の2番煎じであることは間違いないな。 それはそうと、メンターのLeonardoSpectrumはもう開発終了なの? Precision Synthに置き換わるの?メンターのHP見てもどうもよくわからないんだけど? symplifyばっかいじってたので浦島太郎でつ。
>>486 レオナルドは前バージョンで終わりみたいね。
多分クォータス付属の合成ツールと大して変わらなくなったので
意味を失ったのではないかと。
489 :
774ワット発電中さん :04/03/04 18:01 ID:9RW/EQQg
以前のクォータスの合成ツールは、代理店の人も「あれはおまけですから」と言って勧めない、 構文解析すら怪しくて使えない代物だったけど、 今のはレオナルド並に信用できるの?
491 :
774ワット発電中さん :04/03/04 18:57 ID:fLF76plK
>>489 漏れは直接使ってないけど、かなり良いと聞いてるよ。
>>489 3.0になって、Leonardoよりよくなくなかった部分も少々あれど
総合的な品質はぐっとよくなったとおもうよ。
WebEditionしかさわってないケド。
富士通はIBMの真似して今後サービス業としてやっていきます。
495 :
774ワット発電中さん :04/03/06 18:58 ID:5AiiViw/
無料の合成ツールがこれだけ使えるなら、 有料のツールはどこが違うのでしょうか?
Cycloneでも使用率90%あたりからは、やっぱEDIF食わせないと Web版では運まかせになるね ちょっと変更しただけなのに。。みたいなことが多い。 ロジックロックとやらを使えってことだろね。
497 :
774ワット発電中さん :04/03/07 10:15 ID:KHqQ03gQ
>>496 > Cycloneでも使用率90%あたりからは、やっぱEDIF食わせないと
> Web版では運まかせになるね
Cycloneで使用率90%も行く!?
EDIFを経由した方が使用効率は上がるの?
HDLからダイレクトに配置配線まで持ち込んでるけど。
498 :
774ワット発電中さん :04/03/07 15:54 ID:hhqxdleh
>>487 FもNもPC事業でひとやまあてて儲けたのは事実だけど
根幹は電電公社の通信インフラ事業で食ってる会社だよ
PC事業や汎用機、大型計算機はあくまで副業でしょ
実際、PCが業績に貢献してたのは100年以上の社史の中では
煌き程度の時しかなかったし。
499 :
774ワット発電中さん :04/03/07 15:57 ID:hhqxdleh
>>479 手動でマクロセルの配置を地道に替えていく
verilogやVHDLを書くよりも、この作業が
重要だと思うよ、これをやるかやらないかで性能に
雲泥の差がでるかも・・・・
最後の最後でパフォーマンス絞り出せるなら俺も有料ツール使いたい(´・ω・`) ちなみにターゲットはStratix, Cycloneす。 EP1S10で100%近く使用すると166MHzがイイトコ。
昔Xilinxでそれをやっていたけど(っていうか、あのころは 手作業配置配線しないと満足に動かなかったような・・・) 結構泣いたなぁ。 私の地道な熱心さはあの時使い果たした気がする。
502 :
774ワット発電中さん :04/03/07 22:23 ID:KHqQ03gQ
>>499 フロアプランナーですか?
一度も使ったことないし、一度も開いたことない。
結構地味な作業だと聞いたけど。
>>499 そうですね。レイアウトをやって差を出すという方向でしょう。
俺は逆にISE/Quartusはディバイスフィッタとしてしか使ってないんだけど、 Quartusのシミュレーション機能とかまともに使えるようになったの? ISE単体ではシミュレーションってできないよね? 使うディバイスごとにツールの細かい使い方まで覚えてられない。 Modelsim覚えるだけでも相当面倒だったしな。WindosベースでもTcl/Tk持ち込んでるし。
実際Quartus 3.0 立ち上げてみたけど、これってシミュレーション実行するのに ベクタファイル作らなきゃいけないわけ? Verirogで作ったテストベンチはどうやったら実行できるのこれ?
マニュアルざっと見たけどシミュレート用の波形エディタいじって入力波形作ってベクタファイル用意してっていうふうに 書いてるように思うんだけど?まさかそんなアフォなやりかたしかないわきゃないよね?
507 :
774ワット発電中さん :04/03/08 07:36 ID:2krsLDez
ベクターウェーブフォームファイル作ってる。 HDLからの変換はわからない。
508 :
774ワット発電中さん :04/03/08 16:09 ID:4PGXIswz
RTLをコンパイルしてからFPGAにネットとして渡すのと、そのデータから VHDL/verilogのゲートモデルを吐き出して、modelsimを掛けるという 方法を取る事が出来ます。 FOGAメーカーはverilogとVHDLのセルライブラリを供給しているので それを使用します。
>>507 ISEのほうはテストベンチの雛形作ってくれる機能はあるけど、
Quartusの方はそれすらないのかな?使えねー。やっぱりQuartusの
シミュレーション機能はおまけだね。
ISEのほうも実質はmodelsimに頼りきりなわけだけど・・・
>>508 論理合成後、あるいはポートマッピング後の遅延時間見積もりのシミュレーションのこといってるわけ?
論理合成後のシミュレーションならディバイスフィッタなしでもできるし、
ポートマッピング後のシミュレーションならディバイスフィッタがないとできないけどけどそれがどうしたの?
510 :
774ワット発電中さん :04/03/08 22:52 ID:jXNvaHWY
>>509 Model Simってそんなに凄いのけ?
ISEにくっついてるのはただでしょ?
昔は論理合成ならQuartus(Leonardo)、シミュレーションならISE(Model Sim)と言われていたらしいけど
製品版のModelSimは、もの凄く機能豊富で使いやすいソフトだよ。 普通に買ったら何百万の世界ですが。
512 :
508 :04/03/08 23:38 ID:x2gi6ump
>>509 modelsimは論理シムレーションのこと。 >遅延時間見積もりのシミュレーションのこといってるわけ これはスジ違い。 ACパラメータは合成時にまかせる。ライブラリを使用したシムレーションは可能・・ やらんけどね。メモリやPLLのライブラリを使用して、modelsimでRTLシムレーション するが。
513 :
509 :04/03/08 23:43 ID:x2gi6ump
>>511 SEは300万円ぐらいだけど、PEは数十万円だと思うよ。
機能はそんなに変わんないかな。うちはSEをLINUX/Solaris
で使っているが。
コンパイルはQUATUSではなくて(前にはFPGAコンパイラII
を使用していたが)、いまはシンプリシティです。300万円ぐらい
するよ。
うちは、シンプリファイPROがありますが私は使ってないです。(w ModelSimも客先の物が自由に使えるんで買うかどうかはもう一人のメンバーと 大分もめたのですが結局、買わずにすませています。 PEが100万以下なら欲しいところだけど、償却出来るか微妙だな。
>>513 何をわけのわからんこと言ってるんだよ。
modelsimではビヘイビアレベルのシミュレーションもできるし、
論理合成ツールとデバイスメーカから提供されてる遅延情報ファイル使って
遅延時間のシミュレーションもできるだろうが。お前は508でそのことを言っ
てるんじゃないのか?
>>514 modelsimはやっぱり使いやすいよ。$displayとかわざわざ書かなくてもちゃんと波形出力してくれるし。
フリーのicalusだとこうはいかない。仕事で使うんならその手間が省けるだけでも助かるんじゃない?
でも、ビヘイビアのシミュレートだけならicalus+gtkwaveでもかなりいけるみたい(手間だけど)。
>>513 何をわけのわからんこと言ってるんだよ。
modelsimではビヘイビアレベルのシミュレーションもできるし、
論理合成ツールとデバイスメーカから提供されてる遅延情報ファイル使って
遅延時間のシミュレーションもできるだろうが。お前は508でそのことを言っ
てるんじゃないのか?
>>514 modelsimはやっぱり使いやすいよ。$displayとかわざわざ書かなくてもちゃんと波形出力してくれるし。
フリーのicalusだとこうはいかない。仕事で使うんならその手間が省けるだけでも助かるんじゃない?
でも、ビヘイビアのシミュレートだけならicalus+gtkwaveでもかなりいけるみたい(手間だけど)。
>>516 使いやすさは十分承知してまする。
自営では例え100万以下でもなかなか手が出ないものなのですよ。
色々と資金的に気にすることが多くて。(w
518 :
509 :04/03/09 19:40 ID:GPc0n98u
>>516 >論理合成ツールとデバイスメーカから提供されてる遅延情報ファイル使って
>遅延時間のシミュレーションもできるだろうが。
これは遅延時間のシムレーションじゃないよ。遅延時間のシムレーションと
いう言い方は、タイミング解析のことを指すんですわ。シノプシスのプライムタイム
(名称が変わったかな?)が有名ですた。
たぶん、貴方が言いたいのは「遅延データを含んだゲート(セル)モデルの
論理シムレーション」じゃないの?いわゆるSDFデータを含んだ論理シムレーション
を指しているのでしょ?
519 :
509 :04/03/09 19:44 ID:GPc0n98u
>>517 modelsimではなくて、もうすこし安価な論理シムレータもあります。
ソリトンだかが扱っていたと思うよ。Active-HDLですね。
522 :
774ワット発電中さん :04/03/10 20:13 ID:FzMGjkr0
FPGAで、同時に使われることのない複数モジュールから、リソース節約のために、 同じ加減算や比較回路を各モジュールから呼び出すように回路を書いてみたつもりが、 それぞれのモジュールに組み合わせ回路を持たせていたときよりも大きな回路になってしまったよ。 なんで?
>>522 憶測だけど、遠い場所にある回路まで線を引くために、
途中の領域がムダに使われてるんじゃない?
ソフトで例えれば、サブルーチンを一個にまとめたら
NEARコールが届かなくなってFARコールになってしまい、
コードサイズが増えるみたいな感じかな?
(ソフトの場合そんなに極端に増えはしないけど)
524 :
774ワット発電中さん :04/03/10 22:21 ID:KWqKLkci
>>522 セレクタの分だけ、回路サイズが大きくなったとか?
FPGAならLUTだから、使用効率は変動するぞ。
特にビット数が大きいときは。
本当に演算回路が一個だけか調べた方が良いのでは? フロアプランを見て回路の分布を確認するのも一つかな。
>>521 スレ違いだとは思うけど、シムレータって一般的な呼称なの?
リアルでこの呼び方をした人は一人しか知らない。
527 :
緊急のお知らせ 七月中部関東に核が襲う :04/03/11 01:33 ID:aGEtETrZ
<< 【緊急】避難しつつ東海原発浜岡の停止に参加・友人に広めデモ参加お願いします >> チェルノブイリと同様に偏西風に乗って、七月頃中部地区関東地区に核の雨が拡散、風向き次第では関西地区に拡散、何千万人が癌に侵されてしまいます。 ●陳情詳細は2チャンネル臨時地震板のトップ・・【東海】原発浜岡なんとかスレ【地震】・・参照して下さい。 トップリンクには・・とめよう裁判の会(訴訟団募集のお知らせ)で訴訟団加入申しこみお願いします N0. 88には・・メ−ルで国内・外のマスコミにメ−ル攻勢 NO.103には・・メディア偏向報道への怒りメ−ル攻勢 NO.134には・・デモ参加(至急募集) 原告団・メ−ル攻勢・デモにならないと国会も動きません。原告団は300名余、メ−ル数も不足、デモ予定もない ●中国ODAよりも地方へ企業誘致の税源移譲、全国の津波防波堤や原発、石油コンビナ−トも危険整備すべき問題点でメ−ル等に入れてください。 ●七月東南海地震、5月か9月関東大震災(火災旋風で首都消滅)NO,35参照、安全圏に避難しつつ攻勢もかけてください。 詳細は世界の地震学者・各新聞社共同制作本 ニュ−トン「せまりくる巨大地震」ご一読を ●ニュ−トンで全国の活断層・過去の2次被害状況把握できます ★日本人の平和・安全・人権・財産・領土を脅かし、他国援助重視の日本政府に断固反対!! 韓国>>>日本亡国! 2チャン廃止追い込む日本政府に反対!!
528 :
522 :04/03/11 07:01 ID:4afVijgQ
コンピレーション・レポートを見たら、 元の回路はレジスタ・オンリーのLCはほとんどなかったのに、 加減算や比較回路を共用した新しい回路では、 レジスタ・オンリーだらけだよ。 なんで?
529 :
521 :04/03/11 09:16 ID:GYr/RLi2
>>526 simulation シムレーション
simulator シムレータ
yahoo USA で logic simulator でもくぐってみなされ。
531 :
526 :04/03/11 18:19 ID:QPKz07EA
>>529 いや、simulatorは分かるって。
>>530 みたいには、思わないけど、それのカタカナ表記は
シ「ミュ」レータの方が一般的じゃない?
>>529 はフォトカプラをホトカプラと言うに100万モナー
534 :
529 :04/03/12 00:05 ID:EpIQhPlj
>>513 sim・u・late [simjuleit]
発音記号では「みゅ」ですね。そーかぁ・・米国で働いていた時は
「む」と聞こえていました。。。変えるかな。
535 :
529 :04/03/12 00:07 ID:EpIQhPlj
言い訳を言うと・・・この「y」の発音は日本語読みにはならない。 ・・弱いんじゃなかな・・ちゃうか!?
536 :
774ワット発電中さん :04/03/12 00:13 ID:YMNMeBKi
>>528 レジスタだけ分離されたんだな。
組み合わせ回路を共用することを狙ってHDLソースを書き換えたのなら、
狙い通りになってるわけだw
アメリカに行った時アメ公が使ってたのは、シミュレータってカタカナ語っぽい発音でしたよ。 日本人には難しい発音だと思うけどね。 私は、「シム」とか「シミレーション」と言う事が多いです。 色々と客先、友人関係で聞いた感じでは 「シミレーション」て言ってる、若しくは私がそう聞こえる発音をしてる人が多い感じ。 ・・・どうでも良い話ではありますが。(w
538 :
774ワット発電中さん :04/03/12 08:57 ID:yC0qlAm5
「y」じゃなくて「j」でしたね。ジジイは目が悪いので。 かつては「シュミレーション」と言って笑われました。
539 :
774ワット発電中さん :04/03/12 22:18 ID:65cYx/C8
std_logic_vectorてintegerの間で、 なんでキャストしなくちゃならんのだ? 同じでいいだろ?
>>539 汚いよなぁ・・この表記。verilogに戻りたーい。convをしましょう。
もういいじゃんVHDLなんかほっとけば。 いったい何だったんだVHDLって?
542 :
774ワット発電中さん :04/03/14 02:35 ID:TeNkFUhE
vhdlやverilogをキーワードにハローワークのHpで職を検索してみると いっつも同じ会社が年から年中募集している。 そういうのは先物取引の電話セールスマンやフリータと同じで 人材を使い捨てにしている会社ということなのだろうか?
543 :
774ワット発電中さん :04/03/14 03:04 ID:K0ak5oMq
当たらずとも遠からずだと思う。 年がら年中募集しているのは、ちょっと変だと思ってまちがいない。 よほど出入りの激しい会社でしょう。人材派遣業とかね。 たとえば人材派遣会社は「人送ってなんぼ」の世界みたいなので、 中途で入社した人の希望する職種の派遣先がスグには見つからず、 「ひとまず頑張って」と、とりあえず押し込む。 一度押し込んだら、ローテーションなどしたくないので、社員が 配置変え希望を出しても、なかなか動きが悪い。 よって社員は辞めていく。そんなケースがとても多いな。
544 :
774ワット発電中さん :04/03/14 08:30 ID:tAIva3jZ
再びschemaに戻る。
545 :
71 :04/03/14 11:02 ID:LecCArQB
24歳職歴なしです。 回路の設計関係(ディジタル・アナログ)で就職できるでしょうか? SEやソフト系はよく未経験者OKとかみかけるのですがハード系は どうなんでしょう?
546 :
774ワット発電中さん :04/03/14 12:06 ID:2wDKT5zl
>.540 ばかじゃね? Integerに,レジスティブHや不定があるかってーの。 VHDLに限らずVerilogでもcasex,不定を扱う構文があるが明示的にcase とわけてるだろう。 おまえにはSystem-Verilogなんて絶対に使えないだろうな。 AHDLがいいんじゃねーの?
547 :
540 :04/03/14 14:03 ID:isOsPhg5
>>546 VHDLでintegerを使うケースはあるよ。例えばだ、メモリなどのライブラリ記述とか
ステートマシンなどなど・・あるいはテストベンチなどだ。こういった場合はconvを
多量に使わないといけないので記述が汚くなる。そういったのもstd_logicで記述出来
ないし、面倒なのはファイルを使用したときに、c言語で言う、8ビットサイズのデータ
の使いだな。
まぁ、回路記述だけならintegerナシでもいいけど、使いこなすことが出来る連中は
integerを使うのさ。使わないと必要な機能を書き込めないんんだよなぁ・・・integerは
使いにくいけどさ。
言い換えれば、「VHDLでintegerを使えない奴は、使えない奴」かもしれない。
という話をしているんだね、
>>540 ではさ。
system-verilogの話をしているわけでもないし、LSI屋なのでAHDLなんていう、
ローカルな話は知らんな。
Cには「不定」はないからいいもん! と強がってみせる。 (なんで不貞が先に出るんだろう・・)
>>548 符号付き整数をオーバーフローさせると不定。
負の数の右シフトも不定。
など、Cにも不定がある。
(涙 マジレスせんでくれぇ〜
551 :
774ワット発電中さん :04/03/14 22:20 ID:2wDKT5zl
>こういった場合はconvを多量に使わないといけないので記述が汚くなる。 そのためにstd_logic_1164.allのパッケージがあるんだろ? ひょっとしてconvしなければ方変換が出来ないなんて思ってない? まいったなぁ...これだから...
552 :
774ワット発電中さん :04/03/14 22:22 ID:2wDKT5zl
>>551 書きかけ
>LSI屋なのでAHDLなんていう、
>ローカルな話は知らんな。
これだから...「なんとか屋」ってやつはなぁ...
553 :
774ワット発電中さん :04/03/14 22:25 ID:lGY9RB+R
system-verilogってVHDLに近づいて行ってるじゃないかよ!
554 :
540 :04/03/14 23:32 ID:isOsPhg5
>>551-552 >>546 もし分けないが、何を問題にしているかが理解出来ません。整理すると、
以下の通りになります。結論から言うと、std_logic_vectorてinteger間で
キャストするのは、std_logic_arithかstd_logic_unsignedであって、貴方が言うような
std_logic_1164には無いとは思いますが。
>>551 /552/546 さん はstd_logic_1164を使って具体的にはそうやって変換する
のでしょうか?
--
(1) 元は
>>539 さんの
>std_logic_vectorてintegerの間で、
>なんでキャストしなくちゃならんのだ?
>同じでいいだろ?
(2)
>>540 の
>汚いよなぁ・・この表記。verilogに戻りたーい。convをしましょう。
(3)
>>546 の
>.540
>ばかじゃね?
>Integerに,レジスティブHや不定があるかってーの。
>
>VHDLに限らずVerilogでもcasex,不定を扱う構文があるが明示的にcase
>とわけてるだろう。
>
>おまえにはSystem-Verilogなんて絶対に使えないだろうな。
>AHDLがいいんじゃねーの?
(5)
>>551 >こういった場合はconvを多量に使わないといけないので記述が汚くなる。
>そのためにstd_logic_1164.allのパッケージがあるんだろ?
>
>ひょっとしてconvしなければ方変換が出来ないなんて思ってない?
>
>まいったなぁ...これだから...
555 :
774ワット発電中さん :04/03/15 22:19 ID:17tjte1l
540さんが揚げ足とってるのかもしれんが >std_logic_1164.all >std_logic_arith.all >std_logic_unsigned.all 「フツーのLSI設計屋」ならセットで使わないものなのか? 1164とそれ以外のライブラリアンの違いぐらい、VHDLやってりゃ誰だって知ってるだろう。 確かに1164とnumericしか使わない設計コードも見たことはあるけれど、レアケースだと思うよ。 ようはフツーの感覚ならわざわざconvしなくても使えるし、それが理由で 「VHDLはキタネー」というのは違うんでは?と言っているんですが。
556 :
774ワット発電中さん :04/03/16 09:00 ID:s33tAOgX
>>555 さん
>フツーの感覚ならわざわざconvしなくても使えるし、
すいません。std_logic_vectorとintegerをconvを使わないで
変換(キャスト)出来るのですか?マジで知らないので、
教えてください。
557 :
774ワット発電中さん :04/03/16 21:47 ID:kMLH/JEK
やっぱりVHDL厨は、共産社民議員みたいな奴ばっかりだなw
558 :
774ワット発電中さん :04/03/16 22:36 ID:KF01RL0F
VCSとかNCとか使ってる人はいないの?
単に型が強い言語ってだけでしょ Cのshort→longみたいな暗黙のキャストが有害ってのはよく理解できる ビット幅を意識してコーディングしたいから
パルテノン使ってたよ、俺。
562 :
774ワット発電中さん :04/03/18 01:33 ID:0jDdQp8P
>>545 派遣ならばあるんじゃないですか?
あまたとある派遣会社に問い合わせてみてはどうですか?
注意点としては、ちゃんと派遣先の仕事の内容を確認してください。
何にもスキルがのびずに歳だけとっていってしまいます。
>>561 そうそう、SFL というやつ。
論理シミュレーション+合成+合成用ライブラリ がセットに
なってて大学研究室ならただで使えたんだよなぁ。
パルテノン デザインコンテストにも応募したなぁ。
論理圧縮およびテクノロジマッピングに関してのいい文献は ありませんか? ていうかこのへんノウハウとか特許の鎌足だろうなぁ いちばん有用だった読み物は、日本語のものだと 九大の松永助教授のシラバスでした。 英文だともっとすごい文献が転がってるかしら?
565 :
774ワット発電中さん :04/03/19 23:28 ID:qfhUEwPw
俺論理圧縮忘れた。 いいのだろうか?
566 :
774ワット発電中さん :04/03/23 20:19 ID:szygem7e
論理圧縮ねぇ 論理合成ツールにお任せだもんな そんな細かいとこまで見てないよ
567 :
MyDoom被害者(深刻) :04/03/23 21:33 ID:4hl+gKAy
一山当てようと思って、PowerPCの互換IPを書いています。 設計仕様を考えるのも時間が勿体無いので、バリバリのハードコーディング でグリグリ記述しています。構造は僕の頭の中にだけボンヤリとイメージに なっていますが、ちょっとサボるとソースファイルのどこに何を書いていたのか 思い出すのが大変です。 ここまで苦労して書いてきたので、この勢いで完成させたいです。 シミュレーションしながら確実に設計しようとしていますが、コア部分(MMU, I-Cache, D-Cache, FPU無し)の3割ぐらいまで書いたところで、デバッグに 苦戦しています。あっち直せばこっちが、こっち直せばあっちが、とパッチを 当てている内にソースファイルが3倍にも膨らんできました。信号名も追加に 次ぐ追加の為、とうとう命名が面倒になって、wire1, wire2とか、reg1, reg2の ように追加信号に命名しています。 modelsimの評価期間中に完成させたいんですが、こんな状態で1ヶ月はまって います。皆さんに相談する為にも、ここにRTLを少しずつコピペしていっても 良いでしょうか?量だけは荒らし行為と間違われそうなぐらい一杯あります。 うまくいけば今年はお金持ちになれるかもしれないと信じて、頑張っています。
公開しちゃったら一山当てられないんでは?
そのつもりでここに聞きに来る程度なら(ry
571 :
774ワット発電中さん :04/03/23 23:26 ID:4hl+gKAy
>567 MyDoomに引っかかる程度の技術者のレベルなんて・・・。
>>567 sayuriというCPUを設計したとほざいた破産者を思い出しました(w
>>572 ×破産者
○元破産者(完全免責されたので)
574 :
774ワット発電中さん :04/03/27 02:48 ID:wNKAfPPJ
>>567 いきなりHDLを書いたのか?
素人はきちんと机上設計から始めるのが鉄則。
でないといきなり削り始めたり、死んだ魚の目をする羽目になるぞ。
ま、わかる範囲で突っ込みいれるので、
部分的にでもソースとTBを公開してみれば。
ちょっと目が霞んで、いまは机上設計できません
577 :
774ワット発電中さん :04/04/01 21:37 ID:p/wKhUaB
IBMがPower-PC のソース(HDLソースのことだと思う)を公開する。
日経オンラインより。
残念だったね
>>587
PowerPCじゃなくて、Powerプロセッサだな
Verilog-HDLを略してVHDLって言う って思っている人は結構多いと思う、今日この頃。 コンフィギュレーションROMが必要なのがFPGAで、要らないのがCPLD とか。
>>555 >std_logic_arith.all
>std_logic_unsigned.all
をセットには使わないようにしてます。std_logic_arith.all だけにして、面倒だけど
演算は全てunsignedかsingnedを表記するようにしています。こうしないと、
正確な表記ではないんじゃないかな・・・
ま、numeric_stdを使うのがスジですが、synopsysがサポートしていないらしい
ですから。
で,結局SystemCは終了したわけね. シノプがあきらめちゃもう終わりだ罠. modelsimもSystemCはオプションになっちゃったしね.
Verilog 系に収束していきそうだな
べりろがなおいらを助けて下さい。 VHDLで if (hogehoge = "0" ) then foo <= ( others => "0"); else 以下略 endif; とあるのでつが、foo<=(others=>"0")の部分がわかりません。 どう解釈すればよさげなのですか?
>>584 ダブルじゃなくて、シングルな。
この記述方法って、Verilog2000では可能になったの?
ビット幅指定しなくていいので、とっても便利なんだけど。
586 :
584 :04/04/14 09:02 ID:HcnkAUJT
>>585 あ、シングルクォートじゃないですね。確かに。でも意味は判るはずなのでスルーして欲しいです。
記述の意味が判っていらっしゃるようなので、べりろがなおいらにわかるように構文の解釈の仕方を
教えてもらえませんか?
「Verilog使いなのでVHDLのこの表記の解釈の仕方が判らない。VHDL使いの人助けて」
と書いたんですが、何故にVerilog2000の話になるのかわかりません。
だいたいVerilogでは 「=>」の記述って無いので。
VHDLの解説本みてもothersはcase〜when内での使い方しか書いてないので、困惑しているのですよ。
585さん、解説お願いします。
>>586 > foo <= ( others => '0');
fooは、レジスタなんでしょうね何bitかの。この記述は、fooのbit幅に関わらずを全部「0」で
埋める記述です。 ビット幅分 ("000〜000") って記述は間違いやすいし。
588 :
584 :04/04/14 11:07 ID:HcnkAUJT
>>587 dクス
意味合い的にはcase〜whenの「others」と違うんですね。
>>588 結構近い意味だと思う。こんな記述も許される。
foo <= ( 5 =>'1' , others => '0');
bit5以外は0にするという意味。
foo <= (others => '0');
は最初の部分がなくなった形。
whenの場合もそれ以外ということだから、意味合い的には似てる。
>>582 「今のうちに売ってしまわないと」と思ったのかどうかはわからないが、
どっかのセミナー行った時にメンターの営業が強力に推してた。
>>581 漏れがVHDL使ってたころはそうしてた。確かにコード量は増えるけど、
慣れてしまうと面倒とか汚いとは思わないけどな。
それよりVerilogも3.0や3.1になって改善はされているけど、Verilogの
あいまいさの方が気になる。
591 :
774ワット発電中さん :04/04/17 17:37 ID:U6nn5NRg
自分はVHDL使いですが、RTL記述よりは、ビヘイビア(アルゴリズム)記述や テストベンチを作成するほうが、燃えます。 デザイン(回路設計)のほうは、文献、雑誌、ウェブなど、事欠きませんが、 なぜか、テストやアルゴリズムの文書はむしょうに少ない気がします。 僕なんか、ビヘイビア記述の参考にするのは、半導体ベンダがくれるシムモデルよ! それって悲しくない??
592 :
774ワット発電中さん :04/04/17 17:39 ID:U6nn5NRg
あと皆さんはコンパイラ時にmakeのようなツールはどうしていますか??
593 :
774ワット発電中さん :04/04/17 17:45 ID:U6nn5NRg
あまり論理合成には興味がないです。 VHDLの記述手法のほうに興味がいってしまいます。 LRMなんかを読んでみるとわかるけど、 合成ができる文法なんて、ごく一部しかないんだよね。 しかも、会社で、書き方のテンプレートなんかあったりして、 process(clk, reset) is begin foobar end process; しかつかったらだめだとか。 組み合わせ論理はコンカレント文でしかだめとか。。。 なんか、創造力を摘み取られている気分だよね。 家で趣味でやるしかないのか。僕の人生
594 :
774ワット発電中さん :04/04/17 17:49 ID:U6nn5NRg
vhdlって ポインタも使えるんだよ! access文ていうんだけど、 これで大きいメモリ書いても、シムはサクサク高速で動作するぞ! あとstd_logicは{0 1 L H X U Z} だっけか、1つのビットについて7 つも値を予約するから、シムが遅くなるよ。
>>590 Modelsimは5.8cになってSystemCは完全オプションになったね。
5.8になってSystemCを推すのかと思ってた矢先、方針転換なのかな?
牽引役のSynopsysがあきらめちゃもう終わりだな。
Synopsysも牽引してるしModelsimでも標準でサポートしてるSystemVerilog
だろうな。ちなみにVHDLは一足早くあぽーんしてる罠。
596 :
774ワット発電中さん :04/04/17 19:41 ID:Oq+aU2ZS
>>593 Writing Testbenchesという本を読んだ事はありますか?
ttp://janick.bergeron.com/wtb/default.htm テストベンチ向けのHDL記述法が載っています。
VerilogやVHDLで抽象データ型を使ったりするところが萌え〜です。
私も最近は回路設計時とテストベンチ記述時は意識を切り替え、
回路では並列処理を意識してHDLを書くけど、
テストベンチではなるべく(ソフトウェアプログラムに近い)
シーケンシャルな記述になるようにしています。
けど上の本の2版ではeやVeraを使うようになっているように
HDLで抽象な記述をするのには限界が有りますね。
これからは、SystemVerilogに期待かな?
何だかんだ言ってテストベンチと回路の設計言語は同じ方がイイ!
598 :
592, 593vhdl使い :04/04/17 21:23 ID:U6nn5NRg
>>597 makefileは手書きですか?やっぱり。それともEDAの自動生成機能?
>>596 確かに今のhdlではこれ以上の抽象化は無理かもしれません。
systemVerilogかなあ。ご時世は。。。
設計とテストが同じなのはやっぱりうれしいですよね。
ソフトエンジニアはだから、c言語設計に期待しちゃうんでしょうね。
その点、ハードエンジニアにはあまりうまみがないかも。
cのデバグ環境が使えるとか。。。そんなのまた覚えること増えるんかいみたいな
感じだものねえ。
veraとかe言語てのはデザインウェブで読んだことはありますが、
どのようなものなのでしょうか?興味はありますね。
最近回路のテストの文献ばかりよんでますが、なかなか奥がふかいなあと
おどろいています。
599 :
592, 593vhdl使い :04/04/17 21:38 ID:U6nn5NRg
>>596 amazonでのぞいてきました。
なかなかよさげかも。
洋書のハードカバーかっちょいいからなあ。
>>593 それは仕方がないよ。VHDLやverilogは論理合成以前に定められた
ものですから。
それでもAbelから比べたら随分進化したね。
>>596 あ、そうですね。
回路記述と環境記述ですから、書き方を全く別に考えています。
回路記述は正確かつ論理合成が掛かるもの、環境記述は
言語系に近い書き方・・・になるのかな。integerが主体に
なりますしね。
verilogではC言語のポーティングはできるんだけど、VHDL
ではどうなんだろ?調べていないから、わかんないな。
603 :
596 :04/04/17 23:17 ID:7Pa83KUB
>>598 make は手書きです
Veraやeは、オブジェクト指向を使って一度書いたテストベンチを
再利用し易くなっているのと、適切な制約の範囲でランダムな
テストスティミュラスを作ってくれる便利な構文とシミュレーションエンジンを
持っているのが特徴だと思います。
また、どちらも検証時にエラーを発見し易くするプロパティ記述の仕様を
独立した形で持っています。
Veraはちゃんと使った事が無いのだけれども、文法的にはc/c++に近いみたいです。
eは独特だけど強いて言えばJavaに雰囲気が似てるかな?
あと後発でフリーのTestBuilderはveraやeがやってることを、
C++の構文でやってしおうという、ある意味SystemCに近い発想のツールみたい。
SystemVerilogはテストベンチ記述言語としての機能を貪欲に取り込んでいる
みたいだけど、誰がインプリしているんだろう?Synopsys?
604 :
vhdl使い :04/04/18 00:57 ID:tmnvetum
>>603 accellaという、ハード記述言語の標準化団体がシステムverilogの標準化を
進めてるみたいですね。
企業や専門家の集団のようです。
systemVerilogの仕様をざっと見たんですが、
型のあいまいさがなくなったり、signed, unsignedができたり、
しっかりした言語体系になってますね。
システム設計に対応できるようにか、幾分抽象レベルを上げた記述も
できるようになってるみたいです。
いまからがんばって、使えるようになろうかな!?
フリーのリファレンスシミュレータとかないのかな
回路設計をやったことないけど、なにかいい教材ある? 一応FPGAボードでも買ってみようかなぁ・・・・ って思ってますけど。。
607 :
774ワット発電中さん :04/04/18 11:07 ID:K1AUBuZh
あげとこ
608 :
vhdl& ◆uJ0TTc104U :04/04/18 15:03 ID:tmnvetum
>>606 ラティスやアトメルなんかはスタータキットやってるよ。
商社を通して買うのはめんどくさいけど、2万以下ぐらいですか。
あとcq出版のやつヒューマンデータのやつ、はザイリンクス、アルテラ
両方あるんじゃない? ちょっと高いけど。。。
カードサイズの小さいのもちらほら出てきてるみたいなので、
検索かければ、ヒットするとおもいます。
SystemVerilogはModelsimが対応してるからSimはできるけど、 肝心のFPGA で使える論理合成ツールある? PrecisionもSynplifyもサポートしてないだろ?
すみません、質問させてください。しかも文法的なことです…厨スマソ 他者担当モジュールから80個の16bit変数を受け取る仕様なんですが input [15:0]hennsuu00; なんて80行書きたくないです。(゚Д゚)コルァ!! input [15:0]hennsuu[00:79] みたいに配列でmodule間受け渡しってできないんでしょうか。 調べてたら配列はreg宣言でしか出てこないし…あぅ それとも仕様がアホなのでしょうか。
>>610 Verilog2001かSystemVerilogならできた気もするけど、
昔のVerilogは”配列はメモリーだ!"という発想だから出来ないと思いまつ。
input [16*80-1:0] hennsuu;
として中でバラスしかない(wireにも配列使えないけど)と。
または、80個の変数がレジスタバンク的なものなら、
素直にモジュールの外にセレクタを置いた方が良いと思います。
ブロック分割のダメっぽさをアピールする為に
80個input並べるのも、いいとは思いますけど。。。
>>611 ありがとうです!!!!
あぁぁあ、wireも配列使えないのですね…。
相方moduleが80個レジスタ持ってて、こちらは
80個のメモリのB入力にそれぞれぶち込む(係数)ので
input [15:0] hennsuu00,hennsuu01,hennsuu02…
が行数少なくていいかなぁと思いました。駄菓子菓子
上位moduleのインスタンス宣言が笑えることになりそう、
なので
>>611 さんの
input [16*80-1:0] hennsuu;
これでいこうと思います。相方moduleにも合わせてもらうとします。どもでした。
ていうか、verilogってbit幅制限あるのでしょうか…調べてきまつ。
ここSystemVerilogがいいって言う人多いみたいね。 で、結局SystemCは掛け声だけで終わるのか? ソフト屋が見限った言語をベースにしてもなぁ。
615 :
vhdl& ◆BL0Z2aP/2M :04/04/21 13:51 ID:y7FEsFB3
>>614 c++ってのが、ネックだとおもう。
cなら、何とか読めても、オブジェクト指向とかクラスの概念とか。。。
ちょっと、ハード技師連にはつらいとおもわれる。
ソフト技師がわでも、結局、c++が拡張された、新しい言語てな感じで、
いまいちしっくりこないんでは??
ソフト連の意見が聞きたい。
>cなら、何とか読めても、オブジェクト指向とかクラスの概念とか。。。 ソフト屋ってホントバカの一つ覚えで二言目にはオブジェクト指向とか デザインパターンがどうとか言いたがる奴多くね? ソフトなんて所詮ハード動かす手順なのによ。
>>616 頭悪そうだなw
>>615 SystemC程度のクラスやら継承の概念なら誰でも理解できる。
どうせ自由度はそんなにないんだから、自分なりの型を作ってしまえば
HDLとそう大差はないといえる。
>>615 C++は確実にCよりまし。ただし意味不明に複雑な部分があるので分からない機能は
使わないようにするとよい。わかるようになってから使う。
クラスに関しては最初の理解はハード技術者のほうが旧いソフト技術者より簡単なのでは?
entity = classだと思ってよい。オブジェクト指向とは言い難いけど。
実際に生成される“回路”はオブジェクトそのものなんだが。 値も処理方法もすべては回路が知っている.....
そふと屋でつ。 C++は、言語ヲタクが懲りすぎてしまった言語でつ。 ソフト開発のプロジェクトで開発者は玉石混合なので、 シンプルなのに先進的な考えを取り入れた言語が好まれまつ。 C++をC++らしく開発したくても開発者の頭数が揃わない。
621 :
774ワット発電中さん :04/04/22 07:06 ID:fdu5U/Db
あー、なんでだー。Xilinx ISEで回路記述中なんだけど、 どうしてもCLK,RSTnが消されちまう〜。誰かお助け。 ↓特に記述間違えてないですよね。 module top(led, CLK, RSTn); output [7:0] led; reg [7:0] led; input CLK; input RSTn; always @(posedge CLK or negedge RSTn) begin led <= 8'b10101010; end always @(negedge CLK) begin led <= 8'b01010101; end endmodule Synthesizing Unit <top> Related source file is top.v. WARNING:Xst:647 - Input <CLK> is never used. WARNING:Xst:647 - Input <RSTn> is never used. Unit <top> synthesized. 使ってるちうに。
>>621 RSTn アサート時の条件が抜けておるわこのオタンコナス!
クロックに対してレジスタの値が変化しねえわこのオタンコナス!
同じくロックソースで同一のレジスタに値をセットすんじゃねえこのオタンコナス!
ひょっとして釣りなのか?
Simでは通るかもしれんが,論理合成できるか? led
624 :
622 :04/04/22 15:21 ID:cw9iE7O9
よく見たら… 同じクロックソースで posedge negedge 両方フィットできる デバイスは多くないぞ、ちうかシンセシスの段階で蹴られるぞ こ〜〜〜のっ、オタンコナス!!! 点滅させたいなら素直にカウンタ久米
>>622 RTLというのは回路図そのものなんだから、
まずは回路図を書いてみるべし・・・
あまりにも初心者過ぎるぞ!
C++なんかは便利なとこがあるけど、正確さということで Cにしてます。cでモデルを書いてRTLを書くと言う仕事 のやりかたなんで、Cは必須です。 クラスとかはそんなに難しいとはおもわないけど、内容 以前に言葉でカッコウを付けちゃうソフト屋さん・・が 多いです。
628 :
621 :04/04/22 22:49 ID:fdu5U/Db
みなさんありがとう!お陰でうまく動きましたよ。 同じソースでposedge、negedge両方は無理なのか。色々と知らなかった。 論理合成後のことを考えて記述してかないとダメなんだなぁ。
double edge trigger DFFなんていうのもあるから、 合成できるかどうかはライブラリしだいだと思うが。
>>629 そのdouble edge trigger DFFさんは、
今入ったクロックのエッジがriseだったのかfallだったのかを
どうやって知るのでしょう?
べつにこれ単体でどうにかできるとは言ってなくて、 posとnegを扱えるような回路の合成はライブラリがしっかりしてれば できるんじゃないかっていう意味。
632 :
ぽんぽこたぬきさん :04/04/23 01:14 ID:bphvk9fM
>>631 ですね。
まぁ一般的には posedge のみで
他はライブラリで用意されてても
合成スクリプト上で 使用禁止にすることが多いですよね。
小林本だと、ダブルエッジは使用不可と言ってるね。 周波数の低いうちは動くが200MHz以上だと、きついみたいだ。
>>633 高速ででゅーてぃーが保証できるんだろうか?
setupとholdを考えると鬱になるよ >両エッジ
>>634 > 高速ででゅーてぃーが保証できるんだろうか?
そこでトラブルですよ。基板のリビジョンがちょっと変わっただけで......
ギャー
実行引数でダンプファイル名を指定したかったので ncverilog +define+filename="hoge.log" …とやって、 RTL側で mcd=fopen( `filename ); $fdisplay(mcd, …); と書いたら怒られてしまいました。 どうしたらよいのでしょう?
>>633 ヲイヲイ時代は進歩してるんだよ。あの本が連載中だったときも出版された時点でも
DDRなんてなかっただろ?そういうのをアフォの一つ覚えって言うんだよ。
ぢゅーちぃー保証するためには倍クロックを1/2文集して使え。 消費電流には目をつぶれ。
うわー やっぱりどこにでもいるんだな。1/2分周するとぴったりdutyが50%になるとおもっているやつ。 分周しても数%のばらつきはでるからPLLつかうのと変わりませんよ、と言っても聞きゃしないし。
>>639 倍クロックが調達できるなら、それをそのまま使えと小一時間(ry
>>637 multistep で試してもダメ?
わしなら、さくっと外部のスクリプトでファイル名をコントロールするな。
その方が応用も利くし。
>>640 一般にデューティーにばらつき出てこまるのはぎりぎりで設計してると必要なセットアップとホールド時間が
確保できないからだろ?数%のばらつきが出て困るならはじめから10%のマージン持たせりゃいいじゃないか。
つまり倍クロックのものを使わずに1.8倍の源振使えばいいだろ?それでも1.8倍が得られればそれなりに利点は
あるだろ?君の想定してる回路が何か知らんけどさ。
>>641 そりゃそうだ。
>>644 まぁその通りなんだが、実際には周波数は最低限にしたいわけで、
マージンは抑えておきたいのも実情でしょうな。
それにレイアウトしないと最終タイミングの安心は得られないわけで、
不安要素はできるだけ回避したいだろうし。
>>637 そういう場合は、
ncverilog +define+filename=\"hoge.log\"
じゃない?
647 :
774ワット発電中さん :04/04/27 14:06 ID:mxpPdBx7
>>640 10倍の周波数から1/10分周すれば50%
昔、変なデューティー比のクロックを要求してくるCPUがあったよな。 レイアウトしてみたらハンパな外部クロック仕様になったりすると アレの二の舞い....orz
>>650 あぁ、ダイナミック素子のプリチャージ時間を短くして、
全体のクロックを上げるということかもしれないです。
あ、ここで両エッジFFの話が出ているけど、その両エッジFFを
ブラックBOXで使用するか、セルを作れるかで表現できる幅
が違うと思います。
例の合成向け本はあくまでも「一般設計者」向けだと思います。
判って居るやつなんてごく少数なんだから・・・ここでもね。
>>651 俺はお前らと違ってよくわかってるんだよと言いたそうな口ぶりだな。
>>652 1GHzの1/10分周で100MHzのデューティ50% 1GHzが入らないという時点でネタ。
655 :
774ワット発電中さん :04/04/28 22:33 ID:zJJdq8ZE
趣味で MAX038を使って、Singal generatorを作ってるんですが カウンターの部分を某雑誌に付いてきたCPLDを使おうかと 考えています。 ソフト系は強いのですが、理論回路とかサッパリです。 GW中に勉強しようかと思うのですが なにかいい、参考書をお教えいただけませんでしょうか? 小林 芳直著の「定本ASICのシステム設計」とかどうですか? まだ見てないのですが。。。
>>655 微妙かも。
論理圧縮の考え方とかは読み物として面白いと思うし私も愛読書ではあるが
直接設計に役立つかどうかは微妙かもね。
どっちかというと、DWMのバックナンバーの方が今風ですぐに役だとのでは
無いかと思う。
>>654 そういうことではなくて、彼はほんとに分かってないのでは?
10個を5分割 =2個ずつ
10個を1/5分割 =50個ずつ
ということでは?
ソフト書けて文集やカウンタだけでいいならどんな本読んだとしてもあっという間に あっけなく書けるんじゃないの? CQ出版の 入門Verilog-HDL記述 はソフトでいうと"はじめてのC"的な良著だと言われてる。パッケージがダサいけど。
660 :
651 :04/04/30 20:54 ID:51CakB7T
回路から見て、DUTYが重要になるのは、メモリあるいはダイナミック(クロックド)論理を 使った特殊セル、あるいはPLL・・なんかの「一般的じゃない回路」を使った場合でしょ? 極端にDUTYが偏ったというケースは稀なんで、FFなんかのタイミング(DUTYじゃなくて 絶対時間だね)を満たすかどうかってことが問題じゃないんかなぁ・・・
>>660 posedge,negedgeを交互に使って処理が進むような構成の場合
デューティの変化が倍になって影響するわけで。前段のデューティが
狭くなる方の回路がセットアップ不足になりやすい。外部のデューティ
変化のみならず、温度の問題もあるし。
というより両エッジが必要と言う状況が既に一般的でないのでは?
>既に一般的でないのでは? ならFPGAメーカがなんで最近両エッジ対応をうたうようになってきたのよ。
663 :
774ワット発電中さん :04/05/03 17:28 ID:7Xm6YNt7
Max+Plus2 でVHDLコンパイルしたいんですけど お金払わないとダメですか?
なんで
Q2-WebPack じゃだめなん?
>>663
Q2でコンパイルできるんですか・・・。
>>663 どうしてもMax使いたければ Advanced Synthesizerってのが
ダウンロードできた気がする(今もできるかしらんが)
俺も、Q2の方がお推めだと思う。
そうですか、さっそくQ2やってみました。 Node instance instantiates undefined entity プロジェクト名 とでました。今日はこのエラーと格闘してきます。ではー、色々ありがとうございます。
advanced synthesysでも同様のエラー。
669 :
774ワット発電中さん :04/05/04 13:53 ID:tO+9hAhv
>>662 両エッジ対応をうたっていても、I/Oセルしか対応してない。
DDR-SDRAMなどの両エッジ使うバスI/Oに対応するためだけのものだ。
内部ロジックは両エッジにする必要ないからな。
内部ロジックを両エッジにすると遅くなったり面積くったりでいいことまったくなし。
>>668 ヒントありがとうございます。
質問ばっかりで迷惑かとおもいます。申し訳無いです。
>>669 でした。やはりよくわかりません・・・。
最後にするのでもう少し詳しく教えていただけませんか?
>CCRcECl3 教えてやるから、全てのファイルを晒してみ? コンパイルの問題点をできるかぎり説明してあげるよ。
architectureを晒せないなら、entityだけでも晒してね。
全加算器をややこしくかいたものです。 以下が含まれたものを.vhdとして保存して、それをコンパイルしてみました。 architecture dataflow of full_adder is begin S <= ((not((not A and B) or (A and not B))) and C1) or (((not A and B)or(A and not B))and not C1); C0 <= (A and B) or (((not A and B) or (A and not B)) and C1); end dataflow;
library ieee; use ieee.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity full_adder is port( A,B,C1 : in std_logic; S,C0 : out std_logic ); end full_adder; 忘れてました。 Analyze Current Fileはうまくいくんだけどなぁ・・・
もうVHDLやめようyo
Node instance instantiates undefined entity ++ 結局これなんだったんだろうな
Q2には回路図をVHDLに変換する機能ってないのかな・・・。
681 :
vhdlつかい :04/05/07 17:50 ID:vc3sEOCf
>>680 Webエディションはどうか知りませんが、
お金を払ったら使えるようになる機能がいくつかあるみたいですね
お前ら電気系はソフト屋はワンランク下だと思ってるだろ。 HDLやってりゃ仕事のスタイルがソフト屋とよく似てる部分も歩けど、 ソフト屋と間違われるのは人格否定されたみたいに思うだろ。
確かに何も知らない奴がソフト屋になるからね。
アホがなんか言ってる
ハンダ付けができない奴がソフト屋になるからね。
686 :
774ワット発電中さん :04/05/09 20:19 ID:TGCESqLU
ハード屋もでばどら屋や、組み込みソフト屋には一目置いてる
687 :
774ワット発電中さん :04/05/09 20:35 ID:1S7lukjS
あのさ クールランナー2の両エッジってどーやって記述すんの? always@(posedge CLK ot negedge CLK) if (CLK) ... if (!CLK) ... こんな感じ?
>ハード屋もでばどら屋や、組み込みソフト屋には一目置いてる でもないよ。 アプリケーションわかってて自分でハードも設計できて、ICEだけでなく ふつーのハード屋が使うような測定器が使いこなせて、ソフト面だけでなく ハード側から正しく評価できるようなDSP屋になら一目置くけど。
689 :
774ワット発電中さん :04/05/10 03:00 ID:/ZpCXZ/J
>>688 が言っているようなヤシは、
ソフト屋ではなくて、
「ソフトも出来る八−ド屋」じゃないか?
ハード屋はデフォルトでソフトも書けるが、もったいないのでそんなことをさせられない ソフト屋はソフトしか書けないので、ひたすら数をこなすことを求められる
>>690 690はどうでも いいことを言った。感動したっ!
692 :
774ワット発電中さん :04/05/10 11:50 ID:Ti/mXkS3
ソフト屋は人間のくず
693 :
774ワット発電中さん :04/05/10 12:48 ID:IwB4f4r6
>>692 漏れにとっては最高の誉め言葉だZE〜!
人間のくずとは思わないけど、エンジニアとしてくず。 というかエンジニアとして最下層だな。
ソフト屋に「ハードでこれ失敗したから、ソフトで対応して」と言うなよな。 上流行程だからって、自分の日程遅れをソフト日程に押しつけるなよな。 と、ソフト屋は言いたいはずだ。 心当たりのあるハード屋は多かろう。全部自分でやってる香具師以外。
>>695 一番上流の企画屋が神。
「まだ、仕様が完全に固まってないんだけどいいよね。あとで修正してくれればいいし♪」
ASIC作るのにそれはないだろ?
ソフト屋だけでなく、ハード屋も
てめー。ぬっころす!
と思うはずだ。
きょうの会話。 「なんかソフトonlyの社員ばかり増えてますよね」 「『ソフト』でひとつの班が出来るとは思わなかったなぁ。もともと班は製品ごとだったのに」 「あそこへ仕事頼むと面倒なんですよ。今度の製品は全部自前でやりたいんだけれど」 「そう言わずに仕事回してやってよ・・・いや、気持ちはわかるけどさ。頼むよ」 「・・・」 「そんな顔しないでさ・・・。なるべくフォローするから・・・」
ソフトonlyの社員ってアプリしかかけんだろ? しかも、最近Winしか触ったことなくて、 ソフト開発==Visual C++のIDEいじくることだと思い込んでるガキが増えて困る。
ソフト開発==Visual C++ ならまだ許せるが、ソフト開発==Visual Basic で でかい顔されちゃかなわん。 ハード屋の俺でも自分でファームとかテストプロ書けるのに…
700 :
774ワット発電中さん :04/05/11 22:25 ID:Zvrd4klm
ソフト屋をなんでもかんでもひっくるめて議論するのはかわいそうだ。 ソフトのシステム設計する連中は尊敬に値するぞ(値しない奴もいるが)。 そういう連中と、単なるコーダーに毛が生えたようなのをいっしょにするのは失礼だろ。 ハード屋だって、中身を理解できずに単なるCAD入力・評価・測定しかできん奴から、 上流システム設計までやる奴までおる。 どっちもたいして変わらんのでは?
ここにいるハード屋はレベルの低いソフト屋としか仕事したことの ない香具師が多いみたいだね。ちと、可哀想だな。 そういう香具師しか入れない会社の方が問題のような気がするが(要は 見る目がない) ま、ハード屋もVHDLで設計できても、トランジスタでラジオが作れない 香具師もいるし。
>>700 “評価”が出来る奴ならまだマシ。理解してないやつは入力・測定も満足に出来ない。
同じ部署内で指示出すだけなのに作標作ってる気分。
>トランジスタでラジオが作れない 作れても自慢にならんだろ。 それを言うならダイオードでラジオが作れるが。。
ソフトウェアラジオ.....
ハード屋・・・できるだけ組み合わせ回路で実現してワンショットで動作させられないか考える人達 ソフト屋・・・どんなにがんばって速いアルゴリズム作っても所詮順序回路の手の平の上で転がさ れていることすら気づかない人達
何か変な流れだな・・・ よっぽどソフト屋との打ち合わせかなんかで溜まってるんだろうな。 ソフト、ハードにかかわらす、優秀な奴は優秀、そうでない奴はそうでない。それだけ。 すそのが広い分、ソフト屋のほうが優秀な奴の絶対数は多いだろう。 割合は分からないが。
>>703 自慢にならないものすら作れないハード屋がいるという
ことじゃない?
正直「ソフト屋」と聞いて連想するのは「文句」と「言い訳」それも大声で。
無能なソフト屋でもどこかに仕事がみつかるが、無能なハード屋に勤まる仕事はない ハード屋として飯を食ってるヤツは、ある水準以上の技量を持ってるのは確かだ
スレ違いかもしれないけど、SynopsysのGalaxyやMagmaのBlast Createといった フィジカル合成ツールはディープサブミクロンになると今後主流になるのですかねえ。 自分はフロントエンド業務しかやったことないのですが、 これからはバックエンドの知識も必要になってきそうでちょっと鬱。
>>709 まぁまぁすねるなって。ソフト屋ちゃん。
ソフトが作れるハード屋はいるが、ハードが作れるソフト屋はいない。なぜならハードが作れるということはハード屋だからw
>>701 ラジオ->RF屋をバカにしてるのか?
少なくともロジック回路屋ですぐにRFやれる奴はほとんどない。
というか別カテゴリの技術分野
釣りに反応するな。 アホですか?
シリコン配置なら俺に聞け
BlastFusionがもっと半導体ベンダに採用されると 設計側もマグマのツールを使うようになるかもね。
719 :
??? :04/05/17 19:31 ID:5H9O36QN
故障検出率と設計完成度向上(バグ取り)って 無関係ですよよね
720 :
vhdler :04/05/18 00:53 ID:UaHVhErk
>>719 前者。。機能は正しいが製造中に故障
後者。。機能が正しくない
紛らわしいけど、似て非なるものと考えています
721 :
774ワット発電中さん :04/05/18 11:48 ID:8uYwK0/6
quartusを使ってVHDLの説明やってくれてる本は何ですか?
"quartusを使ってVHDLの説明やってくれてる本"
723 :
774ワット発電中さん :04/05/18 11:58 ID:8uYwK0/6
quartusを使ってVHDLの説明やってくれてる本にはどういうのがありますか?
VHDLってひょっとして符号なしの16#00000000#~16#FFFFFFFF#をあら わせる整数型って存在しない? 存在しないとすれば32BItの符号なし整数型を、type等で作るにはどう したらいいの?
>>724 16#FFFF は可能でも、16#FFFFFFFF はまず無理だな。
VHDLの符号なし整数は31ビットだから無理。 分けるか、vector系を使うしかないなぁ・・
>>729 有り難う御座います。引き続き、
「入門Verilog-HDL記述―ハードウェア記述言語の速習&実践」を探してみることにします。
大量購入して図書館とかに入れてくれないかなあ。
でも無理かな。
>>728 の本は俺の入門書。
そんな悪くないよ、今でもたまに参照するし。
挿絵がキモいけど。
733 :
774ワット発電中さん :04/05/21 20:01 ID:999MJdZp
734 :
774ワット発電中さん :04/05/22 02:44 ID:r35AyeIQ
735 :
774ワット発電中さん :04/05/22 02:45 ID:r35AyeIQ
736 :
774ワット発電中さん :04/05/22 02:47 ID:r35AyeIQ
A,B,Cはそれぞれ組み合わせ回路で実現できる処理、 同期で組むとA->B->C->のデータ処理に3クロックの初期遅延が生じてしまう。 非同期にすればタイミングシミュレーションでも、使おうとしてるクロック周波数に 対しては仕様をみたすんだけど・・・ どんなところで非同期回路使ってる?
協調シミュレーションには、PLIが便利だとか言われますけど、 実際に仕事に使うとなると、PLIは昔なつかしいC言語のprintf デバッグの域をでませんよね。 今時のデバッグ方法としては、XILINXのFPGAで実際のHDL を動作させて、ChipScopeProやPALMiCE-FPGAを使って 実信号をトレースして行くやり方がスマートかと思います。
>>711 Deep Submicron回路では、リーク電流による消費電力の増大とか
Delayの中をInterconnect Delayが占める割合が大きくなってくるので、
今まで使われてたフィジカル合成ツールもそれに合わせて変わっていかねばならない。
って先日学校で教わりました。
>>737 確かにモジュール単体の再利用を考えているのなら、それぞれがムーア・マシン
になっているのが望ましい訳だけど、順序論理を必要としない回路まで杓子定規
に遅延させるのは意味がないこと。そもそも、分割したモジュール間がwire、即ち
継続的代入関係でしか接続できないHDLの制約によるもので、むしろ、モジュール
分割しようとせずに、組合せ論理の部分をfunctionで階層化する等してソースの
可読性やfunction自体の再利用性を高めたり、regを大域変数的に使うといった
ソフトウェア的なアプローチを試してみるのも面白いと思う。
742 :
774ワット発電中さん :04/05/25 10:01 ID:xqje38ep
>>740 リーク電流はツールで抑えられるものなのでしょうか?
Interconnect Delayって配線遅延のことでしょうかね。
配線遅延の占める割合が大きくなってくるからこそのフィジカル合成ツールと
思っていたのですが。
初歩的な質問なんですが、VHDLで aaa : bbb port map ( data_in => (64/12), data_out => wire_bus ); みたいに定数の計算式をコンポーネントのバスに繋げることはできませんか? 同じ定数を大量に使っていてデバックの時と本番の時で値を変えてコンパイルしたいんですけど。 実際の記述はファイルの先頭で以下のように宣言してコメント切り替えたいのです。 constant def_ccc なんか 64 --test --constant def_ccc なんか 640 --maji aaa : bbb port map ( data_in => (def_ccc/12), data_out => wire_bus ); Quartus2だとどうしてもエラーになってしまいます・・・
conv_std_logic_vector でいったん変換するか、 はじめから generic map を使うようにするか、
745 :
774ワット発電中さん :04/05/26 13:16 ID:vi9Go6Z9
定数式じゃなくて定数ならできるよ 64/12→5, 640/12→53 として constant def_ccc12 : std_logic_vector(7 downto 0) := "00000101"; --test -- constant def_ccc12 : std_logic_vector(7 downto 0) := "00110101"; --maji aaa : bbb port map ( data_in => def_ccc12, data_out => wire_bus );
VHDL→Verilog-HDL乗り換え組みです。 -- INDATA1, INDATA2 : in std_logic_vector(31 downto 0); OUTDATA : out std_logic_vector(63 downto 0)); process(INDATA1, INDATA2) begin for i in 0 to 15 loop OUTDATA(i*4+1 downto i*4) <= INDATA1(i*2+1 downto i*2); end loop; for i in 0 to 15 loop OUTDATA(i*4+3 downto i*4+2) <= INDATA2(i*2+1 downto i*2); end loop; end process; -- といった感じで入力を2ビットずつ交代でつなげたいのですが、 Verilog-HDLではどうやって記述すればよいのでしょうか? -- always @(INDATA1 or INDATA2) begin for(i=0;i<16;i=i+1) begin OUTDATA[i*4+1 : i*4] <= INDATA1[i*2+1 : i*2]; end for(i=0;i<16;i=i+1) begin OUTDATA[i*4+3 : i*4+2] <= INDATA2[i*2+1 : i*2]; end end -- こうやって書くと「レンジは定数で書けや(゚Д゚)ゴルァ!!」とコンパイラに怒られてしまいます。 for文を展開して一つずつ書くしかないのでしょうか・・・ OUTDATA[i]みたいな書き方はOKのようなのですが・・・
自己レスです。レンジにならないように書き直したらうまくいきました。 -- always @(INDATA1 or INDATA2) begin for(i=0;i<32;i=i+2) begin OUTDATA[i*2] <= INDATA1[i]; OUTDATA[i*2+1] <= INDATA1[i+1]; OUTDATA[i*2+2] <= INDATA2[i]; OUTDATA[i*2+3] <= INDATA2[i+1]; end end -- 個人的印象で可読性はイマイチですが仕方ないですね。
Verilogでモジュールインスタンスを for などで複数個生産できないのか? 教えて呉呉
Verilog-2001なら modulename moduleinstance[9:0](.....); ってできるよ。 結線は、モジュール定義と同じ本数なら単純に直結されて、 インスタンス数倍なら、それなりに分配される。 あと、generate endgenerate で、内部に genvar というタイプの変数を使えば、 自由に生成できる。 ただし、この記述から回路を合成できるかどうかは、ツールしだい。 あとはググれ。
750 :
748 :04/05/26 16:47 ID:1RVsKopY
>>749 ありがd
Verilog-2001の教科書が手元にないので、家に帰ったらぐぐるよ!
って俺は趣味のHDL牡蠣。
Verilogに関して、お教えを乞いたく・・・。 通常、Verilog で扱える数値は正の数のみで、数値表現は ストレートバイナリになってしまうと思うのですが、2の補数を 扱うにはどうしたらいいでしょうか? これを取り扱っている教科書のみでも良いのでお教えを・・・
連続で教えてくださいになっちゃいますが ModelSimでシミュレーションを実行する際に作るdoファイルの記述方法を 書いてある本やHPがありましたら教えてください。 あと、難しいテストベンチの書き方が書いてる本やHPも教えて頂きたいです。
>>743-745 ポートに固定値をつけるのは、93からの仕様だと
おもったけど、デザインコンパイラだとクォータス
と同じようにエラーになるのね。
modelsimは問題はない。
だから、
>>745 さんのようにすればいいんだけどさ。
754 :
751 :04/05/27 06:17 ID:CsWLRO0D
Verilog2001を使うと言うこと・・・・らしいですね。 V2001に関する書籍を当たってみます。 お騒がせしました
>>752 > ModelSimでシミュレーションを実行する際に作るdoファイルの記述方法を
> 書いてある本やHPがありましたら教えてください。
doファイルってModelSimのコマンドをバッチで行うためのファイルだよね。
さすがにそれはMentorGraphicsからマニュアルもらった方が早いのでは…
doファイルって単にコマンド書き並べるだけだよ。 example のなかにのcompare.do見ればすぐわかる。 もっと凝ったこともできるんだろうけど(やったことないが)、 多分tcl/tkのコマンドじゃないの?
>>758-759 ありがとうございます。自分、知らないこと…多すぎorz
あんな書き方やこんな宣言ができてしまうわけか
上司に「こんな回路図みたいなソース書くなや」と指摘されました。
解釈に悩んだのですが、もっと数学的な頭を持てということ?なのでしょーか。
他人のソースをもっと読みたいです。検索ってきます。どもでした。
761 :
743 :04/05/28 23:42 ID:GXz/5ME4
>>744 >>745 さん、ありがとうございました。
おかげで無事コンパイルが通るようになりました。
conv_std_logic_vector なんていうものは私の持っている参考書にはのっていなかったので
ネットで調べてみて「あぁ、本当にそんな関数(?)があるんだ」などと不謹慎なことも思ってしまいましたが。
762 :
774ワット発電中さん :04/05/30 12:53 ID:V8950opZ
VHDL初心者です。突然レベルの低い質問で済みません。 先日A社の EP1C20 をVHDLで設計したのですが、とてつもなくコーディング が大変でした。指が腱鞘炎になるかと思っちゃいました。 エンジニアの立場から考えて、皆がこんな大変で面倒な作業を実務でやって いるとは思えず、私が何か勘違いをしているか方法を間違っているような気が しています。 私はQuartus2 Ver2.2を使用していますが、これだけの環境でVHDLを実務に使 えるようになるのでしょうか。それとも 効率アップには他のツールが必要? VHDLで開発するのが間違い? 単に私がおバカなだけ? 参考:今までは AHDL+スケマッティック で設計してました。 レベルの低い私にも分かるようにだれかコメント下さい。
>>762 別に間違ってはいないと思うよ。
実用的に意味のある回路なら、軽く数百行以上のソースになるのが普通だと思う。
色々な回路を記述していると、そのうち以前書いたソースから
使いまわし出来そうな部分をコピー&ペーストできるようになるから楽になる。
764 :
762 :04/05/30 16:30 ID:V8950opZ
>>763 さん、レス有難うございます。
ソースの行数を数えてきました。ファイル(というか階層というか)
1個は 100〜400 行程度ですが、1個の FPGA 全体で計算すると
8000行程入力した事になっていました。
実はこの規模のものを2種類作ったので、合計で約 12000 行。
(単純に2倍でないのは、使いまわし出来る部分があった為。
行数に、LPMのメガファンクション等QUARTUSが排出してくる
VHDLやIPは含めていない。)
もう指が痛くて痛くて。こんなものなのでしょうか?。
もしかすると私が「VHDLは効率的な設計可能」の言葉に、過剰
な期待を抱きすぎているだけなのかもしれませんね。
「甘すぎる」や「何かおかしい」など御叱りの言葉でも結構です
ので、諸先輩方の[普通]を教えて下さい。
>>764 テストベンチを除いて RTL記述部分だけのコードで8000行ですか?
そりゃ多すぎ 何か勘違いした書き方してるに違いない
強引に過去の資産を引き継ごうと無茶をして、スケマティクシンボル1つにつき
1つのエンティティを書いたりしてませんか? それは修羅の道だ
767 :
762 :04/05/30 19:46 ID:V8950opZ
>>766 さん、レス有難うございます。
やっぱり何か勘違いしているのか・・・・・・ハァ〜
御指摘の通りテストベンチは含んでいません(というよりテストベンチ
の使い方も良く分かっていないアホです)。RTL記述部分だけで8000行
書いちゃいました。
過去の資産は捨てるつもりで挑んだので、無茶な事はしていないつもり
だが、このスレの人に見て頂いたらさぞかし酷い事になっているのかも
しれません。
凄く抽象的な表現になりますが、A3用紙に書き込んだスケマティック
1ページ分くらいで1つの ENTITY としています。
本職ソフト屋でVerilog使いだが横槍。 1C20で8000行って、やっぱり俺には考えられんわ。 相当プリミティヴな論理書いてるんじゃないかなー? 興味本位で質問だけど、フィット後充填率は何%? ていうかスケマティックって言ってる時点で、ある程度仕方がないのかも。 人それぞれのスタイルはあるけど、「非効率的な開発」と思われ。 あ、それから、1C20 は、フィットまでだったらWebEditionでイケるので、 Quartus II 4.0 も検討しなはれ。シミュは簡単なのが入ってて、テストベンチは 走らせられん。 ところで1日で8,000行つくったの? もっと肩の力抜いて逝かなきゃ〜 指が動かなくなったら元も子もなくおしまいだよー。
パターン屋のCAD使いが腱鞘炎でドクターストップかかった例もあるぞよ。 そう考えると、キーボードからの入力が未だ主流である現代において 俺らは指を大切にしなければならない。 脳と直結できる日はいつだ
>>767 まさか、たとえば8ビットレジスタを、
いちいちフリップフロップ8個書いていたりしないよね?
加減算を SUM <= VAL0 + VAL1; って書かずにいちいち演算器のモジュールを接続してるとか?
772 :
774ワット発電中さん :04/05/30 21:11 ID:arqLrZCh
>>771 それは普通だろ?
770みたいなのは論外だけど。
Verilog使いに質問。 必須のとき以外でもbeginとendって書いてる?
774 :
768 :04/05/30 21:29 ID:JfaWs8jo
>>769 打ち込み屋こそ、疲れない「正しい」メソッドを習得しとかんといかんのだが、
現場じゃそーゆーこといってられず、自己流染みついて腱鞘炎、というのは、
ソフト屋でもよく聞く話。マ板向きの話かのう。
>>771 それは、古い上司のいる職場だったりしない?
ただ、演算器モジュールを明示した方が明確になる場面は
(少ないが)ある、というのは理解できる。
でも、もう、泥臭い部分はシンセサイザに任せていいんじゃないか?
>>773 俺は、あからさまに見やすくなる場面では省略するね。
もともと C 使いなので。Perl も大好きだが。
それどころか
always (posedge clk) reg <= reg + 1;
とかも平気で書く。プロの方々は、職場によってスタイルが違うでしょう?
ASICかFPGAかでスタイルが違う場合もあるだろう しかし、cycloneでプリミティブべったりで書くのって意味あるのかなぁ?
>>772 こういう前時代的な奴は絶滅して欲しい。
778 :
762 :04/05/31 10:23 ID:5rTcTIgL
>>all 皆さんコメントありがとうございます。
>>768 LE:53% 、 PIN:81% 、 RAM:50% です。
効率的な開発 → それを模索中なのだが、どうすれば効率良くなるのか
・・・・・こればっかりは苦しんで自分で見つけて行くしかないかも。
1日に8000行、なわけないです。セミナー以外でVHDLに触れるのは
今回初めてという初心者です。最初の方は、参考書を読みながら1日
100〜200行位のペース、12000行トータルで1ヶ月以上かかっています。
Quartus2 Ver4.0、そういえば案内メール来てた。DLに逝ってきます。
>>769 脳と直結できるキーボード : いいですね〜。ポケットマネーで100万円
出しても買いたい。
個人的には、イメージやまとまっていない思考なんかをバックアップ可能
な外部記憶装置が欲しい。毎朝、設計開始前のオーバーヘッドが大きく
て、昨日の夜何を考えていたのか思い出すのに一苦労してます。
以下に続く。
779 :
762 :04/05/31 10:26 ID:5rTcTIgL
続き。
>>770 それはやってません。 STD_LOGIC_VECTOR を使用してまとめてます。
>>771 乗算は演算モジュールを接続して記述しましたが、加減算は+や−の
演算子(?)を使って記述してます。
>>772 ,774
加減算でもモジュール接続した方がいい事があるんですか?
それとも後々の見やすさの問題?
>>775 プリミティブべったり : この言葉の感覚が良くわからないんです。
どこからどこまでをプリミティブと言うのか?いろいろ入門書を漁ったけど
どの本もおもいっきりプリミティブで記述されている様に見えてしまって。
何か良い参考書って無いものでしょうか。
ガイシュツの参考書ですが、私は「HDLサンプル記述集」で学びました。
スレ趣旨と全く関係なくて恐縮ですが、 ポケットマネーに100万の枠がある事に羨望します。
781 :
762 :04/05/31 11:53 ID:5rTcTIgL
>>780 う〜ん。文章でニュアンスを表現するのって難しいですね。
「へそくり+車を売り飛ばしてでも欲しい。」というふうに捉えて
下さい。
零細企業勤めの甲斐性無しなんで、私のお小遣いは月2万円
(酒代含む)の貧乏たれです。
あっと、スレ違いスマン。
行数が多いということなのですが、スクリプトで吐き出すということは、 一般的にはされてないのでしょうか? オープンコアなどでも、6502CPU のソースとかみると、 たしか、Cか何かで吐き出してたような、昔の記憶があるのですが、 やはり、会社がらみだとそういったことはしてはいけないのでしょうか? 学生なのでおしえていただけませんか?
>>782 HDLを吐くスクリプトを使った方がいい場面もあるでしょうね。
でも使い捨てのスクリプトを書くよりは
何らかの形式のソースコード →[変換ツール]→ HDLコード(中間コード)
上記のように変換ツールとソースコードを分離した方がスマートでしょう。
CPU設計だったらマイクロコードのロジック記述に上のやり方をすると
効率的だと思います。
784 :
782 :04/06/01 10:54 ID:tAP7FsSR
レスありがとうございます。
>>何らかの形式のソースコード →[変換ツール]→ HDLコード(中間コード)
変換ツール自身を自分で作成すれば、どの程度、冗長的か、微細的かを
自分で選択できますので、おっしゃるとおりかとおもいます。
今は、HDLをまったくといっていいほど書いてないのですが、当時は
ttp://mitpress.mit.edu/sicp/full-text/book/book-Z-H-31.html#%_sec_5.1 を読んで、えらく感動したのでほぼそのままこれに類似したものを、
解釈するものを作成しました。
ただ、テストケースの作成や、
VHDL <-> Verilog、 Verilog <-> AHDL、VHDL <-> AHDL
などは、行数がおおかった場合、手作業でするのは、面倒なのではないかと
おもったのていたので(最後は手作業で私はやっていましたが)、どの程度使
われているのかおききしたかったのです。
CPU設計などでは、使っておられる人がいるかもしれないということなので、
非常に参考になりました。ありがとうございました。
kinkyu.2ch-news #guest
786 :
774ワット発電中さん :04/06/04 16:12 ID:bewI/A7L
素直に原語版買っとけ そっちのほうが安いし
行数では何もいえないでしょ? 実はエレガントな書き方かもしれないし。 あと、VHDLはverilgより長くなるよ。
続き・・・如何に正確なRTLを書くかというのが目的だから、長くなるは ありえる。 企業によっては厳格なスタイルを強制するところも多い。 再利用性を考えると、長くなるというのは一概にXとは言えません。 それに演算部分などは高速化利用でコンポーネント使用もあるし、 FORループ使用の厳禁をしているとこもあります。 一回限りの下請け仕事ならなんでもあるかもしれないが、一度作った ソースをデータベースとして利用するなら、長くなったかまわないよ。 あくまでも正確さや可読性がよければ良いんでね。
790 :
774ワット発電中さん :04/06/05 19:19 ID:OqliQShD
>>788 なにぶんにも初心者なもので、エレガントからは程遠いような気がします。
ぱっと見た感じVerilogの方が効率良さそうに見えますね。VHDL/Verilog
両方併記してあるサンプル記述集を見たら、Verilogの方が 1/3 程度の
記述量で「いいな〜。」と思ったりしています。
>>789 零細企業勤めなもので、な〜んにも規制はかかっていませんし、先の
プロジェクトも1回限りなので何も問題は無いです。ただしやっぱり
この業界で飯を食っている以上、人に見られても後ろ指指されない程度
の記述はしたいですし、こんなに時間がかかっていては給料泥棒に
なってしまいそうで・・・・・ハァ〜頭が痛い。
皆さんどのくらいのコード量で記述してるんでしょうか。
質問の仕方がアホですが、「このFPGA(型名)を何%使用して何千行くらい」
みたいな回答が頂けたら参考にしたいです。済みませんがこのアホにもう
暫く付き合って下さい。諸先輩方よろしく御願い致します。
791 :
762 :04/06/05 19:24 ID:OqliQShD
↑名前抜けスマヌ。790=762 です。
>>789 可読性か…聴いた話だと、こんな所もあるそうです。
短さ至上主義。A4一枚推奨。
可読性は高いけど、流れが判りにくそうな気がします。
>>792 HDLのレベルじゃ、「流れ」ちうかむしろしょせん「論理」なので、
短くまとまってるってのは、一目で見て取れてメリットも多いんじゃないかな?
短さ原理主義にまで陥ってたらただのDQNだが。
モジュール化によって「容積と遅延の許す限り」充填率を
高めてるソースなので参考にならないかも。行数は少ない。
>>790 Verilog. ターゲットは EP1S10 -8
; Logic cells ; 10,523 / 10,570 ( 99 % ) ;
; Registers ; 8,004 / 13,046 ( 61 % ) ;
; M512s ; 94 / 94 ( 100 % ) ;
; M4Ks ; 60 / 60 ( 100 % ) ;
; M-RAMs ; 1 / 1 ( 100 % ) ;
これでも内部パイプラインが166MHzで動いておる。
logic99%でもちゃんと速度出るんだな フロアプランナとかも使ってるんですか?
あとコード行数を聞きたいです。参考までに。
>>795 本業ではない(しかし外販して売上は出た)ので参考程度に受け取ってください。
フィット後は、Register Packingとか発生する(むしろ発生させている)ので
Synthesis後の数字でいけば、
70%(デカいMRAM 以外のMRAMも) くらいが 166MHz 駆動
20%くらいが、その1/5クロックで動くシーケンサ類
残りがRS-232C, LEDを駆動するホストインタフェイスです。
石はそうとう熱くなってます。指で触ってられません。
行数は、コメント、MegaWizardが吐いたものなどがあるので何とも言えないですが、
いま数えたら、手で書き起こしたモノは2,000行以下くらいかと。
本業でなくWebEdition使ってるので、Floor Plannerで場所固定制約とか使ってたらキリがないし、
あと一息容積とか速度を上げるための手法が使えませぬ。
Floorplan view はいつも眺めてます。
799 :
762 :04/06/08 21:55 ID:BD7GQJjM
logic cell 99% で 166MHz って、794=神 だな。 よくそこまで詰め込めたものですね。私の記録は少し古いですが EP1K50 で logic cell 96% 80MHz てのが最高です。(スケマティック入力) pentium933MHzのパソコン使ってFitterに3時間くらいかかっていた ような気がします。
800 :
socket774@techno :04/06/15 00:35 ID:cZcQI5Mm
>>797 166MHzってすごいですね。
おいらも昔初代MAX7000シリーズで45MHz通すのに
すんげぇ苦労したのを思い出しました。
会社の中には5V系のMAX7000で74.25MHz通してたつわものもいた。
VerilogでもVHDLでも結局回路ブロックと出来上がる回路が
連想できないとどこにレジスタを入れればわからないので
動作速度の速い回路(記述)は書きづらいですね。
今はstratix(EP1S30)使ってるけど化け物のように回路が入って
しかもスピードもそこそこ出て速い。
昔のように回路が入らなくていくつかのPLDに手動で分割しなくても
すむから楽チン。コンパイル時間すんげぇかかるけど(w
AHDLでいうところの IF data[] == VCC THEN はVHDLでどう書いたらよいですか? if data = (others => '1') then はNGですよね。 if data = "1111111111" then とは書きたくないです。幅変わったら書き直しなので。 data = exs("1", data'length) とか signed(data) = -1 など考えましたが、 一般的なものをひとつ・・・
>>800 74.25MHzってHDTVだな、まさか同じ会社の人?
カウンタとデコーダ程度なら7128Sの-10で通したことがある。
今だとCycloneの一番遅いので適当に書いても楽勝。いい世の中になった。
Stratixは速いんだがIOがそれに追いつかないorz
if (not data) = 0
>>803 ありがとうございます。
ぜんぜん思い付かなくて、あれこれこねくり回してました。
805 :
774ワット発電中さん :04/06/20 01:40 ID:q7o92WPi
PCIのスレーブモデル、マスターモデルってありますか メモリ等のモデルはエルピーダのHPいけば落ちてるんだが・・・ AHBとかのバスモデルがほしい
www.opencores.org
しょせん私はプロじゃないので、ちんけな高速化のためとかに 小技を時間かけて試行錯誤して盛り込む猶予があるのです。 プロの人は、定められた納期にきっちり要求を実装する 必要があるんで、逆にいえば、HDLとデバイスの知識がある プロの方だったら、私ごときができていることは、時間さえあれば 朝飯前じゃないかなーと。 いつも師匠(プロです)から説教を受けているもので。 ところで、1C12も侮れず。件の回路、160MHzで回せそう。
808 :
774ワット発電中さん :04/06/25 02:19 ID:0zbbbtSc
>770 書いてますがなにか? for文で書こうが、8個書こうが合成すれば同じ回路になるとおもうんだが。 つーか for文の多用ははやめてくれ、テストベクターだったらいいが 回路にそれ使うの。 何でソフト出身の香具師は(ry
合成結果が同じ回路になるなら、簡潔で間違いにくい記述法を選べばいいだけだろ?
811 :
774ワット発電中さん :04/06/25 22:41 ID:O4z4+shr
SystemVerilogってどうよ? 設計言語の部分はともかくとして、モデリングやアサーションは 各社のシミュレータが対応してくれるんだろうか? SVAをサポートするシミュレータはVCSしか今のところ無いしなあ・・・
812 :
774ワット発電中さん :04/06/28 01:52 ID:XP68PiAj
>>810 for文多用すると、ゲートレベルに落としたときに
わけわからなくなって、回路を追いにくくなる。
まあ、8個のF/Fの例は極端だけど。
合成後の可読性も重要だと思うんだが。
最終回路を意識した記述とか言うと、論理合成万能論者が出てきてそうでイヤだな。
814 :
774ワット発電中さん :04/06/28 02:06 ID:XP68PiAj
>>811 SystemVerilogはSynopsysがしゃしゃりでてきてわけわかめ。
CADENCEがサポートを宣言したらしいが、あてにならん
1年は様子見だと思われ。
815 :
812 :04/06/28 02:26 ID:XP68PiAj
>>813 いや、論理合成はあくまで手段
その論理合成、ゲートSim、STAとかの後工程を楽に
するために、そういうことも必要ってことを言いたかっただけ。
FPGAの場合はその工程がものの3分とか10分で終わったり
するから意識しなかったりするけど。
そのソースをSOCに流用したりすると、後で大変なことになる。
816 :
774ワット発電中さん :04/06/28 07:30 ID:TFFGklFg
>合成後の可読性も重要だと思うんだが。 えー、ネットリストの可読性なんてそれほど意識するものなのかなあ。 ゲートSimは波形、STAはクリティカルパスのレポートしか見ない 漏れはヘタレでつか? ネットリストを追うのはあまりしないけど、 やるときはNovasのDebussyを使ってまつ。
ラジオとかVHDLで書けますか? できればそのままパソコン上で実行して聴けるといいのですが
>>812 for使おうが使わまいが、大して変わらん気がする。
それよりもソースレベルでの可読性のほうがよっぽど大事。
一般に古くからの回路設計者は、大義を忘れて細かいことにこだわ
りがちで回路記述の進歩が遅いと思う。回路設計始めて1・2年の新
人のほうがよほど効率的に仕事をこなす。
ゲートレベルの可読性を求めるなら if も case も使わず、
and or not xor だけで記述すれば良いのでは?
> ゲートレベルの可読性を求めるなら if も case も使わず、 > and or not xor だけで記述すれば良いのでは? 漏れもそう思う。 そもそも合成ツールの吐き出す回路の可読性を RTLレベルでハンドリングするなんて時間をかけても効果薄いよ。 それよりもRTLで可読性の高いバグ無し回路を作るのに時間をかけたほうが良い。
それを言うならデバッキングツールとの兼ね合いという ことになるんでは? アルゴリズムや記述上の間違いばかりがバグの原因とは限らん。
シンプリファイPro使ってるがHDLアナライザのおかげでこっちが意図した 回路ができるようになったよ。(w
822 :
774ワット発電中さん :04/07/10 02:44 ID:WGnKz+Sr
823 :
うんこ :04/07/10 13:45 ID:Rvk8VExt
>>823 よかった〜、踏まなくて。何かやな予感してたんだー。
動かない…orz。ご存じの方教えてください。。 下記のことをしてるのですが「そりゃ違うべ」的ツッコミをいただきたいです。 YUV(ITU656)→RGB変換したい。verilog使用。 CCDカメラ→FPGA→RでDAC回路→液晶モニタ 入力: CCDカメラから8bitデータと27MHzクロック。 インターレース。 タイミングリファレンスシグナル(有効無効データ,1面2面,VHブランキングを示す)の後、 CrYCbYの順。 出力: RGBそれぞれ8bit。 ノンインターレース。 1.入力のタイミングリファレンスシグナルを捕まえる 2.有効データをRGB変換 R = 1.164(Y-16) + 1.596(Cr-128) G = 1.164(Y-16) - 0.391(Cb-128) - 0.813(Cr-128) B = 1.164(Y-16) + 2.018(Cb-128) 3.DPRAMに書く(出力をストレートで読むために1lineごとにアドレス制御) 4.液晶モニタの周波数に合わせたHSYNC,VSYNCに合わせてDPRAM読む。 液晶モニタには黒っぽく砂画面状態、でも蛍光灯とかにおぼろげながら反応してるっぽ。 カラーバーを出力させてみたら思い通りなので手順4.以降は合ってると思うのだけど(意味ねぇ それともものすごい勘違いをしているのだろうか というかスレ違いなのだろうか 長文スマソ
単に整数演算にされてしまったとかいうオチがついたりして
827 :
名無しさん@そうだ選挙に行こう :04/07/11 19:59 ID:YPjKSr9B
>>825 CCDカメラからまともな信号出てるか?
実はCCDがまともに動いてなかっただけ、というオチは良くある。
先日はめられた事例、動かねー動かねーと悪戦苦闘していたらCCDの感度が
極端に低かった。500Wのライトを直近で焚いたら動きだした、というアホな事例
もある。
>>825 計算は間に合ってるか & アドレス大丈夫?
レスありがとう。・゚・(ノД`)・゚・。
>>826 Σ(゚Д゚) !!
チョト思いついたことがある!俺、小数点演算解ってねぇかも。
(すみません、俺のレベルの低さはカンベンしてください)
R = 1.164(Y-16) + 1.596(Cr-128)
この計算をするときに、
R[27:0] = 1164d * (Y[7:0] - 16d) + 1596d * (Cr[7:0] - 128d)
※dは10進数ね
として、RAM書きするとき下位3bit棄てて[27:3]をRAM書きしてた。
もしかして16と128の小数点位置が違う?いやでもカッコ内だから関係無い?
ていうか全然違う?
>>827 タイミング信号はそれっぽく出てるみたいです。
その間のCrYCbYは、まともなデータかどうか判断つかない(わからん)
>500Wのライトを直近で焚いたら動きだした
…え。そんなんあるんだ。(゚Д゚)ガーン
そういえば先週使ってる途中で27MHzのクロックが段々遅くなってきて
しまいにゃ数十Hzまで落ちたことがあった。壊したか!と思って、秋月で注文しなおした後に
また動き出した……orz
まともに動いてるとは言い難いな…
>>828 げっ。そういえばfmax指定してない…orz
あ、でもコンパイルレポートでは速度は出てますた。
アドレスは、シミュレーションでは確認してるんだけが…。
設計に穴がないか落ち着いて見直します!
動かなくてかなり焦ってたので
830 :
829 :04/07/11 20:33 ID:zfSFm2/Z
間違った >RAM書きするとき下位3bit棄てて[27:3]をRAM書きしてた。 ではなく、 [10:3]をRAM書きしてました。この辺、かなり怪しいかも
831 :
827 :04/07/11 20:46 ID:YPjKSr9B
>>829 TRS(タイミングリファレンス・・・)の分離まで出来てるんだったら、Y信号の分離は簡単
だろう。カラーマトリックス演算直前のY信号上位2bitくらいを外部に出してオシロ
で確認せよ。俺はこの方法で入力が正常か判断している。
FPGA内のバグで苦しめられるのは諦めも付く。
でも入力がまともで無いと分かった時には、腹立たしさより気分が萎えてやる気
が失せるから、先に確認しておいた方が精神的に良いと思うぞ。
>>831 ありがとう。えっと
ロジアナで1フィールドくらいモニタしてみたけど、
それがまともなデータかどうか、どうやって判断すればいいのでしょうか
ブランキングのところの80,00の繰り返しは正常に出てるっぽいです。
それ以外は、とりあえずパタパタしてればいいのかな…
あぁしかし精神衛生のためにも入力は確認せねば。
ランプ信号でも入れられればすぐわかるんだがカメラかぁ.... 10ステップのパターンをプリンタで印刷して画面一杯に なるように撮影するか? ちょっと気になったがオーバーフローの処理はどうなってる?
834 :
827 :04/07/11 21:46 ID:ZGJKxCu2
>>832 ちょいまち。ブランク部分のY信号になぜ 80 , 00 が出てくる?
それ CbCr も混じっているんじゃないのか?
CbCrが混じっている状態で確認をするのが難しいから、Y信号だけにして見よ
と言っているんだよ。
それといきなり1フィールドもモニターするな。1ラインモニターからやっていくべき。
《確認方法》 (最も低レベル)
例えば、白いコピー用紙に少し太めの黒い縦線を3本書く。それをCCDで撮影
する。回路が正常で感度もそれなりなら、Y信号の最上位ビットの波形が、
Hdisp内で基本的にHで黒線に対応した部分で3回Lに下がるからそれで確認
するんだよ。
ついでに白レベルのHEX値も当たりを付けとけ。D7=D6=H ならそれなりだが、
D7=L,D6=H なら感度が設計の半分以下、D7=D6=L,D5=Hなら1/4って具合だ。
先に書いた500Wのランプ云々はこの方法で辿り着いた。
>>833 ありがとう。
(´-`;).。oO(オーバーフローに関して何もしてないなんて言えない…)
(´-`;).。oO(…ていうか、演算後のどのbitを残せばいいか解ってない…)
すみません!
R[27:0] = 1164d * (Y[7:0] - 16d) + 1596d * (Cr[7:0] - 128d)
これの後、
[10:3]を抜き出す(下位3bitは破棄)のは、少数演算的に合ってる(勘違いしてない?)のでしょうか。
そして
オーバーフローに関しては何もしてませんでした。
CrCbを-128することでデータ範囲は0〜255になるんですよね。
どうするべきなのか解ってないのですが
演算後、上位all(もしくはxbit) 1 だったら、クリップする、とか…?
>>834 ありがとう。
そうか、Yだけを見るんですね。1ライン、了解です。
確認方法、ありがとうございます!(5分読み返してやっとこ理解しました。開眼しました)
ありがとう!早速明日やってみます!(環境が会社に置きっぱなしなので)
836 :
827 :04/07/11 22:01 ID:ZGJKxCu2
続き ついでに書いとく。先の方法で期待通りの値が出たなら、次はランプ信号を入力 する。俺がCCDにランプ信号を入力する時に良く使っている方法。 少し暗めの紙(ダンボール等)に斜め右側(上下方向はずらさない、真横)から 照明をあて、輝度の濃淡を付ける。これを正面から撮影してY信号の波形確認 を行う。カウンター出力のような信号、Hdisp期間でD6がD7の1/2の周波数(?)らしき 信号、D5がさらにその半分、D4がさらにその半分ってな具合だ。 これより下のビットは、ノイズにまみれている可能性が極めて高いので、確認 は上位4ビットくらいで十分。
>>836 ありがとう。(またも開眼しました)
入力信号を確認することについてマジで何も考えてなかった_| ̄|○
827氏(=>836)が書いてくれた方法を想像もしなかった。調べもしなかった。ヴァカでした。
ありがとう。
>>835 まずは引き算部分で(Y[7:0] - 16d と Cr[7:0] - 128d)
の二つは28bitに拡張してから演算しているかですね。
アンダーフローしてないかな?
最終的にはキャリ発生で最大値に固定するのが簡単だけど
まずは数値範囲の確認から。
839 :
827 :04/07/11 22:35 ID:ZGJKxCu2
>>837 ここまで書いといてこんな事いうのも何なんだが、
>>835 読んでて小数点の位置
というか取り方を間違ってないか?って気がしてきた。
あーーーーっ、1164d 掛けてるのになぜ[10:3]なんだ。1164d=1.164 の意味なら
答えを1000dで割らなきゃならないんじゃないの。
それとエラソーな事書いてきたが、HDL は俺も初心者に近い。そっち方面は、
もっと偉い奴に聞いてくれ。それでは健闘を祈る。
>>838 ありがとう。
>28bitに拡張してから演算しているか
…してませんでした。
アンダーフローはとりあえず下位bit増やしておけばいいのか
28bit拡張は、例えば(Y[7:0] - 16d)は
kakko1[27:0] = ( { 17'b0, Y[7:0], 3'b0 } - { 20'b0, 5'h10, 3'b0} ) / 4'b1000
↑上位 ↑Y ↑オバフロ用 ↑上位 ↑16d ↑オバフロ用 ↑オバフロ用bit棄て
(オバフロ用bitが3bitなのは適当)
みたくなるのかな?
>>839 (827氏)
ありがとう。
ていうか、いろんなとこ勘違いしてる気がしてきた…orz<脱力
下位3bit棄てることで、1000で割ってるつもりだったけど
「 1 0 進 数 だ っ つ ー の !! 」
今、部屋の中で叫びました。階下住民様、うるさくしてごめん。
計算間違いは確定です。そうだよ、1000dで割るんだよ。
今晩中に式を立て直します。
また間違った…
>>840 の「オバフロ用」は「アンダーフロー用」の間違いです
>>840 下位に3bit足すだけじゃアンダーフローは直らないぞ
Yがh10未満の場合はYを0にするようif文で
組んでしまった方が面倒がないかも。
>>842 ありがとう。
あ…、そっか、ifでいきます
844 :
825 :04/07/12 21:06 ID:CoYRCJvO
お世話になってます。
>>825 です。
今日はちょこっと改善して、ぐわっと怪しさ倍増でした。
結論から言うとまだまだです。
1.
まずは
>>834 の入力レベルの確認
コピ用紙にマジックで線3本書いてそれを映したときのYをオシロでモニタしたところ…
3本っぽく見えてました!…けれども
・Y[7]は黒線のところがLで(白いところはH)、Y[6]は黒線のところがHになってる(なじぇ?)
・TRSにトリガかけてるんだけど、Y信号が流れてしまう。
(3本線に見えたり、1lineまるっとLだったりHだったりガサガサだったり)
Y信号が正しく取れてない? TRSから1clockおきに取ってるだけなんだが。シミュはokだったけど…
2.
1の怪しさを残しつつ(をい
>>838-839 あたりの式修正。
画質が少し良くなった。と言っても、物の形は見れないし、エッジもかなり悪い。
でも「黒線が3本ある〜!」程度には見えた。
3.
しかしここでfmaxがかなり落ちたことに気付く。ていうかアウト。
/1000のところが一番遅いみたい。
ちなみに/1000をしない場合fmax=110MHzくらい。
わり算のところだけ、alteraのメガファンクション?使ってみる。レイテンシ調整でfmaxはクリア
4.
しかしわり算のシミュレーションしてみると答えが違う…
今日はここまででタイムアウトでした。
これからの作業フローはやはり入力レベルの確認からで、Y信号をもうちょっと追ってみます。
アドバイスいただけたおかげで、見直すべきところが見えてきました(ていうか穴、ありすぎ)
長々とスレ汚しすみませんでした。
進展あったら書かせてもらいまつ。
係数の方を1.024倍しておいて、1024で割れば 速くなるんでないの。 オーバーフローの検討は必要かもしれないが。
846 :
827 :04/07/12 22:51 ID:Kq/lWePm
>>844 1.
文章だけだと判断し難いが、多分合ってると思われる。
単に黒が浮いているだけと思われる。黒線でも写真なんかで撮影すると、
テカリが出る事があるだろう。それかもしんないよ。
「流れる」も、TRSに対して黒3本が止まっていたら、ほぼ正解。1ライン
まるまるHやLは、Vblankか何かを偶々引っ掛けた時じゃないのか?
3.
お〜ィ。マジで 1000d で割ったのか?
そんな事したら果てしなく遅くなるぞ。割り算しないように係数(1164d)
の方を弄るんだよ。
>>845-846 ありがとう
orz…割り算…ウフフフ (泣けてきた
>>846 1.
そか、VBLANKがあった。
黒3本が止まってる……とは言い難い流れようなんです。どうにか3本あるのはわかるのだけど。
まずはblank外してやってみまつ
>>844 具体的には最終結果が255フルスケールに収まるように全体を
スケーリングすると楽よ。(上位8bit)
トリガをTRSで掛けてるみたいだけどHDで掛けられれば横方向の
流れは止めやすい、pinが余ってれば観測用トリガを出力させて
みては?
849 :
827 :04/07/12 23:38 ID:Kq/lWePm
>>847 考え方間違ってる、blank外しちゃダメ。さらにわけ判んない波形になるぞ。
Vblankの所でトリガが掛からないようにするべき。
尤も俺はここまでしない。オシロでだいたいの当たり付ける程度で済ましている。
ノイズの影響で3本線が見え難くなってるだけ、って事もあるよ。
TRSだがSAVでトリガ掛けてるよね? まさかとは思うがEAV,SAV両方でトリガ
を掛けて、流れてるように見えてるだけ、ってなオチじゃない?
>>845 こういうアセンブラの時工夫したノウハウって結構今役に立ってない?
851 :
825 :04/07/12 23:55 ID:CoYRCJvO
>>848 ありがとぅ
>具体的には最終結果が255フルスケールに収まるように全体を
えと、255フルで動くように全体を調整しろってことですよね。
ていうか、俺、やはり解ってないぞ
算数が解ってない。
掛け算でbit幅増えるわけだが、最終的に8bit残したい場合どのbitを残すべきなのか。
今は、下位8bit取っちゃってます。(アンダーフローの処理後)
上はクリップしてます。
>スケーリングすると楽よ。(上位8bit)
上位8bitを調整するの? 上位8bitで調整するの?
すません
>HDで掛けられれば横方向の流れは止めやすい
HDってなんですか? OTL
ハードディスク? 水平ホニャララ?
>>849 はい、SAVでかけてまつ。了解です。
>>850 やはり皆さん、verilog/VHDLに辿り着く前に
何カ国語(違う)も修めてきてるのですね…
>>851 > やはり皆さん、verilog/VHDLに辿り着く前に
> 何カ国語(違う)も修めてきてるのですね…
昔風(二十年くらい前)に言えば「ABC」を習得してた人は多いと思うよ。
アセンブラ(最低三種類位のCPU)、BASIC、C < ABC
今やそれに、Vが二種類と新しいCってところか。
853 :
825 :04/07/13 00:14 ID:nyX7Bcyz
>>852 ウヒャー イパーイ
なんていうか、他人様のソースをゲッツして読んでみると
自分とは、回路の捉え方とか構築の仕方とか
考え方がやはり違うんだなースゲーと思うことが多々ある。
一朝一夕でパクれるものではありませんが
854 :
827 :04/07/13 00:16 ID:86vmaalr
>>852 すごいっすね。
俺の場合、ABCはともかくV二種類はかなり怪しい。
新しいCに至ってはさっぱり分からん。
新しいCは、出来るようになると便利でつか?
>>851 HD 水平ドライブ信号
各種アナログタイミング関連はこれを参考にするとわかりやすいかも。
http://www.sony.co.jp/~semicon/japanese/img/sonyj01/e6801439.pdf (SAVがちゃんと分離できてればそれで問題ないです)
今頃気付いたが、NTSC出力が有ればテレビで画は確認できるよね。
明るさとかも直接見れるし、オシロのTRIG(VideoSync)が使えるし。
多分MTV-54K0DNかな?
スケーリングの件は実際のY/Cb/Crの最大値を入れて計算してみて。
(Blueが一番きつい?)
で、この最大値がb11111111XXXX(Xは桁数で変わる)になるように
全体に掛ける定数を求める。
上位から8bit使えばOKなように掛ける定数(1164とかの部分)を書き換えておけば
出来上がり。
856 :
825 :04/07/13 01:37 ID:nyX7Bcyz
>>855 ありがとぅ
HD了解しました。
>多分MTV-54K0DNかな?
何故バレタ───(・∀・;)───!!!
車ロボの目にしたかったの。RGBからデータ間引いてCPUに渡したかったんだ。
FPGAのが勝手利きそうだったんで。
NTSCの出力はちゃんと見れてるけど、FPGAでRGB変換できてるかモニタしてみたかったんです。
(そう、
>>825 はメインの作業ではなくデバッグ作業の一貫…orz)
スケーリングの件、…(・∀・)了解!!
857 :
825 :04/07/13 21:36 ID:nyX7Bcyz
お世話になってます。
(そろそろウザいでしょーか)
>>846 >>849 あたりを見直してみたら
入力信号はかなり正確にモニタできるようになりました。
(ノイズは見えるけど)
>>845 >>846 で指摘されたとおり割り算を修正
速度も改善。…なんだよぉ、速いんじゃんよぉ…orz
>>855 のスケーリングを試してみました。
Blueの最大値に合わせて定数を決めて、RGBそれぞれにかける。
上位8bitをRAM書き。
モニタ映像は…をををおおぉ!それっぽく見えるじゃん!
(FPGAのメモリが少ないために狭い画面だけど)
ブラボォ!
───と思いきや、全体的に暗い。
白い紙を見せても強いグレーになってる…
スケーリングで持ち上げすぎ?
ていうか、255-0フルで動けてない?
今日はあんまし時間取れなかった…。ここまででした。
自分なりに調整してみたいところがいくつか(いくつも)あるので、まだまだ悩んでみます。
ありがとうございました。
>>857 おお、画が出た!おめでとう。
あとは普通にデバックできそうですね。ガンガレ。
859 :
827 :04/07/13 22:40 ID:+PzHJGC0
>>857 おめでとう!!
絵さえ出りゃ後は見ながら出来るから気分的に楽だよね。
俺の要らん発言のせいで一時はどうなるかと・・・・・
後もう少し。がんがれ〜!
860 :
825 :04/07/14 01:14 ID:jZQRw10G
。・゚・(つД`)ノ アリガトー
>>857 んで、ロジックが完成したら、当然恩返しとして公開するんだろうね
862 :
774ワット発電中さん :04/07/15 01:46 ID:qflcqGZ5
今時のFPGAで外部クロック160MHzは可能でしょうか? 一応、32bit Full Adderをフンダンに使用したアーキの論理を検討しています。 DMA機能を持ってるんで、アドレス加算機能は不可欠っす。
このスレ系のニュースグループかメーリングリスト紹介してくだされー
>>862 可能でしょ。ただし信号をだらだら流してるとクロック下がるから、適当にラッチ入れるとよろし。
>>862 その周波数でDDR-SDRAMを動かした実績あり。
結構テクニックは要るが可能なレベルだよ。
866 :
socket774@techno :04/07/17 01:19 ID:V8oxY2nD
今更ながらに、今見たもんで(w
>>825 自分は今ハイビジョン用のCCDのカラープロセス部分の
設計調整してるんですが、、、
カラーマトリックスの演算禿しく間違えてません?
私の場合1.164とか小数点交じりの計算する場合
電卓で256倍とか1024倍して8ビット(9ビット)や10ビット(11ビット)の
符号付の2進数にして演算(乗算)してますが。
(勿論その後少数点の位置にあわせて四捨五入とかして出力をあわせこむ)
こういう回路の調整するときはあらかじめテスト信号発生回路を
FPGA内に組込んでおくと問題の切り分けを含めて調整が楽になります。
自分はH、V方向ランプ波形、クロスハッチ、カラーバーなんか入れ込んで
やってますけど。
>>862 使うFPGAの物により可能。
確か上司がPC2100のDDRをStratixで動かしてます。
DQSが8bit毎にしかないって言って困ってました(w
2GBのメモリモジュールじゃ4bit毎なんですよ、DQSの信号線。
色々やって、ちゃんと動いてます。
867 :
774ワット発電中さん :04/07/20 01:36 ID:fiuQ8gpL
ハードから入っていった人と ソフトから入っていった人で 違うんだろうなぁ 考え方とか
869 :
アイラブ同期式 :04/07/22 20:53 ID:E90sexcB
つりと思われるくらい厨な質問かもしれないが、マジなんで助けて下さい。 昨日、FPGA(ALTERA)の記述で上司から叱責を受けたのだが、内容がどうにも 納得がいかず、皆さんの意見を伺いたいと思いカキコさせて頂きました。 私はセミナーで「FPGAは全て同期式で設計しろ」と習ったものだから、基本的に 全てのDFFのクロック入力には共通のクロックが繋がるように記述しています。 (CPUアクセス用のレジスタなどWrite信号をclockとしている等、例外もあります。) 今、画像処理系のFPGAを設計しているんのですが、上司から「垂直方向の 処理回路には、水平同期信号をDFFのclock入力にしろ。」と言われました。 個人的には、System_Clock (dot_clock) を全てのDFFに突っ込み、水平同期信号 をスタートトリガとするように回路を組むのが、正しいと思っています。 上司にこの事を突っ込んだところ、「そんな事をすると回路規模が大きくなり リソースを無駄に消費する。消費電力も増えるから止めろ!」と説教されました。 いまいち、この上司の意見に納得できていないのだが、やっぱり私がバカなの でしょうか? プロフェッショナルの皆さん、御意見お願い致します。
↑ ありゃ。 IDがなんだか卑猥!
>>869 Eカップ90とIDセクースおめでとう。うらやましい奴め。
怒りは解るが、通常sage進行してるスレをageるの程の事かな?まぁ餅つけきたまえ。(w
さて、その上司は古くから設計をしていて回路図でしか設計をしたことが無いような
方ではないかな? これはかなりありがちで、同期式回路はでかいとか、速度的に
不利になる、消費電力が大きいと自分の常識だけで怒っているに過ぎません。
頭が今風で無い方に現在の常識を押しつけるのははっきり言って酷です。 が、これが
上司となると実害が大きくて困りますね。
グローバルクロックを分けて低速部を作るのも一つの手ではあるけど苦労に見合うだけの
結果が得られるかどうかは非常に疑問。
872 :
774ワット発電中さん :04/07/22 21:51 ID:uda+9uTZ
>>869 製品として、消費電力がどの程度重要なのかによるかと。
動けば良いのか、消費電力を下げることを目的に開発しているのか、
自分が作っているデバイスのセールスポイントを確認してみては?
完全同期回路は、ちょっと前まではやった話。
今は、不要なところは部分的に低速クロックで動かすという手段の方が
増えつつあると思う。
御意見ありがとうございます。
>>871 ゴメンナサイ。チョット頭に血が昇っていたかもしれません。
御指摘の通り、この上司は現在でも回路図ベースで設計してます。
チョット覗いてみた事もあるのだが、非同期回路もいっぱい入っていて、
レポートはワーニングの山でした。(この時点でバカにしてるのかもしれませんね。)
FPGAに移行する前に、高速部・低速部に分けて設計した事もあるから、設計
出来ない事もないです。でも高速部・低速部のデーターの受け渡しというか、
タイミング考えるのがメンドクサイと思ってしまいます。この場合のタイミング検証
って自力でやんなきゃだめですよね。
さーて、上司への対応どうしたもんか・・・・・ 悩みます。
>>872 消費電流は無問題です。ハード見たが、アナログ部(A/D,D/A)の方が
ガバガバ電気食ってるみたいです。
「消費電力増えるから止めろ」は、「意味も無く無駄な回路組むな」の意味の
ようです。
完全同期式は流行遅れなんですか。 _| ̄|○
私の上司の言い分も、間違いってわけじゃないんだー。
さらに厨な質問かもしれませんが、不要なところのクロックを落として低消費
電力化って図れるものなんですか? 消費電流見積り用の計算式を見る限り、
データーの平均反転確率が最もウエイトを占めてるように感じます。
データーラインの平均周波数(?)が同じなら、供給クロックの高低はそれほど
大きく影響しないような気もするのですが、どうなんでしょう?
> 完全同期式は流行遅れなんですか。 _| ̄|○ FPGAの場合別に時代遅れでもないよ。 そう言ったチューンをしてる時間より次のプロジェクトって感じで TAT重視だと凝った設計をしてる時間が無いと思うし。 個人的にはツール側で対応しない限り積極的にやろうとは思わないな。
> 電力化って図れるものなんですか? 試したことが無いので良くは解らないけど、クロックが供給されているゲートは H、Lするんだからただクロックが供給されているだけでもクロックバッファは、 無駄に電気を食うし、高速なクロックになれば顕著でしょうね。 ただ、問題になるほど食うのか?劇的に改善するのかって部分は、?ですね。
>>869 漏れと同じ流儀なのですね。しかも同じ画像系。
件の上司が872が考えているようなレベルで考えてるなら一理
あるけど、未だにTTLライブラリ使って回路図入力してるような
古い人が多いから単に古い常識に囚われていると思われ。
カウンタのデコード結果を非同期リセットに入れろとか言いそうだ。
つか、どうせHDL読めないから適当にごまかしとけば?w
871,872が書いてるけど今時は内部信号をグローバルとして再分配
する事が可能だから低速クロックを作ってという解も有る。
グローバルとして分配できないならリソース食い潰すので問題外。
ただし垂直処理回路の出力が水平処理回路より遅延が出る分、
垂直処理回路の出力をクロックで再び叩くような場合は速度が
落ちるし、タイミングアナライザ見てレーシングが出てる可能性
もある。真っ赤になったタイミングアナリシス見せれば上司も
おとなしくなるかも知れない。
それでも譲らない石頭だったら垂直処理回路の出力をクロックで
再び叩く個所をイネーブル付FFにして水平の特定位相の1クロック
だけで叩くようにするとかして逃げる。
即レス感謝です。ありがとうございます。
>>874 そう言って頂けると非常に安心します。
FPGAで完全同期式で設計するようになってから、「細部のタイミング検証から
やっと開放された!」と非常に喜んでました。
完全同期式でやる前は、いちいち各場所のタイミングをnsecオーダーで計算
したり、ラッチミスが発生する可能性のあるポイントは何処何処で、と考えながら
設計してました。今はFPGA入出力PINのsetup,holdだけ気にして、タイミング的
にはブラックボックスとして扱っています。
これをまた不完全同期に戻すのか、と考えるとチョット鬱になっていました。
>>875 ああ、やっぱりそうですか。
CPUなどと違うから、あまり効果無いかなと思ったもので・・・・・
↓続く
878 :
アイラブ同期式 :04/07/23 01:14 ID:2bAyyiY+
↓続き
>>876 似たような考え持ってる人がいると安心できます。ありがとうございます。
小企業勤めなもので、周りに議論できる人がいません。本とセミナーで学んだ
ものですから、いま一つ自信が持てないでいました。
件の上司=頭が古い人、で決定しちゃってもいいのかな?
>HDL読めないから適当にごまかしとけ
これが、中〜途半端に読めたりするから困ってしまったりするんです。
Verilog読めないはずだから、全部Verilogに書き写すか(藁)
そういえば件の上司が3ヶ月くらい前に、「グローバルラインが足りん」とか文句
言ってたな〜。
タイミングアナリシスの見方知ってるかなー。だいたいレーシングを解っていない。
半年くらい前に、外部入力の信号を非同期のクロックで叩きその信号をカウンター
のクロックに入れてって回路作ってたなー。当然誤動作。
その人の作った基板、RCフィルターがALTERAの周りに何組も付いてた。
まさかと思うが凄い事してるのかも。
↑あっ、スマン。またageてしまった。 調子ぶっこいてカキコしてると、すぐsageるの忘れる。_| ̄|○
>>878 その上司さんも懲りない人だよね。(w
漏れが業界に入ったときは、だんだんGALとかCPLDが多くなってきていて
それでも足りない部分はG/Aでと言う時代だったから、ASIC屋さんとの話や
Simの都合で非同期回路は親の仇の様に嫌ってますよ。
ASIC屋さんとつきあいが無かったらクロックやシビアな信号線にコンデンサを・・・
って手で逃げることに慣れてしまって同期式の有り難さに気づかないでしょうし
コンデンサ付けがデバッグだと勘違いしてしまいがちだからね。
それで、FPGAの性能が悪いと逆切れされたりしたらたまらんでしょうなぁ。
>>880 レスありがとうございます。
件の上司、G/Aの経験もあるのだが・・・・・
私はG/A全く知らないのですが、聞いた話だと何処かのセンターに行って、
WS借りて、回路記述して、サポート受けて、シミュして(ここまで約1ヶ月)
3ヶ月後くらいには完成というものだったらしい。
当時のドキュメント見た事があるが、思いっきり回路図で一部非同期回路
も存在していた。タイミング的にクリティカルになりそうなところは、クロック
が個別のピンに割り振られていた。G/Aに位相が微妙に調整された
クロックを、数種類外部からぶち込んで動かすような石です。
882 :
774ワット発電中さん :04/07/23 02:09 ID:jGOHqCtT
ASICの世界では同期式から非同期式に時代が逆行し始めているってホントですか?
>>882 そう言う話も聞くけど現実にツールどういう風になってるのか、どんな風に回路を
実装しているのかは聞いたことがないのでよくわからんです。
論文レベルでは有効性が認められてるし、理論的に早くなりそうなのは解るが
漏れの手の届くところにないから今は上場レベルで十分だと思ってるけど。
ふぁ〜。疑問の思ってた事(殆ど愚痴になってるが)カキコしてたら、なんかチョピーリ スッキリしてきました。今日は普通に眠れそうです。 皆さん、厨な質問に御付き合い頂き感謝です。眠くなってきたんで、今日はもう 寝ます。ありがとうございました。
>>881 > 当時のドキュメント見た事があるが、思いっきり回路図で一部非同期回路
> も存在していた。タイミング的にクリティカルになりそうなところは、クロック
> が個別のピンに割り振られていた。G/Aに位相が微妙に調整された
> クロックを、数種類外部からぶち込んで動かすような石です。
ちょっと昔のやっとサブミクロンになった頃ならバリバリの正統的設計だよ
だけど今もコレじゃちょっとね…
今時のFPGAは完全同期で設計できるようにクロックネットツリーが
一昔前の常識ではありえない程に強化されてるんだから、それを
使わない手はない。電力消費もクロックツリーが主なので
一部回路に低速クロックを採用してもさほど小さくならないだろう。
ASICだったらクロックツリーを減らすことで電力削減できるが、
FPGAでは、すでにクロックツリーが存在して、使っても使わなくても
電力をバカスカ食ってるんだから、使わにゃ損々だよ
>>885 リターゲットの予定が無いなら変な小細工不要だろうね。
887 :
774ワット発電中さん :04/07/23 15:34 ID:tvpk+FsV
CCDカメラ弄ってる奴 FPGAのソース晒せば添削してやるぞ
>>887 何様?
てか暑さで頭ショート?
デバッグしてあげるから君の脳のソースを公開しろよ。
889 :
774ワット発電中さん :04/07/23 16:16 ID:tvpk+FsV
890 :
774ワット発電中さん :04/07/23 17:13 ID:tvpk+FsV
安月給だからって絡むなよ
891 :
774ワット発電中さん :04/07/23 18:15 ID:nZRB73Xp
超初心者なので質問のレベルが低くて恐縮です。 実際の開発で、function文やprocedure文って使いますか?
>>891 論理合成では使わない/使えない
シミュレーション用のテストモデルなら使いたいだけ使え
>>891 漏れの場合だがVerilogの場合は、function文を使いまくるけど
VHDLのprocedure文て使ったこと無い。
御意見ありがとうございます。
>>885 そうなんですか。昔はあれが正統だったんですか。
自分が井の中の蛙だと思い知らされます。 _| ̄|○
こういったトレンドって数年で変わっていくものなんですネ。
これから先、私は果してついていけるかどうか、ちょっと不安になってしまいました。
FPGAのクロックツリーとか設計した奴って、純粋に凄いと思う!
この御陰で同期式設計ができるんですものネ。
>>892 function文が使えない論理合成ツールなんて今時あるのか?
すげー昔のDesignCompilerだって使えたが。
適当な事言っている夏厨か?
>>894 単一のクロック設計で統一しておいたほうが良いよ。多クロック使用は経験を
積んでからにしたほうがいい-メタステーブルなどの同期回路の理屈を十分に
理解したほうが良いよ。
TTLなどのゲートで回路を組んでいた人は、完全同期回路を使うことが出来
ないし、前述にあるけど、タイミング合わせなんて技を使う人もいるからね。
(という傾向があるのね)
多数クロックも使うけど、チマチマと使っているのなら、その意味は無いよ。
たとえば、全体が20%以上が別クロックを必要としているのなら、2つの
クロックは意味はあろうが、ほんの数%程度なら意味はないよ。
898 :
774ワット発電中さん :04/07/25 20:59 ID:6PVi99KA
>>891 俺は結構使ってるよ。
必ずその後にラッチ通して、全体としては同期回路になるようにするけど。
function だけで完結する回路は作らないけど。
初心者です。 初歩的質問なのですが、HDL用のエディタで何か良いのありますか? とりあえずQ2のWeb版でやってるんですけど、HDLの予約語の表示色が変わってくれてスペルチェックしてくれるだけでも随分助かっているんですが、機能とかいまいちみたいなんで、良いのがあったら教えてください。
おいらは emacs の verilog-mode.el 使ってるyp!!!
>>899 漏れはK2Editor。
いろいろと存在するフリーツールの中では一番使いやすかった。
有料エディターでは、ペギーってのがCSVに正式対応しているらしく使ってみたいのだが
なかなか、時間が無くて試せていないのが現状です。
902 :
774ワット発電中さん :04/07/26 15:23 ID:glrrc9ji
emacsでスペルチェック,表示色変更等全く無しの 環境でやってる我々は時代遅れさんですか?
俺は、英文書くときにスペルチェック(ispell)はするが表示色変更はしない。 emacsは常に -nwでしか起動しない。俺のマシンにマウスなど不要。
>>902 単純な文法ミスなどしないと断言できるなら別にそれでも良いんじゃないの?
ほんの数年前まで、便利なエディターなんて存在すらしなかったのだし。
>>897 レスありがとうございます。
みなさんにいろいろ御意見を頂いて、私の中では方針がかなり固まってきました。
後は、対上司戦略をどうするかだけです(藁)。 あぁ〜 頭が痛い。
不完全同期式でも設計できなくはないですが、とーっても面倒に感じます。
特にタイミング検証、もう考えたくねー!って感じです。
リターゲット、デバッグを考えると非同期回路をFPGAに入れようという思想が かなり愚かと言うことに気づかないのだろうかね?>上司君
>>906 ゲートアレイの感覚に捕われてるんじゃ無いかな>>上司
FPGAは完全同期設計に最適化されてるってことを
理解させる必要が有ると思われ。
>>907 G/Aの時はメーカーの担当者からうるさく同期化しろと言われましたよ。
もうかなり前だけど四社程のメーカーで、G/A、S/Cを何点も起こしたけど
同期化と言う点だけは何処も共通してうるさかった様に記憶しています。
ただし、メーカーの担当者が非同期回路を入れさせろとうるさい客が居て
対応に苦慮しているとこぼしていた事を思い出すに、上司君もその類だった
のではないかと想像しています。
>>906-907 レスありがとうございます。
それを何と言って納得させるか、ってとこが問題なんです。
後輩ならガツンと言って終い。同僚ならバーカで終い。上司なら・・・どうする?
今、考えてる選択肢
@上司の言う通り非同期回路にする。 ⇒ 嫌だー!(魂の叫び)
A上司が見て理解できない記述にする。 ⇒ 後日私が見ても理解出来なかったら困る。
B上司の知らない言語(Verilog)で記述。 ⇒ 今から書き直すのは面倒。
C上司を説得する。 ⇒ かなり難しい予感。CするぐらいだったらBの方が早いかも
D完全無視を決め込む。 ⇒ 後々面倒。仕事がやり難い。
E上司の指摘事項を忘れた事にする。 ⇒ 私がバカみたいでチョット抵抗あり。
F
>>876 さんに教えて貰った方法(下3行)で逃げる。指示に従った事にして、
後はとぼける。「えぇ〜こういう意味じゃなかったんですか〜?」みたいに。
今のところ EF が有力です。
>>908 少し昔のGAの場合、非同期回路も正統と上のカキコでもありましたが、なんだか
だんだん混乱してきた。 単に時代の流れの、移り変わりの問題?
私はGA全く知らないので、間違った事を書いてたらゴメン。
件の上司がGAする時に、メーカー担当者が「非同期は絶対ダメ!」と言って
くれていたら良かったのにと思います(グチグチ・・・・・)。担当者さんゴメンヨ- !
上司が今まで非同期でいろいろやってきた分、プライドとか大いにありそう。
いろんな意味で怖いです。
非同期式回路のメリットが、同期式回路のデメリットを越えるのかを 論理的に説明して貰えばいいんじゃ? ツールも含めてね。 FPGAに非同期式回路を入れろと間抜けなことを言う奴に、きちんと 説明が出来るとは思わないが。
>>910 メーカーは客が全てだから、うるさく言われれば非同期回路でも担当者が動くように
細工していた可能性が高い。
当然、Simではワーニングが出まくりなので解析は大変だったはずだが、本人は苦労
していないなら非同期式回路もASICに入ると言う認識になるだろうね。
メーカーの発行している、ASICのマニュアルにはこういう非同期回路は入れるなと言う
禁止回路を載せて同期設計への移行を促していた様に思う。
アドバイスありがとうございます。
>>911 私はまだ、その場で即反論出来るほど極められた人では無いんで、それやると
墓穴掘る恐れがあって出来ません。orz
それに更にわけわかんない事言われたら、また夜眠れなくなるから止めときます。
せっかくのアドバイスを無駄にしてゴメン。
> ツールも含めてね。
「俺はできている!」と言われるのがオチ。 ← この辺のプライドが怖い。
>>912 裏で笑われて 困ったチャン 扱いでもされてたのかな?
G/Aやスタンダードセルの場合は、半導体メーカー側のエンジニア(ま、エンジニアというより 技能者って感じだが)が泣くケースが多い。大手のセット屋の不完全なRTLを渡されて、 デバッグそして論理合成と多相クロックのP/Lなど、さ。ってことで大手のセットメーカーの エンジニアなんてたいしたことはない。 でも、そのうち、大手のセットメーカーなんかも P/Rを自前でやるようになって、気分は変わってきたが、彼らはバグがあっても、ファーム 屋に泣いてもらえばいいから、結構いい加減だったりする。
>>914 まともなメーカーのエンジニアと仕事したことないんだね。かわいそうに。
つーか、相手にするなって。 いきなり的外れな訳のわからん事を言い出す奴はまともじゃないんだし。
917 :
774ワット発電中さん :04/07/27 10:06 ID:LqzLvtte
>> 安月給でメーカーに苛められてるらって絡むなよ
918 :
914 :04/07/27 13:46 ID:4/fwi9UG
ま、多いと言う事実なんだから、仕方ないべ。俺は設計屋のほうなので、
こういった仕事はASICの専門部隊の仕事なんで、関係はないが、愚痴を
聞く機会は結構あった。
相手企業は世界的に有名な会社ばかりだよ。
ASICそのものが衰退であるんで、こういったしわ寄せはP/R会社(XX印刷とか)
に行っていますよ。彼らに本音を聞けばわかるがね。
客先にクレームをつけるのは難しいので、内部処理なんで表には出ない。
それに大手セット屋で派遣や出向だらけなのはよく聞く話なんでね。
「訳がわかんね」じゃなくて、本当のことを知らせれていないということかもね。
>>912 さんもこういっている:
>メーカーは客が全てだから、うるさく言われれば非同期回路でも担当者が動くように
>細工していた可能性が高い。
とあるんだから、業界では常識と考えたほうがいいかもしれんよ。
912だけど、世の中客の立場で話すと自然と傲慢になる物でしょう。(w メーカーの製品設計担当者に友人がいるから内情は解るんだが、昔みたいに 初期の設計からASICを起こすまで一人で担当して、ASIC屋と連絡を密にとり お互い泣く所や落としどころを知ってる関係ではなくなってるパターンが多い みたいだね。 だからノウハウが無い担当者がASIC屋に無理難題を押しつけてしまう事が 増えているのが現実の様だ。 デザインウェーブでエンジニアはいろいろと 広い知識を付けるべきとやっているのにはそれなりに意味もあると痛感する 今日この頃です。 メーカーも人あまりの人材不足で出来る人間にはなかなかお目にかかれない のが現実と言ったところでしょうか。 無理してでも新人を現場に投入しないと人材育成にならないと言う判断も働いて いるようだけど教育仕切れていない連中と仕事をする人のことを考えると気の毒 です。
聴く耳を 塞ぎ怒るは 「バカの壁」 お粗末 ずっと昔アイラブ同期式さんの上司と同じことを 言った上司がいたなぁ。結局同期式に戻したけど。 こんな上司ほど動かない時後で責任転嫁しやすい。 G上司の上司に「彼」の素行を相談するってのも手かも。 (上司の上司もひどかったら意味ないっすけど)
921 :
774ワット発電中さん :04/07/28 09:04 ID:pm5a8zOo
何気なくエディタのMIFESをバージョンアップしたら VHDLの予約語の色が変わっていた。拡張子を見てくれてるんだな。
レス&御意見ありがとうございます。
ASIC屋って想像以上に大変なんですネ。学生の頃、その道に憧れた事もあるから
ちょっとショックです。 逝かなくて良かった〜 ブルブル
>>920 アドバイスありがとうございます。
責任転嫁できても、最終的には私の手元に戻ってくるものと思われます。
二度手間になる可能性が濃厚だし、客先の心象を悪くする事だけは避けたいです。
その手Gは使えません。なにぶんにも小企業ゆえ人が少なく、
上司とその上司の間は年齢が大きく空いています。よって上司の上司は、
旧石器時代の言葉(技術語)の通じない人です。
少し違うが、私の信頼する 上司の同僚 の人(要するに他所の課の上司で、
且つ私のもと上司)に休憩時間この話を振ってみたところ、
「あいつは人の言う事を聞かないから、諦めた方がいいよ。」と諭されました。
923 :
774ワット発電中さん :04/07/29 00:21 ID:EwI5oHqU
>>922 大切なのは君のその悔しい気持ちを将来君の部下にさせてはいけないって事だろう。
>>924 アイタタタ! その思考、確かに欠落してました。 忘れないように肝に命じておきます。
10年20年後には逆の立場になるわけで、その頃のトレンドに自分が付いていけてるか、
かなり怪しい予感がします。同期式どころか論理回路も無くなってたりして。
「いまだにHDL使ってる香具師の数→」 「FPGA世代は逝け」
「システムを論理的にしか考えられないじじいはゴミ」
この板にこんなスレ出来てるかもしれませんしネ。(笑) ←笑えないかもしれないが・・・・・
いつでも頭は柔らかく! ですかねやっぱり。
10年20年後を考えると ワクワク→ドキドキ→ウツウツ って気になります。
926 :
774ワット発電中さん :04/07/30 23:15 ID:NThrjLwu
同期式について質問です。 たとえば、16段のカウンタがあったとして、9段以降はカウンタが二つあってそれぞれ外部信号でアップカウントかダウンカウントか制御できるようになってる。 というようなものを同期式でやるにはどうすれば良いですか? 9段以降を同期でやる必要があるかどうかは別として、実現可能? 実現可能としても面倒な記述になりそうな気がするんですが、私には無理。 9段目以降のカウンタのクロックに8段目の出力を使ったとしても、論理合成ツールが勝手に同期式にしてくれたりするツールなんてないかな?
>>926 普通は問題無く同期回路で実現可能。
ただし、外部からの制御信号がクロックに対して非同期な場合、
制御信号を同期クロック系に叩き換える必要がある。
制御信号自体のトグル周波数がクロック周波数に近いか、それ以上な場合は
同期回路での実現は無理。
928 :
774ワット発電中さん :04/07/31 01:43 ID:ivkao9gn
>> 926
16段 (16ビットのことか?) と考えずに、8bitの単純カウンタが一つと
8ビットのアップダウンカウンタが 2つあると考える。8bitの単純カウ
ンタのビットが全て 1のとき、次のクロックでアップダウンカウンタを
+1または-1する。
>>927 の言うとおり、クロックに非同期な外部か
らの信号は同期化する必要がある。メタ・ステーブルに気を付けれ。
なお、ここでのカウンタは2進カウンタと想定している。
> 制御信号自体のトグル周波数がクロック周波数に近いか、それ以上な場合 そういう場合は外部信号のクロックでカウンタを動かすしかない。 カウンタの出力を何かの値と比較した結果信号を 同期回路クロックに叩き換えて、順序回路の状態遷移条件信号とする場合に 肝なのはバイナリカウンタにしないでグレイカウンタにすること。 グレイカウンタならグリッチが発生しないのだ。
931 :
926 :04/07/31 09:24 ID:U4Cyt9a0
>>297-930 同期式の作り方が分かりやすく説明されてて参考になりました。
というか、私自身、まだよく分かっていなかったようです。(^^;)
16段とは16ビットの2進カウンタのことです。
アップダウン制御信号は最終段の周期よりもかなり長い非同期のものを想定していました。
ありがとうございます。
VHDLを学び始めたばかりなのですが、多層化したif文だけで想定したカウンタが実現できるんですね。
宣伝乙。 しかし、これで5000円? たけ〜よ。
>>933 別に宣伝した訳じゃないが、いろいろと只の物安い物を試してて見つけた
訳で、人柱になろうかと思ってるだけ。
やっぱり日本人が作ってるのは好感もてるし。
入力のデフォルト値なんですが、 VHDLの a:in std_logic:='1'とか、AHDLの a:INPUT=VCC にあたるものって、 Verilogではどう書けばよいのでしょうか?
>>935 シミュレーション時のデフォルト値はinitialで設定できるけど、
論理合成時は無視されるから、電源投入直後にデフォルト値
がハード的に保証される訳ではなく、結局はリセットタイミング
を設けて初期値を代入するしか手がないんじゃないかな?
937 :
935 :04/08/10 00:30 ID:kg0xzm7P
なんというか、たとえば下位モジュールに clock enable を追加したら、 過去に作った上位モジュールすべてに module_name instance_name (.clken(1)← これを追加する作業が必要になるのか? と思ったわけです。
938 :
774ワット発電中さん :04/08/13 23:46 ID:50uk4FKN
回路図は詞だ そして詞を書いて回路が創れるようになったのがHDL とか逝ってみるテスト そしていつかは詩で回路が創れるようになるかもしれない とか逝ってみるテスト
939 :
↑↑↑↑↑↑ :04/08/14 00:20 ID:7afLbBr2
回路図が詞なのか詩なのかはどうでも良いが、プリント基板のパターン設計は何なのだろうとふと思ってしまった FPGAやCPLDの内部でさえも、動作速度を上げる為に内部の配置配線をいじるのは常識になりつつあるみたいだし、、、 プリント基板レベルでの配置配線はFPGAやCPLD内部の配置配線をいじるより遥かに動作速度に影響ありそうな気が? プリント基板レベルでの配置配線が詞で書ける時代はくるのだろうか?
940 :
774ワット発電中さん :04/08/14 07:18 ID:wEtmwPHE
↑つーか、自動でしょ? あんた、学生?
941 :
774ワット発電中さん :04/08/14 11:17 ID:lSrDgwlT
>>940 部品の配置とか置き方をある程度指定してやんないと、高速で作動させるには無理のあるとんでもないのが出来るでしょ?
最近は出来上がったプリント基板のパターンをシミュレーションしてノイズや遅延の評価するみたいだけど。
でもそれは基板屋さんがやってくれるわけではない。
以前はパスコンとか、ICのそばの電源とかGNDのべた層に付いてるだけのものが多かった。パスコンの意味が殆どないようなパターンがまかり通っていて、回路設計者もそのことにたいして注目していなかった。
続きをどうぞ。
>>940 自動って、そんなレベルのものしか作ってないのか?
クリティカルな部分のパターンは、回路設計者が引かないと性能でないでしょ!
同じくFPGAのピン配置なんかもパターン考慮して決めていくが、やってないのか?
BGAは、パターンをイメージしながらピン配置するのは特にタイヘン。
940は低レベル技術者
LSIのレイアウトは曼陀羅に例えられそう。 ただ、最近は感動するレイアウトって少ないんだよなぁ。なんかごちゃごちゃしてて。 他社チップでもこれは凄いと思うのは少ない。10MGって言っても"へぇ〜"ぐらい。
>>945 基本的にはツール任せだからねぇ。
それこそ莫大なロット数の出るフルカスタムチップでもないと
今の時代、職人的レイアウトはできないと思う。お金的にも時間的にも。
947 :
774ワット発電中さん :04/08/15 00:52 ID:vu+RoTMy
VHDLのconfigration記述について質問なのですが、 現在テストベンチを作成しているのですが、 workライブラリの中に検証対象の回路をコンパイルしたデータが入っており、 回路の一部のRTLを検証用のテストモデルと置き換えて検証を行いたいのです。 テストベンチのTOP階層とコンフィグレーション記述のVHDLは同じライブラリにコンパイルし 回路本体とテストモデルは別ライブラリにコンパイルしてあるのですが、 コンフィグレーションで別ライブラリを指定すると コンパイルの際にライブラリの中にエンティティが見つからない といったエラーが出ます。 コンパイラはNCVHDLを使用しています。 VHDLに詳しい方、どなたか教えていただけないでしょうか?
948 :
マイコン直結CCDが欲しい :04/08/15 01:23 ID:LxYkXxwg
ライブラリの使い方の問題のような予感。 サポートに聞いた方が早いかもよん
949 :
774ワット発電中さん :04/08/15 01:25 ID:BMiRH753
そうですね
950 :
774ワット発電中さん :04/08/20 00:18 ID:aps+BHvy
どなたか教えていただければ幸いです。 design_compilerでhigh fanoutが出たって警告が出てしまいました(TIM-134) どこがhigh fanoutになっているかしらべるコマンドがありましたら教えてください。 TCLモードだとあるみたいなんですが、私の環境ではTCLモードで 起動できないようなのです。 よろしくお願いします。 マルチポストすいません・・
板を跨ったマルチか? シノプシスに聞け。
952 :
774ワット発電中さん :04/08/20 00:29 ID:aps+BHvy
>>951 えぇ、あっちの板から来ました。
シノプシスに聞きたいのですが、学校がシノプシスから
お情けでソフトを使わせていただいている状態でして、
学生の私ごときなんざサポートを全く受けれないんです・・・
953 :
774ワット発電中さん :04/08/20 00:58 ID:aps+BHvy
report_netっていうのがあるみたいです ご迷惑をおかけしますた
954 :
774ワット発電中さん :04/08/20 04:43 ID:aps+BHvy
何度もすいません report_net ってやったらすべてのネットのファンアウト数がわかるんですが、 どのネットのファンアウト数もエラーになる基準値(1000)以下にもかかわらず エラーメッセージが出てしまいます。 こういう場合ってありえるんですか?どなたか経験のある方 いらっしゃいましたらご教授ください。よろしくお願いします。
>>950 TCLモードはdc_shell-tというコマンドです。
それと確か.synopsys_dc_setupをTCL風にする必要があるので
dc-transcriptコマンド(だったかな?)で変換してください。
ファンアウトのWarningはよく知りませんが
信号名が表示されていませんか?
956 :
774ワット発電中さん :04/08/20 18:59 ID:aps+BHvy
>>955 レスありがとうございます。試してみますね。
high-fanoutになっている信号名は表示されないみたいです。
いちいちageで質問するなよ馬鹿
958 :
774ワット発電中さん :04/08/20 20:32 ID:oMDPctYz
いちいちageで脊髄反射するなよ馬鹿
質問者の態度者ねーな
マルチポスト、age、逆切れ 痛すぎる馬鹿だ。 スレッド汚しをしないで貰いたい。
すんませんでした ただ逆ギレは自分ではないです
>>962 大人な対応ありがとうございます。
以前からsolvnet使いたいと思っていたのですが、SiteIDとやらを
教授(admin)に教えて下さいとメールしたまま放置プレーを
喰らっている状態です(;;)
>> 947 単純ミスのような気がします。 ↓3点は間違いないですか? (1) RTLと検証用テストモデルでentity名は同じか。 (2) RTLと検証用テストモデルのentityの中身は同じか。 (3) architecture名は同じか。(architecture XXX or entity is のXXXの部分) まずは、configuration文とNCVHDLのエラーメッセージを載せて下さい。 configuration文を載せるときは、RTL用と検証用テストモデルの両方か もしくは修正点がわかるように載せて下さい。
滅茶苦茶初歩的な質問なのですが、スマソ グローバルクロックとかシステムクロックとかって、HDLの記述上結線されているだけなら階層構造の3層とか4層とかの下位の深い層でも繋がっているんですか? 勝手にバッファとか入ったりしないんですか? それと、速度優先でコンパイルすると正常に動くのに、面積優先で合成すると誤作動する場合って、何が原因? 誤作動に影響ある信号は、一度メインのクロックでたたいているし、最高動作周波数の約1/20の周波数で作動させているので問題ないと思ってたのですが、面積優先だと誤作動してしまったんです。 結局、もう一度、最終的に処理する部分をメインクロックでたたき直したら、面積優先でも正常に動作しました。消費ロジックセル数も、クロックでたたき直す前と変わりなかったし、結果オーライでいってしまったですが。 最高動作周波数も、大して変わらなかったし、これで本当に良いのか?と疑問に思ったので。
グローバルクロック木の根元 スキューの心配休むに似たり 気まぐれは微妙なタイミング 渡るドメインにシンクロあり
>>965 high_fanoutに対する制限かけない限り
勝手にバッファは入らないだろ
論理合成ツールは何?
design_compiler?
面積優先の時どんな誤作動起きたのか
誤作動に影響ある信号ってどういう意味で言ってるのか
ちょっと情報が足りないように思う
968 :
965 :04/08/25 02:43 ID:WMQtx+zF
>>966-967 クロックに関しては、心配することなかったですね。初歩的質問に答えて頂いてありがとうございます。
実は
>>926 です。
21ビットの単純カウンタとその下に8ビットのアップダウンカウンタが2個あって、8ビットの方はアップダウン制御の他、ホールド、及び外部データのロード機能を持ってます。
マニュアルモードの時、外部データをロードし、このときホールド信号もON、外部データのロード信号は、21ビットのカウンタの全てのビットが'1'となったときにクロックでたたいたパルス使ってます。
オート動作に移行時に、ホールド信号を解除してロード信号もディセーブルにする。といった感じです。
そうすると、マニュアルモードでロードした値からアップカウント、もしくはダウンカウント開始する筈が、2つの8ビットのカウンタのうち一方だけが何故かロードした値からカウントを開始せず、オール’0’にリセットされてカウント開始してしまったです。
2つの8ビットのカウンタはどちらもそれぞれコンポーネントとして全く同じ記述のものを使ってたのですが、片方のカウンタの動作だけがおかしかったので、もしやと思って速度優先でコンパイルしたらどちらも正常に動いたのです。
クロックでたたき直したのは、ロード信号とそのイネーブルです。
論理合成はQ2のWeb版です。(^^;)
でも、ソース公開しなきゃわからんと云われそうなので、調査逝ってきます。
969 :
965 :04/08/25 23:06 ID:1gthgHLW
調査結果がでました(^^;) よくよく調べたら、ロード信号を作るタイミングが変更されていて、非同期の外部コマンド信号を受けた時にイネーブルの切り替わりとほぼ同時にロード信号が立ち上がるようになっていました。 最初はメタステーブルかと思ったりしましたが、対策はしてあるし、結論として、イネーブルからディセーブルに切り替えるときに、ロード信号もほぼ同時に立ち上がるため、ひげが発生していたと考えるのが妥当なようです。 ロード信号は非同期で8ビットカウンタに外部データがセットされるようにしてあり、また、マニュアルモード以外では、外部データはオール’0’となるようにしてありました。 ロード信号とそのイネーブルをクロックでたたき直せばひげが消えるので、前回の対策の結果としても辻褄が合います。 で、最終的に、ロード信号の立ち上がりをイネーブルの切り替わりから1クロック遅らせることにしました。 初歩的なミスだったようです。お騒がせいたしました。
970 :
774ワット発電中さん :04/08/28 00:28 ID:4Ufs69Xe
アクテルの無償評価版ツールて、シンプリファイやモデルシムが使えるんですね。驚いてしまった。
テクセルのサイトでは、日本語の簡易マニュアルもあるみたいだし。
それより何より、現時点でアクセスカウンタが164なのには驚いてしまった。
http://www.teksel.com/actel/libero60/index.htm Q2では通ってたソースを、アクテルの無償評価版ツールのシンプリファイで論理合成したら、より厳密に文法チェックされてワーニングがいっぱい出たのには参った参った。
どうでも良いから改行くらい覚えろ。
972 :
774ワット発電中さん :04/08/28 01:50 ID:OoDVFaza
どうでも良いから改行くらい覚えろ。
973 :
774ワット発電中さん :04/08/28 02:11 ID:QjGQ+vRh
どうでもよいけど、XGAとSXGAとUXGAを使ってる人とでは、改行位置が異なる。
974 :
774ワット発電中さん :04/08/28 02:46 ID:ba4/hJTn
質問というか悩み事というか。厨で申し訳ないが、皆さんの御意見希望。 私はverilog弄っている外注業者なのだが、今度客先でFPGAの回路レビューを行う事になった。 客先より 「HDLだと判らないから、回路図で資料を作ってこい。それとブロック図もね。」 と言われた。 こんな時皆さんどうしてますか? 最終手段として RTL_VIEWER で回路図面化するという手もあるが、こんなの俺が見ても わかんねー。 どうにかして突っぱねよーかと思ったりもしているのだが、何か良い方法あったり しないでしょうか。
>>977 情報ありがとうございます。評価版で試してきます。
>973 80カラム25行に収まるように改行汁!!
980 :
VHDL使い :04/09/02 23:45 ID:XpaR+gms
>>947 entity がおなじなら、architectureだけ置換するように、書いてあげれば
いいんじゃないの?
文法は、Webで調べたりしてね。それでエラボレイトし直せば
おそらくうまくいくんじゃない。
まとめ…entityと動作が同じなら、bindするだけでOK!
981 :
◆YMO/ALTERA :04/09/02 23:49 ID:jouCl5YF
980超えると24時間以内にDAT落ちしちゃうっぽいので 次スレよろしく〜 ゴメン、俺、カゼひいて辛いのでテンプレ用意する元気がない…(他力本願
982 :
980 :04/09/02 23:52 ID:XpaR+gms
ライブラリはこの際だから、WORKに必要なところだけほうりこんでおけばいい。 もしくは、Visibleになるように指定してあげる。 Library文とUse文をつかってね。 あなたの環境がわからないので、ライブラリのパスはようわからん。 しかし、こういうことは、僕も悩ましいとおもっています。 がんばってね。