板検索:
【Verilog】 記述言語で論理設計 Project9 【VHDL】(571)
まとめビュー
1
パラメタライズ推進委員[sage]   投稿日:2009/10/05 13:30:35  ID:q3gnCkvW(2)

 HDLの処理系も、それを実際に動かすシミュレータ・評価基板も、
 安価で入手できるようになってきました。

 このスレが目に入ったおまえ! HDLで何か作って遊んでみませんか。

 日曜工作のHDL書き、学生さん、プロの方、主婦の方、カキコお待ちしております。
 関連情報は >2-10 あたり。

 前スレ
  【Verilog】記述言語で論理設計 Project8【VHDL】
    電気・電子板の別スレッドへ

コメント2件


2
パラメタライズ推進委員[sage]   投稿日:2009/10/05 13:31:28  ID:q3gnCkvW(2)

参考情報
  FPGA
    Xilinx   (p)http://japan.xilinx.com/
    ALTERA (p)http://www.altera.co.jp/
    Lattice  (p)http://www.latticesemi.co.jp/products/cpldspld/index.cfm?source=topnav
    Actel   (p)http://www.actel.com/intl/japan/
    QuickLogic http://www.quicklogic.co.jp/ 30日間無料だと思った。ワンタイムだけどね・・・
  ASICベンダ推奨ツール類(高価)
    Synopsys http://www.synopsys.co.jp/
    Cadence http://www.cadence.co.jp/
    Mentor http://www.mentorg.co.jp/
    Synplicity http://www.synplicity.jp/
  Verilogシミュレーター(無料)
    Icarus http://icarus.com/
      説明 http://ryusai.hp.infoseek.co.jp/icarus.htm
      http://www.ice.gunma-ct.ac.jp/~kimsyn/verilog/FreeSim/iverilog/iverilog.htm...
    IVI http://ivi.sourceforge.net/
      説明 http://www.kumikomi.net/article/explanation/2005/10icarus/01.html
  VCDフォーマットの波形表示(無料)
    GTKWave http://www.cs.manchester.ac.uk/apt/projects/tools/gtkwave/
      説明 http://ryusai.hp.infoseek.co.jp/gtkwave.htm
         http://www.is.kyusan-u.ac.jp/cgi-bin/is-admin/wiki.cgi/CAD?page=GTKWave
  本
    CQ出版 http://shop.cqpub.co.jp/
    STARC  http://www.starc.jp/index-j.html
    Design Wave Magazine(DWM) http://www.cqpub.co.jp/dwm/ 2009/03で終了してまった。
    Interface http://www.cqpub.co.jp/interface/
      ※基板が付録で付いている号はバックナンバー希少になりがち
  関連スレ
    【FPGA/CPLDスレ】 XILINX/ALTERA/Lattice/Actel 12@電気・電子
      電気・電子板の別スレッドへ
           ディジタル・デザイン・テクノロジ 死亡予定?
    暇だからVHDLでも書こうかな@プログラム
      別スレッドへのリンク(タイトル情報なし/プログラム板)
    フリーのツール(情報追加よろしく!)
      ALTERA Quartus II Web Edition http://www.altera.co.jp/
      XILINX ISE WebPack http://www.xilinx.co.jp/
    評価基板とか(追加情報よろしく!)
      Spartan-3 Starter Kit http://www.xilinx.co.jp/products/spartan3e/s3eboards.htm
      CQ出版のシリーズ http://www.cqpub.co.jp/eda/

コメント3件

3
774ワット発電中さん[sage]   投稿日:2009/10/05 18:56:13  ID:4uYxAHsE
おつかれ3

4
774ワット発電中さん[sage]   投稿日:2009/10/05 20:41:56  ID:z2EWooR9
 VHDLとかじゃなしに、もうちょっとマシな言語はできんの?
XHDLとかどう? 昔AHDLってのがあったが、あの方がかなりまし
だったね。

コメント1件

5
774ワット発電中さん[sage]   投稿日:2009/10/05 20:55:28  ID:SnqMgIHI
>2に追加
FPGA
 Achronix http://www.achronix.com/
 SiliconBlue http://www.siliconbluetech.com/

6
774ワット発電中さん[sage]   投稿日:2009/10/05 21:37:23  ID:B5BAEm4e
>4
AHDLって型があってないようなデタラメ加減がすげえ楽だったな

7
774ワット発電中さん[sage]   投稿日:2009/10/06 10:28:07  ID:AA/3Sp2w
>1
最近は主婦もHDL書くのか? (笑)
コメント2件

8
774ワット発電中さん[sage]   投稿日:2009/10/06 12:15:22  ID:FJ8VnzBU(4)
>7
結構流行ってるみたいよ。

昨日も、○ピタのサービスカウンターで、お姉さんが説明してたし。

客「チラシに出ていたフリーの開発環境の物が欲しいんですが」
サ「WebPackですね。デバイス限定ですがよろしいですか?」
客「Virtex4なんですが、大丈夫でしょうか?」
サ「はい、LX25までなら大丈夫です。18番の通路の奥、洗剤の隣のコーナーです」
って。驚いた。

そのあと家電売り場に行ったら、これがまたビックリ。
「メーカー推奨 Virtex5, Virtex6開発に必須!! RAM 4GB 2枚セット 本日限り」とか。

コメント1件

9
774ワット発電中さん[sage]   投稿日:2009/10/06 12:50:24  ID:7hCejI4d
>8
たぶんFPGAのやつに4GBもRAMついてたら
論理設計よりOSとか乗っけるレベルだと思う・・・

10
774ワット発電中さん[sage]   投稿日:2009/10/06 15:30:48  ID:FJ8VnzBU(4)
結局WinXPでは、頑張っても3GBでしょう?
Xilinxは、Virtex6なら8GB RAMで開発してくれって言ってるみたいだけど。

コメント1件

11
774ワット発電中さん[sage]   投稿日:2009/10/06 15:45:42  ID:6eAKkO6R(2)
>10
それって、一番でかいのを設計する時の話だろう。
使用するデバイスが小さくて、使用率も高くなければ3GBでもOKだと思われる。

12
774ワット発電中さん[sage]   投稿日:2009/10/06 18:10:31  ID:FJ8VnzBU(4)
そうだと思いますが、Windowsで簡単に使用できないRAM容量を
要求するメーカーっていったい。
しかもV6はまだ出ていないし。V5でさえ使ったことがない→オレ。
コメント1件

13
774ワット発電中さん[sage]   投稿日:2009/10/06 19:11:49  ID:S9EisVd5
V5だのS3だのを使ってるのがどれだけいるのやら

14
774ワット発電中さん[sage]   投稿日:2009/10/06 19:32:41  ID:jDK/6qxS
>10
でかいのは、Linuxでやれってことじゃない?

15
774ワット発電中さん[sage]   投稿日:2009/10/06 19:35:14  ID:oNwmm1P+
>12
FPGA以外のデバイス開発環境では、winが少数派だから。。

16
774ワット発電中さん[sage]   投稿日:2009/10/06 19:45:01  ID:3QsTGHzr
V6はそれぐらいすごいから、それにあわせたの使えよだろ
だから、もう64bitOSでV6は開発汁ってことだ
あと、俺、V6のでかいのなんかをXiの安いツールでやるってどうかなって思うんだよな。
このクラスの開発ツールとなると数百万ぐらい出さんと、カリカリに開発できないんじゃね
64bitOS+DC ultraクラス+最大搭載可能RAM、こんな感じじゃねか
おまえらは、10万ゲート程度にあわせた開発環境を1000万ゲート規模の開発に十分使えるって思ってるのか?
コメント1件

17
774ワット発電中さん[sage]   投稿日:2009/10/06 20:12:43  ID:7Zl06xuW
RAM3GB以上じゃないと合成できないような、でかいV6って個人で買える値段なの?
コメント2件

18
774ワット発電中さん[sage]   投稿日:2009/10/06 20:25:09  ID:PWuB9OMr
個人といっても様々だし、けど確実に言えるのは
V6の値段>>>64bit環境の値段

19
774ワット発電中さん[sage]   投稿日:2009/10/06 20:46:57  ID:6eAKkO6R(2)
>18
つまり普通の個人じゃ買えないって事だな。
ICだけ買っても基板に実装しないと使えないからな。

>17
合成できないって事じゃなくて、メモリスワップがおきまくるので時間が掛かるからダメって事だろうな。

20
774ワット発電中さん[sage]   投稿日:2009/10/06 20:47:20  ID:FJ8VnzBU(4)
V6のスゴイのって、over 100万なんでしょ。

21
774ワット発電中さん[sage]   投稿日:2009/10/06 20:49:40  ID:iKOi0rB0
DC に Xilinx のライブラリあるの?
DC FPGA ってのが昔あったけどね。

64bit で最大搭載可能 RAM ってのも
エクサバイトだか、ゼタバイトだか想像もつかんな。

22
774ワット発電中さん[sage]   投稿日:2009/10/06 21:31:10  ID:4/PHi518
まあSynopsysはSynplicity買収してるから、
FPGAカテゴリはSynplifyへ統合なんでしょうね
コメント1件

23
774ワット発電中さん[sage]   投稿日:2009/10/06 22:02:32  ID:NH9J3U83
>3のASICのベンダーツールのライセンス料っていくらぐらいするものなの?
cadenceのRTLcompilerとかって年数千万とかなんとからしいけど・・・

24
774ワット発電中さん[sage]   投稿日:2009/10/06 23:24:28  ID:DENHdXrr
>22
Synplify は合成だけで、配置配線は結局 ISE なんだよなぁ。
何というか、中途半端 orz

>16
1000万ゲートを一気に合成するのか、おまいは?w
コメント1件

25
774ワット発電中さん[sage]   投稿日:2009/10/06 23:26:30  ID:djT87RGR
>17
スワップで時間がかかって現実的ではないのではなく
合成やら配置配線やらで使用メモリが2G(ユーザーメモリの最大値)超えて落ちる
まぁこのへんはISEのつくりがおかしいとはおもうがw
コメント1件

26
>>22[sage]   投稿日:2009/10/07 00:35:30  ID:EvSiLHxV(2)
>24
まあ、そうかも知れない
(オイラ今までAオンリーなんで今のところISEを知らないし、Q2に満足してたりする)

そういやAmprifyだかという配置までやるのあった気もする。
配線/STAまでやるかは忘れたw
その後SynplifyPremierに化けたんだっけなあ?
それなら全部出来たりするのかも。

27
774ワット発電中さん[sage]   投稿日:2009/10/07 00:44:27  ID:LpyQkT6w
>25
でかいのを32bitOSでやろうとしている自分自体がどうかしていると思うんだ

てか、クラウド時代の今、自前のPCだけでやろうなんてのも時代遅れだがな
遠くで連携する超高性能計算機群にやらせても良いじゃないか。Gbネットが普通なんだから
もう、手元PC扱う感覚だ。アル、財もそうだがメリケンの大手ベンダはクラウドよる開発サービス提供が
主流でソフトライセンス提供なんて後進国向けだけらしい。自前のハード用意して、それに、ソフト入れて
やる20世紀の古典開発スタイルやっている会社、いまや、ほとんどないだろ。
ソフト、ハード、ネットワークがもすごい勢いで進化しているのに、自前でソフト、それようPCを導入して
て使っているって....
コメント1件

28
774ワット発電中さん[sage]   投稿日:2009/10/07 00:58:05  ID:JAhAkPLi
>27
計算機環境がクラウドになっただけで、大昔の“ベンダさんにお任せ”に回帰してるような気が.
リモートで作業できる点は大進歩なんだけどさ。

29
774ワット発電中さん[sage]   投稿日:2009/10/07 01:08:50  ID:EvSiLHxV(2)
健全でない言葉が含まれているため表示しません 内容を確認する
コメント1件

30
774ワット発電中さん[sage]   投稿日:2009/10/07 01:19:22  ID:WdL+ZNgm
>29
むしろ“誰も握っていてくれない”のがヤバいような。
プロジェクト自体が雲の中なのにサービスにトラブルがあった時に
ちゃんと復旧できるんだろうか?

アマゾンの例もあるし......

31
774ワット発電中さん[sage]   投稿日:2009/10/07 03:33:18  ID:ujSFbgdV
アマゾン??

コメント1件


32
774ワット発電中さん[sage]   投稿日:2009/10/07 07:04:13  ID:wHPcDYZ+
クラウドまでは行かないけど、LSFとか使用して開発している。
合成とかそんなメモリ食わないけど、レイアウトみたいな
フィジカルとかは普通に64GBとかもスワップしたりする。

33
774ワット発電中さん[sage]   投稿日:2009/10/07 08:24:59  ID:0Vw8OiDl
Web 上で合成してくれるやつがなかったけ?
RTL アップロードすると合成結果を返してくれるやつ。
さすがに仕事使うのは憚られたけど。

34
774ワット発電中さん[sage]   投稿日:2009/10/07 10:06:47  ID:Jsk+2E9p

35
774ワット発電中さん[sage]   投稿日:2009/10/07 21:09:55  ID:aeeoh5DO
>34
ありがとう

36
774ワット発電中さん[]   投稿日:2009/10/07 22:16:45  ID:AZdtKRRk
送信されたデータは、当社の各種サービス提供のため、関連企業に提供されることがあります。
と、サイトのすみっこにコッソリ書いてある気がして怖いw
コメント1件

37
774ワット発電中さん[sage]   投稿日:2009/10/07 22:33:48  ID:AFBJS0hJ
>36
いつの間にか無償提供ライブラリに当社製品が!(w

38
774ワット発電中さん[sage]   投稿日:2009/10/08 09:56:16  ID:adICBKI/
お前ら、台風どうしてる
電車止まっているから家にまだいる。午前中休みだな
台風様様だな

39
774ワット発電中さん[sage]   投稿日:2009/10/08 17:21:54  ID:z7q8E3rZ
自分の居場所くらい書いていけ

40
774ワット発電中さん[sage]   投稿日:2009/10/09 00:59:35  ID:2jnOwH06
>7
> >1
> 最近は主婦もHDL書くのか? (笑)

さいきん、HDLの値が増えて悩んでいる主婦が多いってな。マジリアルで。

41
774ワット発電中さん[sage]   投稿日:2009/10/09 01:17:48  ID:NfueaJLl
悩むのはいいがHDL書くのか?

42
774ワット発電中さん[sage]   投稿日:2009/10/09 03:13:07  ID:tvHJdjff
HDL欠くのが良くなくて、
LDL多いのがヤバイんじゃないかな???

43
774ワット発電中さん[sage]   投稿日:2009/10/09 07:36:53  ID:HJkN6pjv
LDL 高め 尿酸値高め ウエスト90cm
どうみてもメタボです、ありがとうございました。
コメント1件

44
774ワット発電中さん[sage]   投稿日:2009/10/09 16:37:14  ID:Cu38Ic+h
>43
本当にありがとうございました、来世でまた☆

去年の夏、尿酸値12、中性脂肪400以上、GOT/GPTいずれも400付近という脂肪肝
体重93KG(身長165)というSPECでしたが、
医者に、10年後に慢性肝炎、10年後に肝硬変、10年後に肝ガンで死ぬよ って言われて
悟った32歳

今全て正常化(体重66)

デスクワークばっかりだと、こうなりがちだね
やせたほうがいいよ

45
774ワット発電中さん[sage]   投稿日:2009/10/09 19:30:46  ID:jtKbFN3a
> 医者に、10年後に慢性肝炎、10年後に肝硬変、10年後に肝ガンで死ぬよ って言われて
それ、ヤブ医者。
3年後にまず通風。
コメント2件

46
774ワット発電中さん[sage]   投稿日:2009/10/09 20:36:33  ID:rFG5L+NY
>45
ああ、尿管結石は既に2回済みw
通風はナゼかやってない
10年くらいは尿酸値8以上10付近だったのに???
コメント1件

47
くり[]   投稿日:2009/10/10 10:56:43  ID:rrUTUW21
>45, >46

通風? 痛風のこと? だとしたら「通風」の当て字は意味からして間違い。

>通風はナゼかやってない 10年くらいは尿酸値8以上10付近だったのに???

高尿酸血症が必ずしも痛風の発症につながる訳ではないらしい。

http://ja.wikipedia.org/wiki/%E7%97%9B%E9%A2%A8

日本の医者は、すぐ「痛風になるぞ」って脅すけど。

48
774ワット発電中さん[sage]   投稿日:2009/10/10 18:46:15  ID:IJiAAIJy
つながる訳ではない、の裏には、つながるリスクは異常に高まっている、がある。
正常範囲は≦7


俺は大体8前後w

49
774ワット発電中さん[sage]   投稿日:2009/10/11 00:51:20  ID:31saDQT0
なぜこんな流れに…?
コメント2件

50
774ワット発電中さん[sage]   投稿日:2009/10/11 00:55:40  ID:egGBo74Z
【HDL】記述言語で体調管理 【LDL】
コメント1件

51
くり[]   投稿日:2009/10/11 00:57:44  ID:hx+vOv4b
>49
>なぜこんな流れに…?

 さぁ・・・?

52
774ワット発電中さん[sage]   投稿日:2009/10/11 01:11:09  ID:Z0qTqyjL
>49
高齢化の波じゃないでしょうか?w

53
774ワット発電中さん[]   投稿日:2009/10/11 01:51:56  ID:6Af0laWF
VHDLを用いた講義の課題で以下のようなものが出されたのですが、お力をお貸しください。

http://koideai.com/up/src/up29100.jpg

この課題では、MIL記号を用いて論理設計すればいいだけなので、スレ違いかもしれませんが…よろしくお願いします。
コメント2件

54
774ワット発電中さん[sage]   投稿日:2009/10/11 02:25:14  ID:b0beNW+w
>50
ワrタ

55
774ワット発電中さん[sage]   投稿日:2009/10/11 12:55:14  ID:jFfER0gl
>53
このスレは【HDL】記述言語で体調管理 【LDL】になりました。
スレ違いです。
コメント1件

56
774ワット発電中さん[sage]   投稿日:2009/10/11 17:52:59  ID:mq5o449V
>55
こらこらwww

57
774ワット発電中さん[sage]   投稿日:2009/10/11 20:35:14  ID:jP1B6XhG
>53
画像が見えないぞ
エッチサイトへの誘導か?

コメント1件

58
774ワット発電中さん[sage]   投稿日:2009/10/11 22:06:21  ID:8RTvJ4zB(2)

59
774ワット発電中さん[sage]   投稿日:2009/10/11 22:13:39  ID:O2Gbz/qq

60
774ワット発電中さん[sage]   投稿日:2009/10/11 22:18:21  ID:xlleGm20

61
774ワット発電中さん[sage]   投稿日:2009/10/11 22:25:46  ID:CQc+sWDt
>59
ちなみに、貴方は大学生ですか?

62
774ワット発電中さん[sage]   投稿日:2009/10/11 22:50:36  ID:8RTvJ4zB(2)
二進カウンタとキャリーでぐぐればいくらでも答えが転がってるが 学生なら自分でやった方がいいよ

63
774ワット発電中さん[sage]   投稿日:2009/10/12 10:22:41  ID:BPB5JDaU
>59
あのなぁ、「答えを教えてくれ」じゅなくてさ、
自分なりに書いて、「どうですか?」っていうスタイルくらい取れないの?

64
774ワット発電中さん[sage]   投稿日:2009/10/12 10:26:36  ID:2EmZQ3Vc
うるせえ
カスのくせに説教すんな

65
774ワット発電中さん[sage]   投稿日:2009/10/12 13:36:47  ID:9Y9mRo3b
うるせえ
本人じゃないくせにレスすんな

66
774ワット発電中さん[sage]   投稿日:2009/10/12 14:14:35  ID:wSgStJvS
そうそう 俺も別人にやられたことがある。
質問書きこんだら5分後に「解決しました」とかいって。
「よかったね」って、それで尾張。しょぼん。

67
◆R/xRQM4zu. [sage]   投稿日:2009/10/12 19:42:16  ID:qThcjriI
トリつけて質問すれば?

68
59[sage]   投稿日:2009/10/12 20:17:58  ID:oMJOa1My
自分で考える気なんてハナからねぇーよ

69
59[sage]   投稿日:2009/10/12 20:18:51  ID:cgopNy4R
だな

70
59[sage]   投稿日:2009/10/12 20:19:53  ID:L+E+VF1E
モレ漏れも

71
774ワット発電中さん[sage]   投稿日:2009/10/12 23:34:31  ID:WJA7QMSN
釣りじゃなくて真面目にわかんないんだろうか・・・
だとすれば向いてないと思う。この方面。

72
774ワット発電中さん[sage]   投稿日:2009/10/13 08:29:23  ID:HDBwHBNF
向き不向き以前の問題。
やる気ないんだから、社会人になっても
使えない→退職→ニートの道まっしぐら。

73
774ワット発電中さん[sage]   投稿日:2009/10/13 14:05:05  ID:EBrYU5mc
ヤル気が無いけど卒業はしたいのか
だから2chに聞きに来るのか
2ch卒業証書くれてやろうか つ□

74
774ワット発電中さん[sage]   投稿日:2009/10/15 03:26:38  ID:j2YBc7f4
Verilogで、教えてください。

以下の信号線は、その右のような呼び方て良いでしょうか?

wire [15:0] w15;  ベクターワイヤ
wire    w1;  スケーラーワイヤ
reg [15:0] r15;  ベクターレジ
reg     r1;  スケーラーレジ


75
774ワット発電中さん[sage]   投稿日:2009/10/15 09:40:12  ID:/w/h9Q7C
reg 宣言しても、FFに決まるわけではないから、
信号線の名前は名前だけでよいと思うが。
コメント1件

76
774ワット発電中さん[sage]   投稿日:2009/10/15 10:06:32  ID:1gJi8flR(2)
スケベーオヤジ

77
774ワット発電中さん[sage]   投稿日:2009/10/15 11:56:43  ID:HrkUsVjd
53でふと思ったが、HDLで書くのは
論理設計(も書けるけど)じゃなくて
機能設計だっけか?

78
774ワット発電中さん[sage]   投稿日:2009/10/15 14:11:01  ID:vo90rKH0(4)
>75
ありがとうございます。せっかくなのですが、信号名の件ではなくて、
wire [幅] xxxx → これをベクターワイヤという呼び方は正しいでしょうか?という質問でした。
言葉足らずですみません。言い方を変えますと、
複数本のことをベクタ、1本のことをスカラ、という言葉は適当かどうか?というとです。

あと、1つ教えてください。
「reg 宣言しても、FFに決まるわけではないから、 」というお話ですが、
どのようなケースでしょうか。私はregと来たらFFが配置される、と思っています。

宜しくお願いします。

79
774ワット発電中さん[sage]   投稿日:2009/10/15 14:13:48  ID:AsTfdtl4
適切
always文で組み合わせ回路を作る場合
コメント2件

80
774ワット発電中さん[sage]   投稿日:2009/10/15 14:20:28  ID:vo90rKH0(4)
>79
ありがとうございます。安心できました。

>always文で組み合わせ回路を作る場合
ということは「ベクタ=複数線、スカラ=単線」というのは、
常時OKな表現ではないということでしょうか?

よろしければ教えてください。

81
774ワット発電中さん[sage]   投稿日:2009/10/15 15:15:44  ID:1ykhYKXM
デジタル集積回路とかハードウェア記述言語の文脈において常時OK
テストベクタって言葉を聞いたことがないかい?
コメント1件

82
774ワット発電中さん[sage]   投稿日:2009/10/15 15:20:03  ID:vo90rKH0(4)
>81
聞いたことあります。
意味はわかりませんが、予想するにテスト用のデータで、
あの信号、この信号、その信号と、複数種類もあるので、「ベクタ」でしょうか。

83
774ワット発電中さん[sage]   投稿日:2009/10/15 16:06:36  ID:1gJi8flR(2)
>79 は、「always で組み合わせ回路を作ると
FF が出来ないよ」と言っていると思う。


register という表現が混乱を生じるから
Verilog 2001 からは、variable と呼んでいる。

あと、“ベクター”という表現は普段使わないなぁ。
使うとしても net に対してだと思う。

“5ビットのレジスター”とか言えばすむ話じゃね?
“8ビットバス”とか。

とりあえず、IEEE1364-2001 を読め。
コメント1件

84
774ワット発電中さん[sage]   投稿日:2009/10/15 16:25:36  ID:vo90rKH0(4)
>83
ありがとうございました。
よくわかりました。
ISEのエラーメッセージでは、平気で vector  scaler と言ってくるので、
知識として知っておきたいと思い、質問しました。

resisterは、置数器、数字を記憶する、という意味であれば、
特に混乱はしないかな?なんて思いますが。
variableというのも、言い得ていていいですね。ズバリ「変数」ですね。
vector, scalarよりも親しみが持てます。

ありがとうございました。

85
774ワット発電中さん[sage]   投稿日:2009/10/15 20:03:28  ID:nKFFn5Yd
always@(a, b)
c = a & b;

このときcはreg宣言だけど果たしてFFになりますでしょうか?
コメント3件

86
774ワット発電中さん[sage]   投稿日:2009/10/15 21:48:42  ID:/9UEsysT
>85
なあ、DFFって知ってる?

87
774ワット発電中さん[sage]   投稿日:2009/10/15 23:57:48  ID:ijQrCvqQ
>85
お前、前スレから簡単な質問をして、それを何回も説明して
もらっても理解できなかったやつだろ。
簡単な質問をするなとは言わないが、教えてもらっているのに
同じ事を何回も聞くな。

どのような記述がFFになるかは、教科書や論理合成ツールの
マニュアルを読んで自分で調べろ。
それ以外の記述はregで宣言してあろうともFFにはならない。

88
774ワット発電中さん[sage]   投稿日:2009/10/16 01:22:06  ID:wiXUNLhs
合成してFloorplan Editorとかで中を見れば早いんじゃないの?

89
774ワット発電中さん[sage]   投稿日:2009/10/16 12:22:50  ID:lFv/IGS/
上げ

90
774ワット発電中さん[sage]   投稿日:2009/10/16 19:27:29  ID:7PM+022t
>85は>78のレスジャマイカ?

91
774ワット発電中さん[sage]   投稿日:2009/10/17 17:42:02  ID:bMoNWqE8
何で、レジになるかどうかで悩まんならんのだ? わかるか?
あほな言語つかうなよ。www
楽な言語で、定義が明確なのがあるだろ。 50年も前の糞言語、使う奴の
気がしれん。

コメント6件

92
774ワット発電中さん[sage]   投稿日:2009/10/17 18:10:43  ID:fLSkBiwl
>91
なんで、草はやしてんの?馬鹿なの?死ぬの?
コメント1件

93
774ワット発電中さん[sage]   投稿日:2009/10/17 18:11:23  ID:aFvwGpjR
>91
日本語でお願いします。
コメント1件

94
774ワット発電中さん[sage]   投稿日:2009/10/17 18:16:30  ID:oTXrbt39
>93
何を言いたいんだ?
日本語で挨拶お願いしますとお願いしているのか?
低脳の日本語は肝心なところがないからな、意味不明だよな

95
774ワット発電中さん[sage]   投稿日:2009/10/17 18:18:17  ID:TuflYnF9
>92
「馬鹿なの?死ぬの?」はねえだろ
何年遅れてんだよ。

96
774ワット発電中さん[sage]   投稿日:2009/10/17 18:39:15  ID:YhPiZ4gU
自演乙

97
774ワット発電中さん[sage]   投稿日:2009/10/17 18:53:53  ID:G4nXSwuO
IDこそ違え、自演そのものって感じだなw

98
774ワット発電中さん[sage]   投稿日:2009/10/17 19:55:45  ID:7d2Z9IML
>91
>>50年も前の糞言語
って何?
コメント1件

99
774ワット発電中さん[sage]   投稿日:2009/10/17 21:44:58  ID:6yiufRRD
>98
その疑問、オイラもw ナニソレ?

100
774ワット発電中さん[sage]   投稿日:2009/10/17 22:51:30  ID:udidUm6c
自分も知りたい。
50年も前の言語って、FORTRANかCOBOLくらいしか知らないのだけど
このスレでの発言だから当然HDLの事だよねw

101
774ワット発電中さん[sage]   投稿日:2009/10/18 22:34:43  ID:i+qQ3URf
お前らはどう>91を解釈してレスしてるんだ
俺的には
50年前からほとんど進化していない糞言語を使うからregとか悩むんだ
俺が現役の50年前は半導体、真空管が超貴重部品で使えなくてメカニカルリレーが使われてた時代でな、
その当時もブール代数的表記のc = a & bで論理設計(各社各様の社内論理設計表記「言語」で)をしていたんだよ。
で、ブール代数に記憶素の表記ないから記憶どうするで悩んだよ
だから、これは記憶素ニダと注記してた。それに毛が生えたような言語を50年後でも使うからそういうことになるんだ。

俺的には、お前らと違って"楽な言語で、定義が明確なのがあるだろ"を知りたいんだがな
なんで、お前らは50年も前の糞言語 に反応したん? そのほうが有用情報の可能性あると思ったのか?

ついでに解釈
レジになるかどうかで悩まんならんのだ <= 必要性疑問提示
わかるか <= 悩む必要理由理解してる?
あほな言語つかうなよ <= これが>91の結論、その言語はアホで使用すべきでないと(詳細不明)
楽な言語で、定義が明確なのがあるだろ <= アホ言語より良いのあらしい。キーワードは定義が明確
50年も前の糞言語、使う奴の 気がしれん。 <= 50年前の糞言語を未だに使っているんだ(俺解釈嫁)!頭大丈夫?

短い文で詳細不明だが、>91は当然補完できるとレスしたんだろ。
無理ならその程度の脳力ってことだな
今日、俺暇だった
コメント1件

102
774ワット発電中さん[sage]   投稿日:2009/10/18 22:36:34  ID:I4+epuF+
>91乙

103
774ワット発電中さん[sage]   投稿日:2009/10/18 23:24:10  ID:G/eC5WGE
発狂すんなよ

104
774ワット発電中さん[sage]   投稿日:2009/10/18 23:25:46  ID:i9D3/Swy
なんだかまた面倒くさいのが湧いてるなあ

105
774ワット発電中さん[sage]   投稿日:2009/10/18 23:45:05  ID:UKZ3Kls3
50年前現役って・・・少なくとも70代か。
すごくじじいだな

106
774ワット発電中さん[sage]   投稿日:2009/10/18 23:51:25  ID:eM7jCYzp
>101
よく「お前の話はただ長くて言いたいことがわからない」って言われない?

107
774ワット発電中さん[sage]   投稿日:2009/10/19 00:19:10  ID:Q5KI4T36(2)
>定年すると毎日が日曜日

まで読んだ

108
774ワット発電中さん[sage]   投稿日:2009/10/19 01:03:20  ID:YnN3Knmg
reg c;
always@(a, b)
c = a & b;
cがwireで駄目な理由わからんのだが
regでなければいけない理由って何?

109
774ワット発電中さん[sage]   投稿日:2009/10/19 01:11:48  ID:2wNTfYkM
そう言う言語なのだから仕方ない。
嫌ならVHDLでもどうぞ

110
774ワット発電中さん[sage]   投稿日:2009/10/19 12:02:18  ID:scjdNsxY(2)
regにはclockが使われていないと
奥歯にゴミが詰まったような不快感が・・・

111
774ワット発電中さん[sage]   投稿日:2009/10/19 15:09:02  ID:isSpaoOP
wire c;

assign c = a & b ;

ではだめなの?

112
774ワット発電中さん[sage]   投稿日:2009/10/19 20:32:59  ID:scjdNsxY(2)
質問なんだけど、RTLの書き始めのコメント(ヘッダ?)には何を書いてる?
なんか書くときに毎回迷う・・・きめりゃいいんだろうけど。

モジュール名
モジュールの説明
作った人
日付
更新履歴

だいたいの階層とかいるの?
コメント1件

113
774ワット発電中さん[sage]   投稿日:2009/10/19 20:36:57  ID:PBfTL5AA
昨日の晩ご飯でも書いておけ
コメント1件

114
774ワット発電中さん[sage]   投稿日:2009/10/19 20:40:05  ID:GfDuEk80
客「HDLわからんから、回路図でくれ」(タダで)


うぜー
コメント2件

115
774ワット発電中さん[sage]   投稿日:2009/10/19 22:05:44  ID:k0lh+enB
>114
あるある、そういうの。
以前、HDLが分からないという客向けに、
同じ機能の回路を大量に作る羽目になったときには、
正直言って参った。

116
774ワット発電中さん[sage]   投稿日:2009/10/19 23:00:42  ID:Q5KI4T36(2)
>112
参考にしたこのスレのURLとレス番も忘れずにな
コメント1件

117
112[sage]   投稿日:2009/10/20 11:38:05  ID:XAzMOomh
>113
プロジェクト名につけよう!って一瞬出ましたよ。
tonkotu_riceプロジェクト

>114,115
HDLではまだないけどSPICEの方で・・・

>116
ここで・・・ありましたっけ?
Project7ぐらいからちらほら来てましたけど

ググってもでないんすよね
コメント1件

118
113[sage]   投稿日:2009/10/20 23:33:56  ID:SZz3u47Y
>117
一瞬でも出たのか・・・つか豚骨ライスって何だ?

あとマジレスだけどemacsのvhdl lispだと>112と同じものぐらいしか書かないかな。
コメントだしあんまり長々と書いてもしょうがないかなと。
過去スレにコメントに何故変更したかを細々と書くといった人も居ましたが。
コメント1件

119
112[sage]   投稿日:2009/10/21 12:19:32  ID:9rzjGtMt
>118
後は経験だけですね。
どうもありがとうございました。

そろそろ名無しに、と

あと>59の?課題も終わっただろうし
適当に作りたいのですが画像が見れませんね。

120
774ワット発電中さん[sage]   投稿日:2009/10/23 17:20:07  ID:33OQ8Tg6
ISE早くマルチコアに最適化してくれよ
現状はCore i7のTurbo Boostが効く分かりやすい例だけどさw

121
774ワット発電中さん[sage]   投稿日:2009/10/24 03:22:08  ID:CQ2iaBsJ
>現状はCore i7のTurbo Boostが効く分かりやすい例だけどさw

詳しく!
i7マシン買ったけどあんま速くならなくて…

122
774ワット発電中さん[sage]   投稿日:2009/10/25 19:54:26  ID:bQZ1GiZr(2)

教えてください。
以前このスレで、Verilogで合成の場合のfor()は、記述の簡略化だと書かれていました。
今、ADの値を移動平均を出そうとしています。

しかしその個数が128個と多いので、僕の知っている知識で書くと、
dat[127] <= dat[126];
dat[126] <= dat[125];
  (延々と続く)
dat[2] <= dat[1];
dat[1] <= dat[0];
dat[0] <= new_data;   そして引き続き、

sum = dat[0] + dat[1] + dat[2] + dat[3] + ・・・・・・
   dat[10] + dat[11] + dat[12] + dat[13] + ・・・・・・
   dat[20] + dat[21] + dat[22] + dat[23] + ・・・・・・
   dat[30] + dat[31] + dat[32] + dat[33] + ・・・・・・
      延々と続く
   dat[120] + dat[12] + ・・・・ + dat[126] + new_data;
と書くしかないのですが、

こういうときに、for()を使ってスマートに書ける、と考えれば良いでしょうか?
また、移動平均自身の、もっとスマートな書き方があれば、教えて頂けないでしょうか。
FPGAはスパータン3です。

コメント3件

123
774ワット発電中さん[]   投稿日:2009/10/25 20:23:36  ID:ou6Vdi6f(2)
俺ならアキュムレータ使う

124
774ワット発電中さん[sage]   投稿日:2009/10/25 21:28:49  ID:vrL39I0s
悪夢霊多

125
774ワット発電中さん[sage]   投稿日:2009/10/25 22:00:00  ID:bQZ1GiZr(2)
ありがとうございます。
アキュームレータを調べてみましたが、よくわかりませんでした。
アキュームレータと聞くと、マイコンのcpuのワークレジスタを思ってしまいます。

for()で、それっぽく書いているのを見つけましたので、それで一度やってみます。
ありがとうございました。

126
774ワット発電中さん[sage]   投稿日:2009/10/25 22:04:42  ID:id2Er8t9
CPU用のプログラムじゃないんだから・・・
それだけの並列処理加算回路をロジックで生成するつもり?
まぁ、生成できるなら止めはしないけど・・

127
774ワット発電中さん[]   投稿日:2009/10/25 22:04:52  ID:ou6Vdi6f(2)
それであってるし FIRフィルタとかで調べたらなんぼでも出て来るだろ

128
774ワット発電中さん[sage]   投稿日:2009/10/25 23:04:44  ID:9M6rZjyI
>122の場合、CoreGenでFIRが生成できるなら、
タップ係数が全て1で128段のFIRを生成するのが手っ取り早いと思う。

129
774ワット発電中さん[sage]   投稿日:2009/10/26 01:38:07  ID:PVzUXh1g
>122
せめて、
dat[127:0] <= { dat[126:0], new_data };
これで。
コメント1件

130
774ワット発電中さん[sage]   投稿日:2009/10/26 06:04:42  ID:vK9OqmOU
>122
sum <= sum - dat[127] + new_data;
差分だけ計算すりゃいいじゃん
書き方の問題だけじゃなくて、アルゴリズムを検討すれば。

131
774ワット発電中さん[sage]   投稿日:2009/10/26 12:57:05  ID:+N8fvSvg
>129
1ビットかよ!
コメント1件

132
774ワット発電中さん[sage]   投稿日:2009/10/26 15:36:52  ID:l01LTbb0
ADの値はどうくるんだろうか?

133
774ワット発電中さん[sage]   投稿日:2009/10/26 22:46:13  ID:kNILTLqQ
1ビットオーディオってやつか・・・

134
774ワット発電中さん[sage]   投稿日:2009/10/27 00:41:16  ID:e9XQIBf4
>131
2次元配列じゃないの?

135
774ワット発電中さん[sage]   投稿日:2009/10/27 10:36:05  ID:+mV2niQ6
127:0 <= 126:0
どうみても1bitです。

136
774ワット発電中さん[]   投稿日:2009/10/28 22:16:58  ID:pt3HExvX
1bitのΔΣのADコンバータだろ

sum <= sum + new_data - data[i];
data[i] <= new_data;
i = i + 1;

で終了


137
774ワット発電中さん[sage]   投稿日:2009/10/28 23:06:25  ID:Gc89yiXZ
ははw

138
774ワット発電中さん[sage]   投稿日:2009/10/29 01:44:39  ID:Pllex2g+
てか、
sum_dat <= sum_dat + new_data;
で、128カウンタつければ?

139
774ワット発電中さん[sage]   投稿日:2009/11/12 18:14:27  ID:uqa11j4O(2)
パラレル出力のADコンバータで、2の補数出力できるものがあります。

この出力を、FPGAに取り込むとき
signed reg またはsigned wireで取り込めば、
signedとしてそのまま扱えると思うのですが、
この考えは正しいでしょうか?

コメント2件

140
774ワット発電中さん[sage]   投稿日:2009/11/12 19:01:34  ID:N10d/Sk+(2)
>139
後段でどのような処理をするか次第。
信号としては、signed/unsignedなんて関係なく取り込むだけ。

141
774ワット発電中さん[sage]   投稿日:2009/11/12 19:46:17  ID:uqa11j4O(2)
>139
ありがとうございます。確かにそうですね。

私の質問の説明も悪かったです。
次のような理解ですが、もう一度問わせてください。

パラレル出力のADコンバータで、ストレートバイナリと2の補数と切替出力できるADがあります。
後段のFPGA処理で、加減算を行いたい場合、
FPGA内部をunsigned値で0x8000を足して引いてとやるのもありですが、
ADコンバータ出力を2の補数で出力に設定して、
FPGAに取り込むとき、signed reg またはsigned wireで取り込めば、
FPGA内部の計算処理でそのまま加減算が扱えると思っています。

ADコンバータの出力の「2の補数出力」は、
まさにこのような時に使うための出力形式と考えています。
この考えは正しいでしょうか?

コメント2件

142
774ワット発電中さん[]   投稿日:2009/11/12 20:48:28  ID:wx8Rjg2x(2)
>141
2の補数なんだから
オーバーフローを切り捨てれば
signed/unsignedなんか関係ないと思うぞ

143
774ワット発電中さん[sage]   投稿日:2009/11/12 21:25:27  ID:N10d/Sk+(2)
>141
いや、だから取り込み信号の符号は実際はどっちでもよくて、

> FPGA内部の計算処理でそのまま加減算
この加減算をどのように処理するか次第。

例えば、signed で加減算のロジックを作ったならば、
取り込み信号線(入力)が signed だろうが unsigned だろうが
関係なく、演算結果(出力)は同じ。
コメント1件

144
774ワット発電中さん[sage]   投稿日:2009/11/12 22:50:17  ID:lzRXySbV
3ビット[0,7][-4,3]ぐらいの範囲で紙に書いて計算したほうが早いよ。
ビット列を人間がどの数と結びつけるかの問題に過ぎないから。

もし考え込むことがあるとしたら、
CPUを作るときのステータス・フラグとかだな。

145
774ワット発電中さん[]   投稿日:2009/11/12 23:09:00  ID:wx8Rjg2x(2)
>143
unsigned で加減算のロジックを作っても
同じだと思うが?
signedの加減算とunsignedの加減算って同だろ?

コメント1件

146
774ワット発電中さん[sage]   投稿日:2009/11/13 00:30:48  ID:ScTKhXXT
>145
そのオーバフロー処理というか桁次第だけど。
入力を16bitとして、出力を16bit/20bitの両方考えると、

sb
0xFFFF(65535) + 0x0001(1) = 0x0000(0) / 0x10000(65536)
0xFFFF(65535) - 0x0001(1) = 0xFFFE(65534) / 0x0FFFE(65534)

2's
0xFFFF(-1) + 0x0001(1) = 0x0000(0) / 0x00000(0)
0xFFFF(-1) - 0x0001(1) = 0xFFFE(-2) / 0xFFFFE(65534)

となるから、違う場合もあるということで。
コメント1件

147
774ワット発電中さん[]   投稿日:2009/11/13 00:58:27  ID:P/gdbOsT
それはないだろ

148
774ワット発電中さん[sage]   投稿日:2009/11/13 01:08:42  ID:Y5TvjUPw(2)
入力16bit、出力20ビットの加算器ってどんなの?
線のつなぎがよく分からない。
絵で描いてうpろだに上げてみてくれない?

149
774ワット発電中さん[sage]   投稿日:2009/11/13 01:30:41  ID:Y5TvjUPw(2)
描いてというのも面倒な話だと反省。

たくさん書くの大変なので
>入力を16bitとして、出力を16bit/20bitの両方考えると、
を次のように変えても意味は変わらないよね?
>入力を8bitとして、出力を8bit/12bitの両方考えると、

↓まで書いてみたよ。

入力x[7:0](8bit)
入力y[7:0](8bit)
出力o[7:0](8bit)
出力c[7](1bit)
half_adder0(.C(c0), .O(o0), .X(x0), .Y(y0));
full_adder1(.C(c1), .O(o1), .X(x1), .Y(y1), .Z(c0));
full_adder2(.C(c2), .O(o2), .X(x2), .Y(y2) ,.Z(c1));
full_adder3(.C(c3), .O(o3), .X(x3), .Y(y3), .Z(c2));
full_adder4(.C(c4), .O(o4), .X(x4), .Y(y4), .Z(c3));
full_adder5(.C(c5), .O(o5), .X(x5), .Y(y5), .Z(c4));
full_adder6(.C(c6), .O(o6), .X(x6), .Y(y6), .Z(c5));
full_adder7(.C(c7), .O(o7), .X(x7), .Y(y7), .Z(c6));

150
774ワット発電中さん[sage]   投稿日:2009/11/13 03:38:33  ID:4lVKY55j
>146
質問です。
sbはストレートbinaryの略だと思います。
2'sは、2の補数だと思いますが、sは何の略でしょうか?
補数だとすると、coplementのcかなって。

151
774ワット発電中さん[sage]   投稿日:2009/11/13 09:26:45  ID:p1+pL8GQ
146じゃないけど、単に所有格の「's」じゃね
コメント1件

152
774ワット発電中さん[sage]   投稿日:2009/11/13 11:20:42  ID:UJ4Qd5m0
>151
なるほど、そのsですか。了解しました。
どうもありがとうございます。


153
774ワット発電中さん[sage]   投稿日:2009/11/16 12:39:50  ID:+jbzgMZo
でも、Verilog で sb って書くと signed binary のことなんだよな。
8'sb10000000 とかね。

154
774ワット発電中さん[sage]   投稿日:2009/11/16 14:22:50  ID:Ix1QpgtY
Verilogで、top階層で作った物を、
インスタンシイェーションするだけでエラーが10個以上出て、
修正時間が1時間以上かかります。
・moduleの付け忘れ
・regのままで、wireにしていない
・()の行末の,が抜けている、あるいは最後の行まで,がついている
・コンパイラーに「そんなポートねぇよ」と言われる。

こんな私はまだまだ経験が足りないでしょうか?

インスタンス化でエラー無しで一発で動く人って、すごいと思う。

155
774ワット発電中さん[]   投稿日:2009/11/16 17:30:00  ID:4ZWUYbRe
emacs LISP
コメント1件

156
774ワット発電中さん[sage]   投稿日:2009/11/16 22:02:56  ID:LaP/gteE
>155
verilog-mode.el か、
ちなみに、Meadowでも動く。

157
774ワット発電中さん[sage]   投稿日:2009/11/17 00:58:17  ID:3tDlrZUe(3)
すみません、教えてください。

Verilogで、signed の代入について 次のような場合、どのようになるのかがわかりません。

1. assign 8bit_signed = 6bit_signed;   // bit幅が異なる場合 広=狭 のとき
2. assign 6bit_signed = 8bit_signed;   // bit幅が異なる場合 狭=広 のとき
3. assign 8bit_unsigned = 8bit_signed;  // bit幅が同じで、型が違う場合 us=s のとき
4. assign 8bit_signed = 8bit_unsigned;  // bit幅が同じで、型が違う場合 u=us のとき

考えたのですが、
1の場合、コンパイラが6bit側を符号拡張して計算してくれるので、そのままの値になる。

2の場合、コンパイラが8bit側を符号縮小して計算してくれて、5bitに入らない場合は、11111となる。

3の場合は、signedのbit模様が、そのままunsignedに代入される。ので、
signed が-1(11111111)のとき、unsigned は、0xff=255になる。

4の場合は、unsignedのbit模様が、そのままsignedに代入される。ので、
unsigned が128(10000000)のときは、signed は、-128になる。

よろしくお願いします。
コメント2件

158
774ワット発電中さん[sage]   投稿日:2009/11/17 01:32:49  ID:kvxKCcuV
>157
1,2は、そういう記述してはいけない。
3,4は、そうなるだろう。が、そういう記述をすべきではない。
ソフトではなくて、あくまでも回路だから、
キャスト(型変換)というのは奇妙、というか意味がない。
コメント2件

159
774ワット発電中さん[sage]   投稿日:2009/11/17 01:41:39  ID:/fiKAdKW(2)
学部の卒業研究でSFL使ってるけどマイナーなのかなこの言語
コメント2件

160
774ワット発電中さん[sage]   投稿日:2009/11/17 02:23:33  ID:4FCYX2U9
それ、国内限定だろ

161
774ワット発電中さん[sage]   投稿日:2009/11/17 03:08:31  ID:31J9a6Na
>158
ありがとうございます。
>1,2は、そういう記述してはいけない。
そうなのですか。
「いけない」原因は何でしょうか?
・signedだからいけない
・bit幅が異なるからいけない。
・上記がどちらか一方なら良いが、同時に起こるのがいけない。

でも、こういう場合って、往々にして発生しませんか?
unsigned 同士なら、
assign unsgned_16bit = { 4'b0, unsigned_12bit };
とかできますが、signed だと
assign signed_16bit = { {4{signed_12bit[11]}}, signed_12bit };
とかでよいのでしょうか。

コメント2件

162
774ワット発電中さん[sage]   投稿日:2009/11/17 03:50:00  ID:D8cKY6Ui
>161
STARCの本を買え。
コメント1件

163
774ワット発電中さん[sage]   投稿日:2009/11/17 08:19:03  ID:W6dA/9B9
>159
マイナーだね

164
774ワット発電中さん[sage]   投稿日:2009/11/17 14:05:22  ID:Jx5/lTFB
>161
あんたの言う「広=狭」の場合は、「広」の方の足りないビットに詰め物をするべき。
「狭=広」の場合は、明示的に必要なビットを選(よ)って接続すべき。
記述が「配線」を意味するものであるということを考えれば、きちんとビット数を
合わせる必要があることにそう疑問が出ることはないと思うんだけれども。
コメント3件

165
774ワット発電中さん[sage]   投稿日:2009/11/17 14:49:02  ID:3tDlrZUe(3)
>164
>記述が「配線」を意味するものであるということを考えれば、
ありがとうございます。この言葉に納得しました。なるほど。

ということは、signed変数もunsigned変数も同じで、
8'b10000000というデータは、unsignedで扱いたい人にとっては128だし、
unsignedで扱いたい人にとっては、-127ということですね。
なので、signed8bit = unsigned8bit; は、全然問題無しということですね。

すると、if( )での比較でも同じなのでしょうか?
if( unsined8bit==unsined6bit )という比較は、コンパイラが符号拡張してくれる
と思っているんですが、どうでしょう。

>162
STARCって、たまに見るのですが、何でしょうか? 本の名前でしょうか。
Cで言う「C言語辞典」のVerilog版みたいな本があれば便利なのですが、
ご存じでしたら、教えてください。
CQの本ばっかり何冊も増えていくんです。

コメント1件

166
774ワット発電中さん[sage]   投稿日:2009/11/17 16:41:12  ID:2UZ9ziHZ
>signed8bit = unsigned8bit;
VHDLな俺からするともうこの時点でだめ。
HDLは型なんかは基本的に関係なく、正負論理としか考えない。
コメント1件

167
774ワット発電中さん[sage]   投稿日:2009/11/17 18:26:21  ID:3tDlrZUe(3)
>166
>HDLは型なんかは基本的に関係なく、正負論理としか考えない。
前半と後半の内容が背反な感じがしますけど、どうですか?

168
774ワット発電中さん[]   投稿日:2009/11/17 18:34:29  ID:3cXiA5e5
型てのは正負論理にあるルールを付け加えたものだろ べつに背反しないと思うが

169
774ワット発電中さん[sage]   投稿日:2009/11/17 22:06:40  ID:6bBo6X+9
>159
ツールはNTTが開発したPARTHENONですか?
コメント1件

170
774ワット発電中さん[sage]   投稿日:2009/11/17 23:29:35  ID:/fiKAdKW(2)
>169
シミュレーションはPARTHENONで、
FPGAに載っけるのはsfl2vl使ってます。
論理合成結果考えたら最初からVerilogとかで書いたほうが明らかにいいんだけどね。

171
774ワット発電中さん[sage]   投稿日:2009/11/17 23:40:00  ID:wg18y8mq
{signed1bit,signed2bit} = {unsigned1bit,unsigned2bit}; とかも全然問題無しですよ。
if( unsined2bit==unsined2bit )は、 if( (unsined2bit[1]==unsined2bit[1] ) && ( unsined2bit[0]==unsined2bit[0]) ) とおおよそ等価です。
符号拡張?なんですか、そんな文法あったっけ?

172
774ワット発電中さん[sage]   投稿日:2009/11/18 00:47:09  ID:iyZ6X2DN(2)
>符号拡張?なんですか、
すみません、確信犯できに間違って使っていました。
符号拡張ではなくてbit拡張です。すんません。

>{signed1bit,signed2bit} = {unsigned1bit,unsigned2bit}; とかも全然問題無しですよ。
すばらしいですね。連接って、ステキですよね。

ところで、連接で、これもOKでしょうか?

 {signed2bit,signed3bit} = {unsigned3bit,unsigned2bit};

  何が言いたいかというと、
   signed2bit = unsigned3bit[2;1];
   signed3bit = { unsigned3bit[0],unsigned2bit };
  みたいな変換もできてしまうのでしょうか?ということです。
  こうなると、もう何でもアリですね。

173
774ワット発電中さん[sage]   投稿日:2009/11/18 01:28:47  ID:X4yvLQfy(2)
>165の言う「Cで言う「C言語辞典」のVerilog版みたいな本」というのは、
あるんでしょうか? > ALL

あったら、ぜひ解体、いや買いたい。3万円までなら出すよ。Verilog2001対応版ね。

あとISEで、文法チェックというか もろもろのチェックをもっと厳しくしたいんだけど、
設定はないですか?

174
774ワット発電中さん[sage]   投稿日:2009/11/18 15:43:52  ID:FjaldwvU(2)
STARC 厨が沸いてるね

175
774ワット発電中さん[sage]   投稿日:2009/11/18 16:14:46  ID:FjaldwvU(2)
>158 >164

マジレスすると、カウンターの記述とかどうやってるの?

hoge<= hoge + 1'b1;

ってすると、左右でビット長変ってくるよね。
一旦、別の変数に入れて、下位ビットだけ入れなおすの?

assign hoge_tmp= hoge + 1'b1;

hoge<= hoge_tmp[7:0]; とか?
コメント1件

176
774ワット発電中さん[sage]   投稿日:2009/11/18 17:08:01  ID:iyZ6X2DN(2)
158,164ではないですが、

そっか、そう言われると、bit幅の異なる代入は、平気でやってるなぁ。
なるほど、、、、。
ありがとう。

177
774ワット発電中さん[sage]   投稿日:2009/11/18 17:50:59  ID:+p0gPSkV
>175
> hoge<= hoge + 1'b1;
>
> ってすると、左右でビット長変ってくるよね。

変わってこない。

hoge[7:0]<= hoge[7:0] + 1'b1;
としたら、両辺とも 8bit。
右辺がオーバフローしても、
勝手に 9bit とかになったりはしない。
コメント1件

178
774ワット発電中さん[sage]   投稿日:2009/11/18 21:41:27  ID:39P1Xwo6
>177
勉強し直し

179
774ワット発電中さん[]   投稿日:2009/11/18 21:49:20  ID:1ePmCu5c
勉強し直しはどっちだよ

180
774ワット発電中さん[sage]   投稿日:2009/11/18 23:38:40  ID:X4yvLQfy(2)
ここ最近の書き込み見ていると、
結局プロでやってる皆さんでも、Verilog文法をよく知らずにやってる、ってことですね。
「それでもやっていける」というか、「触れないようにしている」のか。

どこかにバイブルのような本はないのでしょうか? STARTC以外で。
Cのように本が多くないし。

コメント2件

181
774ワット発電中さん[sage]   投稿日:2009/11/19 00:03:18  ID:t0/lSgP4(2)
>180
入門書で概念的な事を理解したら、あとはIEEEの原典。
嫌味や冗談でなく本気で言ってます。自分はそうしているし。

すべての本を見た訳ではないけど、解説本では結局細かいところの
説明を端折っていたり、場合によっては間違っていたりするので
正確さを求めるならばIEEEの規格が一番。

182
774ワット発電中さん[sage]   投稿日:2009/11/19 01:10:58  ID:GzRv3PCN(2)
>180
> 結局プロでやってる皆さんでも、Verilog文法をよく知らずにやってる、ってことですね。
仕事でやってる人だけが、ここに書いてるわけでもないだろう。
趣味とか、学生で、ひとまず動かすことが目的なだけなら、
詳細は知らなくてもいいし。

そういう意味では、Verilog文法をよく知らずにやってるのは、
プロというか仕事人としては駄目だろう。


183
774ワット発電中さん[sage]   投稿日:2009/11/19 10:50:02  ID:4CWmNEOs
Verilog の問題点は、文法とシミュレーションと合成とで微妙に異なることにある。
文法的には、>157 のビット幅が異なる代入をしても無問題。
符号拡張されるし、上位ビットは捨てられる。
という意味で、>164 は間違い。
ハードでしかものを考えてない。74シリーズでも使ってろ。

STARC は、初期の合成ツールで制約が多かったから、それを安全に
使うためのガイドライン。文法の本じゃない。
ただ、合成ツールも進化してるし、それに固執して分かりにくいコードを
書くのもどうかと思う。IP屋なら仕方ないけど。

hoge[7:0]<= hoge[7:0] + 1'b1;
hoge<= hoge + 1;

でどっちでもいいんじゃね?

もっと言うなら、hoge のビット長をパラメータ化しないと使いまわせないから
hoge[hoge_bit_length - 1:0]<= hoge[hoge_bit_length - 1:0] + 1'b1;
とでも書くべきだね。

STARC の本は、自己矛盾がたくさんあるし、だいたい、DC のディレクティブを
使え、使うな、って説明すんなよ。

文法を知りたければ、IEEE Std 1364-200x を見るしかない。
コメント1件

184
774ワット発電中さん[sage]   投稿日:2009/11/19 12:37:02  ID:vzR3Td0Y
そのIEEEのって、本か何かで手に入る というか、
アマゾンで買えますかね?
買いたい。 でも英文でしょうけど。

コメント1件

185
774ワット発電中さん[sage]   投稿日:2009/11/19 14:32:51  ID:C2ysEPKC
加算で1'b1って符号拡張したら+1になるの?-1になるの?
コメント1件

186
774ワット発電中さん[sage]   投稿日:2009/11/19 16:11:42  ID:ZCs3zgEp
icarusで
$dumpvars;だけでVCDダンプしてくれるのね。

ちょっと感動しちゃった。

187
774ワット発電中さん[sage]   投稿日:2009/11/19 18:30:29  ID:GzRv3PCN(2)
>185
符号ビットがないため、拡張不能。

188
774ワット発電中さん[]   投稿日:2009/11/19 22:40:06  ID:eieg7cqB
>183
STARCが重視しているのは保守性の高い判りやすいコードを書くこと
決して分かりにくいコードでは無い

189
774ワット発電中さん[sage]   投稿日:2009/11/19 22:53:09  ID:YBgAAK+1
過去は振り返らない主義
ぱんつははかない主義

190
774ワット発電中さん[sage]   投稿日:2009/11/19 23:28:27  ID:t0/lSgP4(2)
>184
アマゾンからは無理かもしれないけど、
IEEEのWebから直接買えるよ。
もちろん、Webも仕様書も英語。

191
774ワット発電中さん[sage]   投稿日:2009/11/20 16:29:39  ID:bY59iNxM
前に紀伊国屋webからVerilog2001のIEEE本買った気もする

192
悩んでます[]   投稿日:2009/11/20 18:07:28  ID:u0oSCyr3
下のように書くと・・・
シフトしてからsr[0]入れるのか
sr[0]入れてからシフトするのか
もしくは不定なのでこんな事は出来ない?

always@(posedge clk)
begin
if (shift == 1'b1)
begin
sr[63:1] <= sr[62:0];
sr[0] <= sr_in;
end
end
コメント3件

193
774ワット発電中さん[sage]   投稿日:2009/11/20 18:13:27  ID:UasOPw0K
ノンブロッキング代入 でぐぐるんだ!

194
774ワット発電中さん[sage]   投稿日:2009/11/20 18:47:40  ID:OCkt+ePB
連接 でくぐるんだ!

195
774ワット発電中さん[]   投稿日:2009/11/20 18:50:01  ID:zzMuHcWs
>192
FF動作なのでノンブロッキング代入でOK
正しい記述になってます
判りやすくしたければ

sr[63:0] <= {sr[62:0],sr_in};

ですけどね

196
774ワット発電中さん[sage]   投稿日:2009/11/21 01:54:24  ID:4e3doTtU
sr[63:0] <= {sr[62:0],sr_in};
のほうが、2.23630679倍見やすいと思うな。

俺は、デバッグ用のピンを出すとき、こんなふうに書いてる。

  output wire [7:0] TP
);

  TP = {
    reset,    // 7
    clock,    // 6
    count,    // 5
    LED1,     // 4
    start_SW,   // 3
    1'b0,     // 2
    1'b0,     // 1
    1'b0     // 0
  };

197
悩んでます[]   投稿日:2009/11/21 13:05:08  ID:E0eNTL/5(2)
なるほど!
たすかりました。
スッキリしました。
ありがとうございました。

198
774ワット発電中さん[sage]   投稿日:2009/11/21 13:20:05  ID:YLTQ362E
連結使ってスッキリ、で終わらせるのでなく
ノンブロッキング代入が何かも理解しておかないと
後々困ることになるよ。

199
悩んでます[]   投稿日:2009/11/21 13:44:39  ID:E0eNTL/5(2)
ノンブロッキング代入は
 >192 のように代入文が複数ある場合
どのタイミングで代入されるのですか?
イメージとして
>192の場合シフト後のsr[0]にsr_inを代入と考えたほうがよいのかな?
なのでclkの↑(立ち上がり)で実行後は 元々あったsr[0]のデータは
sr[1]にあると考えてよい?
じゃぁ・・・
これに
sr[10]<=in_a;
sr[15]<=in_b;
といくつかステートメントを追加して書いても
配列への代入はそれぞれシフト後の[10][15]に入るのでしょうか?
厳密にはステートメントは書いた順に実行されて、どこかに予約され
何かのタイミングで"せーの”で一斉に実行されるのですか?
るのでしょうか?
コメント2件

200
774ワット発電中さん[sage]   投稿日:2009/11/21 15:46:03  ID:KtV5yHzv
>199
clockで動作するソースは、こういう風に読むんだよ。

  always@(posedge clk) begin    // clockの↑の一瞬で
    if (shift == 1'b1) begin
      sr[63:1] <= sr[62:0];  // sr63番〜se1番のFFの入力は、sr62番〜sr0番のFFの出力が駆動する。
      sr[0] <= sr_in;     // sr0番のFFの入力は、sr_inの信号(bufferの出力が駆動する。
    end
  end
書いてある上から順にやるわけじゃなくて、clockの↑の一瞬だけでしか動かない。
ということは、各行は一斉に1回だけやるということなんだ。
だから、書く順番に関係がない。beginとendに囲まれた範囲を、clockの↑の一瞬だけ1回実施する。
しかも、左辺の物は1回しか登場してはいけない。
マイコンだと上から順にやっていくので、
A = B + C;
A = in_a;  とか書ける。HDLは、それはだめ。

なので、
sr[10]<=in_a;
sr[15]<=in_b; を追加するとどうなるかというと

    if (shift == 1'b1) begin
      sr[63:1] <= sr[62:0];  // sr63番〜se1番のFFの入力は、sr62番〜sr0番のFFの出力が駆動する。
      sr[0] <= sr_in;     // sr0番のFFの入力は、sr_inの入力bufferの出力が駆動する。
      sr[10]<=in_a;      // sr10番のFFの入力は、in_aの入力bufferの出力が駆動する。
      sr[15]<=in_b;      // sr15番のFFの入力は、in_bの入力bufferの出力が駆動する。
    end
よく見るとおかしい。sr10番のFFの入力は、
      sr[63:1] <= sr[62:0];
の行でsr9番の出力によって駆動される、と言っているのに、
      sr[10]<=in_a;
の行で、sr10番のFFの入力は、in_aで駆動される、とも言っている。

「私はどっちの言うことを聞けばいいの?(はぁと)」ということになって、おかしい。
この状態を名古屋弁で「マルチソース駆動になっとるじゃん。あかんじゃん」と言います。
マルチソース=Multi Source=複数の供給源が駆動している状態。

コメント5件

201
774ワット発電中さん[]   投稿日:2009/11/21 16:27:28  ID:TSlVoV67
>199
全て間違い
ノンブロッキング代入はその式が評価された時に
代入のスケジューリングが行われるが、代入自身は
同時刻の他の処理が全て終わった後に実行される
(代入する値は評価された時に決まる)

また、複数のノンブロッキング代入の処理順序は
シミュレータによって振る舞いが異なる

コメント5件

202
774ワット発電中さん[sage]   投稿日:2009/11/22 01:20:42  ID:AuB4Q31Q
FFの動作を理解するのが先じゃない?

203
774ワット発電中さん[sage]   投稿日:2009/11/22 03:05:37  ID:MGeafn5k(2)
今はだいぶ慣れたけど、最初の頃は腹が立ってしょうがなかった。
どんなに記述しても、エラーが必ず出る。
エラーメッセージを見るけど、英語で書いてあってスグにわからない。
コンパイルにも素晴らしく時間がかかって、イライラしてるのに、輪をかけて英文の羅列。
16本の本だとerrorXXX:hoge<15>  errorXXX:hoge<14>・・・と16行もメッセージが出る。
わかった、わかった。丁寧に16行言わなくても1行でいいよ。
やっぱりマイコンがいいなぁ。コンパイルはあっという間だし、Cで書けば楽に書けるし。
妙なデバイスに手を出さずに、大人しくマイコンでやれば良かったと、何度思ったかわからない。
みんなよくこんな時間のかかる開発やってるよな。
エラーメッセージをコピーして、web翻訳をかけても、変な和訳で ますますわからない。
エラー番号をクリックすると、メーカーのホームページに飛ぶのは便利だけど、
これは次期バージョンで修正予定とかで、当面の処置が書いてあるが、
すでに使い慣れた人向けのような文章で、疑問が疑問を呼ぶ状態。
周りに聞ける人もいない。販売店に聞いてみる。
「営業なんでわからない。東エレに聞くからしばらく待って」となる。
なんか俺の質問はよっぽど難しいのか、変な内容なんだろうか。

ここで一発逆転を狙おうと、本を読み、自力で修正してみる。
<= を = にしてコンパイル。なんだよ、エラーが増えたじゃねーか。
やっぱり<=が正解みたいだな。
メニューをいろいろ触っていて、変なのを見つけた。クリーンナッププロジェクト。
その後、ダメ元でコンパイル。何事もなかったようにエラー無しで通る。
おいおい、なんだよそれ。こんなのアリかよ?

こんなに難しい言語、というか環境で、みんな良くやってると思うよ。
もうFPGAは使わないよ、マイコンで頑張る。
そうそう
SH6だったか、PLL内蔵で「ど速い」らしい。やっばりマイコンだあ。

コメント1件

204
774ワット発電中さん[sage]   投稿日:2009/11/22 03:13:45  ID:roalVB33
母から、本当の父は誰だか分からないと言われて
混乱してるだけなので、>203の行為は許してやって下さい。

205
774ワット発電中さん[sage]   投稿日:2009/11/22 03:51:05  ID:MGeafn5k(2)
ここはどこ? 私は誰?

206
774ワット発電中さん[]   投稿日:2009/11/22 03:52:47  ID:nTmYDl4b
いや、普通にこなしてる人でも最初はこんなリアルな失敗、悩み、疑問があったんだよ
っていうことがよくわかるいい文章だと思う。
惜しいのは、結局マイコンでやるのとは何が違うのかを書かなかったことだ

207
774ワット発電中さん[sage]   投稿日:2009/11/22 10:59:32  ID:oWHyRNvl
なんで英語で書いてあるのスグにわからないの?
なんでわざわざ機械翻訳で珍訳を生成するの? 仕事中にも笑いが欲しい?

まさが英語読めないとか? まさかね…
コメント1件

208
774ワット発電中さん[sage]   投稿日:2009/11/22 11:50:09  ID:NScoHg+I(3)
>まさが英語読めないとか? まさかね…
日常言語以外の言語を、
てにをはにいたるまでの理解はできないぞ、普通。

209
774ワット発電中さん[sage]   投稿日:2009/11/22 12:15:26  ID:NScoHg+I(3)
>207
次のメッセージは何を言っているのか教えてくれませんか?

line 122 Reference to vector wire 'HOGE' is not a legal reg or variable lvalue.


コメント1件

210
774ワット発電中さん[]   投稿日:2009/11/22 12:42:52  ID:f2AMmf/m
>200 >201
Verilog の仕様すら知らずにこういうことを言い出す輩が湧くんだが、
具体的に仕様通りに動かないシミュレータを挙げてくれまいか?
君らの脳内シミュレータが10年前からバージョンアップされてないのは仕方ないが・・・
コメント2件

211
774ワット発電中さん[sage]   投稿日:2009/11/22 12:46:58  ID:NScoHg+I(3)
>210
>200(オレ)と>201は別人だけど、それでも両者に言ってるの?
コメント1件

212
774ワット発電中さん[sage]   投稿日:2009/11/22 13:05:13  ID:L9MFkjkT
煽るだけ煽って彼の言う正しい答えを書かない
無能に反応しなくていいと思うよ

213
774ワット発電中さん[]   投稿日:2009/11/22 13:41:28  ID:pqRRj75R(3)
>210

>201 だが
俺はVerilogの仕様を書いたつもりだが
何処が間違えているか書いてくれないか?

214
774ワット発電中さん[sage]   投稿日:2009/11/22 15:10:12  ID:skyMdkmp
>209
以前もまったく同じ文章の意味が分からんって奴がいたが
これってそんなに難しい英語か??
確かにlvalueってはのは普通の英語じゃないけど、IT系の人間で
lvalueとか左辺値を知らないってのは本人の不勉強だろう。

まあ、以前話題になった時はvectorの意味が分からんという
論外だったけどw

215
210[sage]   投稿日:2009/11/22 17:45:04  ID:iLByihQM(2)
>211
混乱させてすまん。

じゃあ別々に
>200
>「私はどっちの言うことを聞けばいいの?(はぁと)」ということになって、おかしい。
>この状態を名古屋弁で「マルチソース駆動になっとるじゃん。あかんじゃん」と言います。

IEEE Std 1364-2001
5.4.1 Determinism
2) Non blocking assignments shall be performed in the order the statements were executed.

「実行した順番に評価しろ」だから、どちらに評価するかは明白。それにマルチソースじゃない。
まあ、名古屋弁ではそう言うのかもしらんが、混乱するのでなるべく方言は避けたほうが無難。


>201
>また、複数のノンブロッキング代入の処理順序は
>シミュレータによって振る舞いが異なる

Verilog の仕様に準拠していれば、振る舞いが異なることはないはず。
だから、もし、振る舞いが異なるシミュレータがあるなら教えて欲しいということ。

別々の @(posedge CLK) 内で評価すれば、「シミュレータによって異なる」というのはその通りなんだけども。
コメント2件

216
774ワット発電中さん[sage]   投稿日:2009/11/22 18:33:37  ID:U7q9ahM4(2)
>215

Verilogの言語仕様書って、実は結構曖昧ですよ。
動作が厳密に定義されてなくて、シミュレータ的に答えのない動作もある。
(そういう時は、大手商用ベンダのシミュレータの動作が正解・・・)

例:
FAQ 160
http://japanese.sugawara-systems.com/faqs.htm

とか、典型例。
システムタスク($fopen)なんかは、カオス。


>また、複数のノンブロッキング代入の処理順序は
>シミュレータによって振る舞いが異なる

215さんが書かれているように、同期回路ではあまり聞きませんね。

ノンブロッキング代入という言葉だけだと、最近は、always文で
非同期回路も書けるし、そういう場合は処理順序は異なるでしょうね。
(実行順序は不定。)

コメント1件

217
216[sage]   投稿日:2009/11/22 18:37:54  ID:U7q9ahM4(2)
あっ、処理順序は異なるってのは、複数の非同期回路が
書かれていた場合、非同期回路が評価される順番が違うって事ね。

シミュレータ的には、同じ時間であれば
どういう順番で評価しても構わない事になっていたはず。

218
774ワット発電中さん[]   投稿日:2009/11/22 18:40:39  ID:pqRRj75R(3)
>215
あんたの思っている仕様はVerilog2001じゃないか?
一般的にVerilogといえばVerilog95を指す

俺の知っている舞いが異なるシミュレータとしては Verilog-XL

もちろんVerilog-XLはVerilog2001に対応していない

コメント2件

219
774ワット発電中さん[sage]   投稿日:2009/11/22 19:49:45  ID:cDsCxXR9
そんなにかっちりとした仕様が欲しければVHDL使えば?
コメント1件

220
210[sage]   投稿日:2009/11/22 22:01:06  ID:iLByihQM(2)
>216
そうですね。
バイナリファイル扱うと挙動が違ったりするし。

ただ、ここでは、言語仕様について >200 が間違ってたから指摘しただけです。

>218
Verilog-1995 も同じですってば。仕様書読んでくださいよ。
それ以前のバージョンのVerilog-XLはそうかもしれないけど、そんな古いシミュレータのこといわれてもなぁ。
現行バージョンで試しましたか?
コメント1件

221
774ワット発電中さん[]   投稿日:2009/11/22 22:58:29  ID:pqRRj75R(3)
>220
古いシミュレータの事と言いますが、貴方が指摘した元の
私の文章を読んでください

>また、複数のノンブロッキング代入の処理順序は
>シミュレータによって振る舞いが異なる

このシミュレータには全てのVerilogシミュレータが含まれる
のでは無いですか?
それとも最新版ではないVerilog-XLはVerilogシミュレータでは
無いという事ですか?


コメント1件

222
774ワット発電中さん[sage]   投稿日:2009/11/23 02:25:53  ID:dDeZOG6U
>219
それはちがう。これらの柔軟性がVerilogの魅力。

おまじないの文章を何行も書いて、タイピングの練習がしたい人には、VHDLがベストです。

コメント1件

223
774ワット発電中さん[sage]   投稿日:2009/11/23 03:46:40  ID:LSr1kp5A(2)
VHDL は vhdl-mode.el があれば人の手で打ち込む必要のある記述量は Verilog と大差ないと思うな。
Verilog も verilog-mode.el を使えば port 宣言記述の自動化が出来て更に入力を減らせるけど。

何が言いたいかというと HDL 入力に emacs 最高w

224
210[sage]   投稿日:2009/11/23 06:05:02  ID:R0ImaWo0
>221
>218 で、貴殿は「Verilog とは、Verilog-95 を指す」とおっしゃってますよね。
Verilog-XLはそれ以前からあるし、それが1995の仕様を満たしていないのは仕方ないでしょう。
なら、その古いXLは、Verilog のシミュレータではないですね。
何か矛盾でも?

もし現行のシミュレータが Verilog の仕様を満たしていないなら、それはバグなんだからFIXすべきでしょ。
「(初期の)Verilog-XL は仕様を満たしてないよ」ってのは有用な情報です。ありがとうございます。
今のバージョンは大丈夫なですよね。確認したいのですが。

で、あなたは、>200 ですか?
もしそうなら、間違いは謙虚に認めませんか?
コメント1件

225
774ワット発電中さん[]   投稿日:2009/11/23 10:18:34  ID:vbHztXyQ
>224

私の主張はVerilogの言語仕様を完全に満たす物だけが
Verilogシミュレータでは無いという事

Verilog-XLはVerilogのシミュレータでは無いと言う貴方と
議論しても意味が無い

ここを読んでる多数の人が
Verilog-XLはVerilogのシミュレータでは無いと思うのであれば
私の間違いであり

Verilog-XLはVerilogのシミュレータだと思うのであれば
貴方が間違っているという事だろう

私は>201です

226
外野[sage]   投稿日:2009/11/23 10:59:25  ID:dHIdYGRg
多数派かどうかは知らないが、俺は
 規格非準拠バージョンのVerilog-XLはVerilogのシミュレータでは無い
と思う派

227
774ワット発電中さん[sage]   投稿日:2009/11/23 11:15:13  ID:p8WFxSLc(3)
>222
今の流れからみてその柔軟性が魅力と思えることにびっくり。
>223でも書いてあるようにLisp使えば記述力が減らせる、個人的には補完とか考えれば
VHDLモードの方が記述力は少ない。

228
774ワット発電中さん[sage]   投稿日:2009/11/23 11:21:35  ID:AFur5VmV
記述「力」ってナンだよオイ…
「量」だろ

ところで皆さんそんなにEmacs使ってるの?

コメント2件

229
774ワット発電中さん[sage]   投稿日:2009/11/23 11:23:11  ID:p8WFxSLc(3)
>228
ぉぅぃぇ・・・

230
774ワット発電中さん[sage]   投稿日:2009/11/23 12:48:14  ID:+zx+S2Ao(2)
>228
やっぱり vi(クローン含む) だよなw

231
774ワット発電中さん[sage]   投稿日:2009/11/23 13:16:52  ID:SLqZW4dO
VHDLかVerilogかの論争の後は
Emacsかviかの論争かよ

終わりがない

232
774ワット発電中さん[sage]   投稿日:2009/11/23 13:45:01  ID:LSr1kp5A(2)
お次はインデント論争かなw

私は「SPACE×2個」派
インデントに統一感の無いHDLを見るとイラっと来るわ

コメント1件

233
774ワット発電中さん[sage]   投稿日:2009/11/23 14:03:50  ID:p8WFxSLc(3)
>232
そういうのはLispの自動整形やっちゃうな、まぁ変なネストやると大変だけど。

あと区切り文字も追加で、俺はアンダーバーです。

234
774ワット発電中さん[sage]   投稿日:2009/11/23 14:18:01  ID:+zx+S2Ao(2)
SPACE×2個やTAB4, TAB8はどうでもいい
見た目はそろってるのにSPACEとTABが混じってるものが腹が立つ

235
774ワット発電中さん[sage]   投稿日:2009/11/23 16:54:00  ID:YuBK/yxK
見た目がそろってるならまだいいじゃないか。extend -8 とか通せばいいんだし。

http://www.amazon.co.jp/dp/4320122224/
なんか、ソースリストのインデントが壊れてんだぞ。

236
774ワット発電中さん[sage]   投稿日:2009/11/23 16:58:39  ID:IM7Ma9Dh
著者と編集の間のやり取りで壊れたんだろうな。

237
774ワット発電中さん[sage]   投稿日:2009/11/23 18:37:15  ID:6r3cr2mD
インデントは、TAB4と決まっています。

238
774ワット発電中さん[sage]   投稿日:2009/11/25 16:27:28  ID:nLql/K24
シミュレーションのタイムアウトって
皆さんどうやって作ってます?

239
774ワット発電中さん[sage]   投稿日:2009/11/25 22:06:42  ID:sjkREQUV
意味が分かりません、$finish?

240
774ワット発電中さん[sage]   投稿日:2009/11/25 22:37:46  ID:PE7E0fVC
run時間を指定せず、testbench側で一連の処理完了後したら自動停止させたいとか?
sim終了条件で引っかけて errorレベルで assert すればいいんじゃないかな。

if (sim終了条件) then
 assert (FALSE) report "finished !!" severity error;
end if;

コメント2件

241
774ワット発電中さん[sage]   投稿日:2009/11/26 01:07:00  ID:hzwnbqkx
initial begin
#1000 // タイムアウトまでの時間
$display("Timeout");
$stop;
end
じゃダメなのか?
コメント2件

242
774ワット発電中さん[sage]   投稿日:2009/11/26 09:12:18  ID:G814z+f1
VHDLとVerilogが混在してるな
Verilogなら >241 で良いし
VHDLにはそもそもそんな機能無いから >240 の方法しかない

243
238[sage]   投稿日:2009/11/26 12:07:13  ID:Y8ZLocsg
皆さん回答ありがとうございます。

現状で>241のような書き方でやってました(先に書けよ自分orz)。

>240さんのような書き方もあるんですね。
assertの動作がどうなるかちょっと勉強してきます。

244
774ワット発電中さん[sage]   投稿日:2009/12/09 02:15:22  ID:GHlPOyiL
verilogでtaskに文字列を引数で渡す時、
受け側では当然十分なビット幅を用意しておくんだけど、
これを$displayすると、余分な空白が付いてしまいます。
lstrip()的な事は出来ないものでしょうか。

245
774ワット発電中さん[sage]   投稿日:2009/12/09 13:07:51  ID:DdpyCbNF
task特有の問題かわからないけど
6桁表示とするとたぶん%6dとかでいいと思う。
integer a;
$display("a = %6d",a);
とか、Cと一緒
コメント2件

246
774ワット発電中さん[sage]   投稿日:2009/12/10 13:53:35  ID:Ymq5uMhk(2)
教えてください。

ASCII文字の数字←→バイナリの変換をするとき、
マイコンだと bin = ASCII - '0'; という書き方が出来て、見やすくていいのですが、
Verilogでは、どのように書けば良いのでしょうか。

assign bin = ASCII - '0'; という書き方はダメなのでしょうか?
ERROR:HDLCompilers:26 - "test.v" line xx unexpected token: ''' と言われてしまいます。

247
774ワット発電中さん[sage]   投稿日:2009/12/10 14:45:17  ID:aM3p/zVO
assign bin = ASCII - "0";
コメント1件

248
774ワット発電中さん[sage]   投稿日:2009/12/10 21:12:46  ID:Ymq5uMhk(2)
>247
ありがとうございます。
ダブルクォーテーションですか。ありがとうございます。
早速ソースが修正できます。
ありがとうございました。

249
774ワット発電中さん[sage]   投稿日:2009/12/11 04:19:34  ID:8C8d8l63
>245
うーん、そういうことではなくて、
$display("[DEBUG] %s hoge=%d", str, hoge);
みたいな事をしたいとして、
strが文字列リテラルであればなんの問題もないのだけど、
[MAX_LEN*8:1] str;
のようにしていて、必要以上のビット幅を確保した場合、
余計なスペースが入ってしまって嫌だなぁ、という事です。
str[variable -: constant]
として、任意の位置から固定幅を抜き出すことはできても、
str[variable:1]
とするのはエラーになってしまうし。
コメント1件

250
774ワット発電中さん[sage]   投稿日:2009/12/11 11:52:08  ID:0oR6+FWW
>249
>245 をよく読め

251
774ワット発電中さん[sage]   投稿日:2009/12/11 13:31:49  ID:GSylvgAP(2)
>250
Verilog は C言語の printf()ライブラリ関数と同じではない
>245 のような桁数指定は実は規定されていない(最近の規格は知らないが)。
但し対応してるシミュレータもある。

例 (ISE WebPACK 8.1.03i)
ISE Simulator 桁数指定無視
Model Sim XE 桁数指定有効

>249
>244 の書き方では 引数が文字列のとき望みの表示にならない ように読めたが、
>249 を読むと何がやりたいのか分かりません。

エラーにはならないのなら、実際のコードと出力結果、そして 期待する出力 を
書いた方が早いよ

252
774ワット発電中さん[sage]   投稿日:2009/12/11 14:26:33  ID:GSylvgAP(2)
あと、>244 だけを読んでて思ったんだけど、

$display("[DEBUG] %0s hoge=%d", str, hoge);

   %s じゃなくて %0s、 左詰印字指定 が欲しかった?

沢山出力するときに 桁位置がずれると読みにくいから、
普通は固定幅にするものだと思うのだが…

253
774ワット発電中さん[sage]   投稿日:2009/12/13 16:43:29  ID:Yyu9URp8
>244
先頭に余白があったらスワップさせるルーチン組んだらダメなん?
こんな感じで。

task main_banner;
input [8*80:1] strings;
 begin
    while(strings[8*80:8*80-7]==8'h0) begin
        strings = { strings[8*80-8:1], 8'h0 }; 
    end
  $display("%s",strings);
 end
endtask


254
774ワット発電中さん[sage]   投稿日:2009/12/14 02:36:46  ID:MLe93wQb
それだと右に余白ができるのでは?

255
774ワット発電中さん[sage]   投稿日:2009/12/16 13:34:18  ID:vGgxmV9w
どなたかお力をお貸し下さい。
VHDLのシミュレーションで、同じファイルを何回も読み込みたいのですが
うまく行きません。気持ち(?)を表したソースを載せますので良きアドバイスを!

file READ_FILE : text open read_mode is "param.txt";
−−−中略−−−
for N in 1 to 100 loop
while not(endfile(READ_FILE)) loop
readline(READ_FILE , LINE_DATA);
−−−中略−−−
end loop;
end loop;

これだと初めの一回しか読み込みが行われません。
繰り返し読み込むにはどうすれば良いでしょうか?

256
774ワット発電中さん[sage]   投稿日:2009/12/16 14:04:14  ID:p5K3IkzB
file_close(READ_FILE); して、openからやり直す?
コメント1件

257
255[sage]   投稿日:2009/12/16 15:32:32  ID:/HAZItS5
>256さん(ある意味キリ番?)
さっそくヒントをありがとうございます。
「file_close」なるモノを使った事が無いのでさっそく勉強します。
もう少し他にも助言頂けるとありがたいです。

258
255[sage]   投稿日:2009/12/16 21:17:25  ID:Mep0dqIg
ヒントを頂き無事に解決しましたので、お礼を兼ねて結果を報告します。

for N in 1 to 100 loop
 file_open(READ_FILE, "param.txt", read_mode);
 while not(endfile(READ_FILE)) loop
  readline(READ_FILE , LINE_DATA);
  −−−中略−−−
 end loop;
 file_close(READ_FILE);
end loop;

頂いたヒントの「file_close」から調べて辿り着きました。
256さんを含めて住人皆様に「ありがとう」です。では。

259
774ワット発電中さん[sage]   投稿日:2010/01/25 10:45:49  ID:zD88Hw3b(2)
Verilog のシミュレーションには cver を使っていますが、
フリーの VHDL シミュレータはどんなものがありますか。
というか、Mixed-HDL シミュレーションができるもの。
職場が VHDL なんですが、メーカー提供のモデルは Verilog が多いので
難儀してます。

260
774ワット発電中さん[sage]   投稿日:2010/01/25 11:02:30  ID:A5ay+Mkz

261
774ワット発電中さん[sage]   投稿日:2010/01/25 20:31:02  ID:zD88Hw3b(2)
>260
レスどうも。

VHDL のシミュレータならこんなのもあるようですが、どんなもんでしょう。
http://freehdl.seul.org/
やたらバージョン番号が小さいので、実用性がいかがなものか気になるところです。

Verilog と VHDL のミックスドでシミュレーションできるフリーのシミュレータというのはさすがに見当たりませんね。
VHDL を強要されている人たちはどうやってシミュレーションしてますか?
とりあえず今のところ、全部 Verilog で書いて VHDL に変換、というのが現実的かなと思ってます。
コメント1件

262
774ワット発電中さん[sage]   投稿日:2010/01/25 21:09:54  ID:Dv1AzRTi
会社からmix環境でやれと言われたら会社にEDAを買わせる。
そもそも何でフリーなんだ?

263
774ワット発電中さん[sage]   投稿日:2010/01/26 01:49:50  ID:YPuSjNhY(2)

すみません。教えてください。

Windows XP + ISE10.1で、次のようなエラーが出て、困っています。

ERROR:HDLCompilers:26 - "CCC.v" line 3 expecting 'endmodule', found 'module'

上記の意味は、次のように理解しています。正しいでしょうか?
 「上から見ていって、endmoduleが来るのを期待していたのに、
                  moduleが来た。だからエラーだよ」

また、ソースは以下のように記述しているのですが、
何かおかしいところを指摘いただけないでしょうか?
1つのテキストファイルに、次のように記述しています。

module AAA(    );
  xxxxx
  xxxxx
  xxxxx
endmodule

module BBB(    );
  xxxxx
  xxxxx
  xxxxx
endmodule

module CCC(    );
  xxxxx
  xxxxx
  xxxxx
endmodule

module〜endmoduleで閉じていれば、いくつ書いても良いと思っています。

宜しくお願いします。

コメント2件

264
774ワット発電中さん[sage]   投稿日:2010/01/26 08:24:02  ID:emtZnNhR(2)
>261
Modelsimで混載simが可能になったらハッピーなんですけどね。
混載simをしたい場合、一端 QuartusII の「Generate Functional Simulation Netlist」で
混載部分の VHDL Netlist を生成し、ModelsimにてSimulationしてました。
Simulation時間がとても長くなってしまうのが難点ですが。

>263
Projectかソースを置いてあるパスにスペースが含まれているとか?
(たぶんブランクになってる)「Verilog Include Directories」に、RTLの置き場所を明示するのも手。

>module〜endmoduleで閉じていれば、いくつ書いても良いと思っています。
無難に「1ファイル=1モジュール」で「ファイル名=Module名」にしておいたほうが良いと思います。

265
774ワット発電中さん[sage]   投稿日:2010/01/26 11:35:46  ID:YPuSjNhY(2)
>263
ありがとうございます。

>無難に「1ファイル=1モジュール」で「ファイル名=Module名」
はい、これは実行しています。
しかしAAAの中だけで使うKKKは、関連性もあるので、1ファイル内に
File名「AAA.v」
module AAA ();
  KKK U1 ();
  KKK U2 ();
  xxxx
endmodule

module KKK ();
  xxxx
endmodule
のように、同居させていますが、マズイでしょうか?
KKKはどこにあるんだ? というときに困るかも、という問題はあると思いますが、
秀丸のgrepで検索しています。

あと、
上記のような、Verilog表記というか「作法」について知るには、
どのようにすれば良いのでしょうか?
僕1人で、聞ける人がいなくて困っています。
商社の講習会に何度か参加しましたが、このような内容は特になかったです。
Verilogの作法から教えてくれる講習会があれば、ぜひ参加してみたいです。

コメント2件

266
774ワット発電中さん[sage]   投稿日:2010/01/26 19:05:46  ID:emtZnNhR(2)
>265
コンパイラ指示子の「`include "ファイル名"」で関連性を明示しちゃうのも手。
-------------------
`include "KKK.v"

module AAA ();
  KKK U1 ();
  KKK U2 ();
  xxxx
endmodule
-------------------

「作法」については、やはり先人の「マネ」から入るのが手っ取り早いですね。
慣れてきたら徐々に自分の記述スタイルを構築して行きましょう。

ちょっと堅苦しい記述だけど、「RTL設計スタイルガイドVerilog-HDL編」を
眺めて見るのも参考になるかもです。
コメント1件

267
774ワット発電中さん[sage]   投稿日:2010/01/26 21:11:36  ID:V8wYbU4f
>265
自分も、特定のモジュールからしか呼ばれないローカルなモジュールを
親モジュールと同じファイルに入れてるよ。

SystemVerilogならモジュールの入れ子ができるけど、
普通のVerilogはダメなんだよなあ。
コメント1件

268
774ワット発電中さん[sage]   投稿日:2010/01/27 01:20:44  ID:WZwmUI6r(2)
ISEで、教えてください。

ISEのソースウインドウに表示される内容の読み方についてです。
ウインドウの一番上にから、
+−プロジェクト名
+−+−デバイスの型式
  +−AAA (111.v)
  +−BBB (222.v)
  +−CCC (333.v)
  +−top (top.v)
    +−U1 KKK(444.v)
    +−U2 KKK(444.v)
    +−U3 KKK(444.v)
という具合に、インデントが付いて、表示されます。
このインデントで分けられた物の意味がわかりません。上記の例ですと、

444.vというファイル内にある、KKKというインスタンスが、
topモジュールの中で、U1, U2, U3として使用されている、
と読むのだと理解しています。

わからないのは、
topの上に表示されるAAA,BBB,CCCです。これは一体何でしょうか。
topモジュールと同じ位置関係にあるモジュールというのが
イメージ出来ません。
ここに表示されることが、いけないことなのか、良いことなのか、
ワケがわからないので、不安いっぱいです。

また、topモジュール内部で、KKKを記述するとき、
知らずにスペルミスすると、それまでtopモジュールの下に表示されていたKKKが、
AAA〜CCCの仲間と同じ位置に勝手に移動してしまい、これもなんだかわかりません。
頼んでも以内のに表示位置が勝手に移動してしまうのです。

これらの表示位置によって、宣言が無いとか、ダブってるとか、のエラーが出てしまい
なかなか修正ができません。知らずにちょっと何かあると、ドバーっとエラーが出てきて、
どうして良いかわからず、ISEを使うのが 半分怖いです。

とてもとまどっています。この辺りの情報を知るには、どうしたら良いのでしょうか。
Xilinxのwebも探してみましたが、見つけられませんでした。
WebPackなので、Xilinxに聞くわけにも行かず、周りに聞ける人がいなくて困っています。

どうぞ宜しくお願いします。

コメント1件

269
774ワット発電中さん[sage]   投稿日:2010/01/27 01:27:00  ID:WZwmUI6r(2)
>266
ありがとうございます。
`include "ファイル名"は、バリバリ使っています。
マイコンのCのときと同じで、とても便利だと思っています。

>「作法」については、やはり先人の「マネ」から入るのが手っ取り早いですね。
そうですか。本に載っているソースをたくさん見ることですね。
回路図集を眺めて回路を覚えるような感じですね。

>ちょっと堅苦しい記述だけど、「RTL設計スタイルガイドVerilog-HDL編」を
高いですよね、この本。ちょっと躊躇しています。(汗

>267
ありがとうございます。
>自分も、特定のモジュールからしか呼ばれないローカルなモジュールを
>親モジュールと同じファイルに入れてるよ。
そうですか、安心しました。

270
774ワット発電中さん[sage]   投稿日:2010/01/27 07:49:55  ID:BzMnVh0d
>268
topの中でインスタンス宣言されたモジュールがtopの下に来るだけのこと。
topの同レベル(デバイス直下)にいるモジュールは、source->addされたのにも関わらず
どこからも参照されていないモジュールであることを示す。

ビルドでエラーが起きるのは、Source windowの表示位置が悪いからではなく
ビルドエラーが起きるような記述ミスがあるために正しい位置に表示されないだけ。
因果関係が逆。
コメント1件

271
774ワット発電中さん[sage]   投稿日:2010/01/28 17:15:03  ID:Lt4yon6O
>270
ありがとうございます。
なるほどです。ということは、次のような理解で良いでしょうか?
+−プロジェクト名
+−デバイスの型式
  +−AAA (111.v)
  +−BBB (222.v)
  +−CCC (333.v)
  +−top (top.v)
    +−U1 KKK(444.v)
    +−U2 KKK(444.v)
    +−U3 KKK(444.v)
a) 上記の例では、モジュールの表記されている位置だけでは、コンパイルにエラーがあるかどうかはわからない。
b) AAA, BBB, CCC, topは、互いに参照もされず、関係が(からみ)も無い。なので
  AAA, BBB, CCC, topは、1つのFPGA上にまるで「回路が同居している」ように考えれば良い。
d) ということは、コンパイルの時に、AAA, BBB, CCC, top全てがコンパイルの対象になる。
e) なので、AAA, BBB, CCC, topは、それぞれ単体で「エラーが無く話が完結している」必要がある。
f) top内でのタイプミス等により、AAA BBB CCCのレベルにモジュールが上がってくると、
  e)の理由により、一気にエラーが量産されてしまう。
g) f)のタイプミスを修正すれば、f)で上がってきたモジュールはtopの内部に戻るので、
  自動的に?AAA, BBB, CCC, topのレベルから表示が消える。

コメント2件

272
774ワット発電中さん[sage]   投稿日:2010/01/28 19:01:49  ID:pqx+eWaE
>271
いやいやいや
AAA,BBB,CCC,topのうち、トップモジュールに設定されたどれか1つが論理合成の対象。
例えばtopがトップモジュールに設定されている場合、AAA,BBB,CCCに何が書かれていても無視され、論理合成でエラーは出ない。


273
774ワット発電中さん[sage]   投稿日:2010/01/28 21:47:55  ID:4FjBU8cW
>271
論理合成にかける前にシミュレータで文法チェックしたのかな?
Xilinx版Modelsimも無償で入手できるはず。

vlog top.v
vlog 444.v
でコンパイルして
vsim top
でエラーが出なければ、Verilogの文法的には合ってる可能性が高い。
もちろん、論理合成できるかどうかは別問題だけど。

あと、素直にVerilog HDLの本を買ったほうがいいんじゃないかなあ。

274
774ワット発電中さん[sage]   投稿日:2010/01/29 04:19:28  ID:Me353m+D
vlog top.v 、vsim top って、何?

275
774ワット発電中さん[sage]   投稿日:2010/01/29 04:38:10  ID:eDRr4cmu
コマンドラインで実行したことない人ですか?

276
774ワット発電中さん[sage]   投稿日:2010/02/04 04:04:55  ID:nehoMBmZ
教えてください。
Verilogで、clockAで動くmodule Aと、clockBで動くmodule Bがあります。
Clock周波数が異なる(非同期な)2つのmodule間で、信号をやりとりしたいです。

module Aから、modeule Bに「AD変換依頼」の信号を定周期で送り、module Bでそれを受けてAD変換処理をする
というものです。
そこで考えたのは、
module B内にRS-FFを置き、module Aの指示でSetされ、
SetされていたらAD変換処理を行い、AD処理終了したらRS-FFをResetするという方法です。

このRS-FFは、Clock Aに同期してSetされClock Bに同期してResetされるわけですが、
module B内部に、どのように記述すればいいかわかりません。
RS-FFは合成できませんと書かれた本もあれば、OKという本もあります。
タスキがけの組み合わせ回路を書けば良いと思うのですが、まずいでしょうか。
RS-FFがダメとなると、どのような手法で実現するのが一般的でしょうか。
DualPortRAMの使用、とか。

コメント2件

277
774ワット発電中さん[sage]   投稿日:2010/02/04 10:56:38  ID:Mabj5bnb
>276
ターゲットデバイスによってやり方は違う。
ASICならRS-FFの非同期セット/リセット使うという手もなくはない。
FPGAならRS-FFなんてないから無理。

送りたい情報が1bit程度なら、ハンドシェイク方式で十分なので
DualPortRAMやら非同期FIFOやらまで持ち出さなくてもいいだろう。

異なるクロックドメイン間の通信は、受け側で2回D-FFを通せば
メタステーブル状態を回避して、状態を検知できる。
対向1組の信号線があれば1bitの情報をハンドシェイクで伝送できる

ModuleA出力 REQ (初期値L)
ModuleB出力 ACK (初期値L)
 ModuleA AD変換依頼を発信 REQをL→H
 ModuleB REQがHを確認したら ACKをL→H
 ModuleA ACKがHなのを確認したら REQをH→L
 ModuleB REQがLを確認したら ACKをH→L
 ModuleA ACKがLになるまで待機した後、最初に戻る

278
774ワット発電中さん[sage]   投稿日:2010/02/15 22:45:13  ID:Y1+QD653(2)

>276
1bitのset信号ならFF2段通せばおk
メタステーブルでググれ

ClockBの方が遅いとして、
ClockAからのsetを、ClockBで拾えるように
十分長くする。

always @(posedge ClockA)begin
set_ff <= set_pls;
set_ff2 <= set_ff;
set_ff3 <= set_ff2;
end

assign set_4cycle = set_pls | set_ff | set_ff2 | set_ff3;

//ClockBで叩いてClockB同期信号にする
always @(posedge ClockB)//clock乗せ換え//メタステーブル発生可能性あり
set_clkb_meta <= set_4cycle;//set_4cycle is ClockA domain

always @(posedge CloclB)//メタス伝播保護
set_clkb <= set_clkb_meta;

always @(posedge ClockB)//このレジスタは完全に同期
if(set_clkb)
rs <= 1'b1;
else if(clr)//clrはClockBドメイン
rs <= 1'b0;

279
278[sage]   投稿日:2010/02/15 23:39:58  ID:Y1+QD653(2)
グリッジで受け取れませんでした
さーせん
コメント1件

280
774ワット発電中さん[sage]   投稿日:2010/02/16 14:05:10  ID:gx7eOtBv(3)
質問いいでしょうか。初心者です。

Verilogで、
モジュールの中のインスタンス化した物の中の、
これまたインスタンス化した中の、
これまたインスタンス化した中の・・・・の最下位moduleの中の信号を、
topまで引っ張り出して、外部端子からオシロで信号が見たいです。

しかし、下からtopに向かって、全てのmodule( )のカッコ内に
モニタのためだけに信号名を追加で書かなければならないのでしょうか?

最下位のmoduleから直接topの端子につなぐことは出来ないのでしょうか?

コメント2件

281
774ワット発電中さん[sage]   投稿日:2010/02/16 21:18:13  ID:mss5Njfl
>280
できない、はず。
SignalTap(Altera)やChipScope(Xilinx)を使えば、
RTLを変えずにJTAG経由で内部信号を見られるが…。

>279
set_4cycleをFF(ClockA駆動)で叩いてからClockBドメインに渡せば
動くということ?
コメント2件

282
774ワット発電中さん[sage]   投稿日:2010/02/16 21:42:24  ID:gx7eOtBv(3)
>281
ありがとうございます。

そうすると、そのインスタンスを参照している「全てのmoduleのポートリスト」を
修正しないと行けないのでしょうか?
どれか1つでtopまで上がってきて、他の参照moduleはほったらかし、ということはNGでしょうか?

>SignalTap(Altera)やChipScope(Xilinx)を使えば、
なるほど了解です。

Verilogだとダメだけど、VHDLならできるよ、とかありますか?

283
774ワット発電中さん[sage]   投稿日:2010/02/16 21:42:47  ID:5NAIUMh0(2)
>280
シミュレーション用記述ではカンマで階層参照できますが
assign aaa = testbench.fpgatop.modulea.modulea_b.signal_ccc;
って感じで。

合成して端子から出してオシロで見るなら
おっしゃるとおり通過するmoduleに全部にport追加してます。

>281
そのとおり。
コメント1件

284
774ワット発電中さん[sage]   投稿日:2010/02/16 21:45:16  ID:5NAIUMh0(2)
カンマじゃねえしww
アホだろおれ

285
774ワット発電中さん[sage]   投稿日:2010/02/16 23:59:50  ID:gx7eOtBv(3)
>283
大丈夫です、「点」ですね。

しかし、面倒ですね。RS232の送信回路とか作ったときなど、
最下層の信号が見てみたいことがよくあるのですが・・・。

hoge U1 ( .CK(CK), .RES(RES), .DEBUG(DEBUG ) ) ) );
hoge U2 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U3 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U4 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U5 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U6 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U7 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U8 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );
hoge U9 ( .CK(CK), .RES(RES), .DEBUG(   ) ) ) );

という感じですよね。
コメント1件

286
774ワット発電中さん[sage]   投稿日:2010/02/18 17:47:21  ID:yIeLHpwf
>285
実機で確認したいなら、深くする前に一部だけ実装して、
浅い段階で確認すれば?
しかし、遅い信号なら、シミュレーションで確認すれば、
ほぼ問題ないと思うけど。

287
774ワット発電中さん[sage]   投稿日:2010/02/24 19:20:28  ID:QlmSv/vw(2)
テストベンチの話です。
ALTERA、FPGA、Modelsim AEです。

FPGAのパルス出力の数をテストベンチでカウントしたいのですが
方法を教えていただけないでしょうか。

テストベンチ内のProcess文内で
エッジを検出してカウントさせる方法が思いつきません。

よろしくお願いします。
コメント1件

288
774ワット発電中さん[sage]   投稿日:2010/02/24 19:42:01  ID:QlmSv/vw(2)
>287

wait until CLK'event and CLK='1';

これで出来ました。
失礼しました。

289
774ワット発電中さん[]   投稿日:2010/02/25 00:47:49  ID:knIewJvt
みなさん読みやすさ重視で記述してます?
記述の段階で最適化(笑)かけちゃいます?
コピペの修正しやすさ重視でif文横に引き伸ばしちゃいます?
カウンタのbit[3]を使い回す時名前そのままでつなげちゃいます?
コメント1件

290
774ワット発電中さん[sage]   投稿日:2010/02/25 01:10:46  ID:VQJbK0Dq
>みなさん読みやすさ重視で記述してます?
当然です。
>コピペの修正しやすさ重視でif文横に引き伸ばしちゃいます?
もちろんです。

可読性が最優先です。
コメント1件

291
774ワット発電中さん[sage]   投稿日:2010/02/25 01:22:56  ID:1e290r5x
一年後の自分は他人と同じ、
すぐ理解&メンテし易いように記述しておくのが吉

292
774ワット発電中さん[sage]   投稿日:2010/02/25 03:12:31  ID:6oNNVfGL
>289
おれも>290と同じ。
「1年後の自分は他人」って、まったくその通り。半年でも。

  if( count >= 4'b1001 ) begin count <= 0;     end
           else begin count <= count + 1; end

読みにくい例
  if( count >= 4'b1001 )
  begin
    count <= 0;
  end
  else
  begin
    count <= count + 1;
  end



293
774ワット発電中さん[sage]   投稿日:2010/02/25 03:25:19  ID:njmrG6b+
単なるカウンタなのに、それだと両方読みづらい…。
コメント1件

294
drcoop[drcopp@cnn.com]   投稿日:2010/02/25 06:13:10  ID:bHhCiqJw
http://www.youtube.com/watch?v=ZOU8GIRUd_g

Rock - Paper - Scissors - Lizard - Spock

295
774ワット発電中さん[sage]   投稿日:2010/02/25 23:56:16  ID:+xMLIC94
>293
激しく同意。自分もそうだけど、センスなさ杉><
コメント1件

296
774ワット発電中さん[sage]   投稿日:2010/02/26 00:57:02  ID:Nv7ueyBt(2)
/*
教えてください。もう、わけがわかりません。
以下のソースをコンパイルするのですが、思い通りになってくれません。

0〜9までのcounter変数の、特定の1bitを取り出して、LEDを点ける回路を
書きました。シンセシスした後、回路図を表示させて確認しています。
下の例では、counterの2bit目を取り出そうとしていますが、wire変数LEDで取り出せないんです。
回路図を見ると出力LED自身が消されています。カウンタ回路部分はどの場合でも生成されています。
*/

module test (
  input  wire  clock,
  output  wire  LED
);
  reg [3:0] counter;

  always @ ( posedge clock ) begin
    if( counter >= 4'b1001 ) begin counter <= 4'b0000;       end // 9になったら、次回は0
              else begin counter <= counter + 4'b0001;  end // そうでなければ、++する。
  end

// assign LED = ( counter[2] == 1'b1 )? 1'b1 : 1'b0;    // パターンA) だめ 消えてしまう。
// assign LED = ( counter[2:2] == 1'b1 )? 1'b1 : 1'b0;   // パターンB) だめ 消えてしまう。
  assign LED = ( counter & 4'b0100 )? 1'b0 : 1'b1;     // パターンC) OK
endmodule

A)では、coubterの2bit目を取りだして評価しているつもりです。本命だと思っていたんですが。
同様にB)では、counterの「2bit目から2bit目」を取りだして、取り出しています。
C)は、別法として疑問はありません。
なぜA)やB)の場合はだめなのでしょうか?
涙出てきました。宜しくお願いします。

コメント1件

297
774ワット発電中さん[sage]   投稿日:2010/02/26 01:14:13  ID:wyrTm3DG
>295
counterが不定のままなんじゃなかろうか?

コメント2件

298
774ワット発電中さん[sage]   投稿日:2010/02/26 01:21:52  ID:panB1ZHK
>297
外にあるはずのalwaysの記述も、リセット記述も省いてるだけだろ。

299
774ワット発電中さん[sage]   投稿日:2010/02/26 05:44:57  ID:0nac0MMq
>296
// assign LED = ( counter[2] == 1'b1 )? 1'b1 : 1'b0;    // パターンA) だめ 消えてしまう。
↑は、合成したら↓こうなったんじゃないのかな。
assign LED = counter[2];
コメント1件

300
774ワット発電中さん[sage]   投稿日:2010/02/26 16:11:33  ID:Nv7ueyBt(2)
>297->299
ありがとうございます。
リセットが書いてありませんでしたが、resetを書いても同じで、変でした。
counterの値も正しく加算されているようでした。

そこで、いろいろとやってみたところ、原因?がわかりました。
これを見てください。↓
http://mcnc.hp.infoseek.co.jp/cgi-bin/img-box/img20100226160605.jpg
ISEの回路図表示が変のようです。RTLで見るとclockとLEDがあるのに、
それをダブルクリックして、その中身を見るとLED出力が無くなってる。
ここでビックリしていたわけです。
だけど、その状態でTechnology Schematicで見ると、ちゃんと出力はある。
試しにFPGAで動作させると、ちゃんと出力される。なんだかなぁ。
ISE不信になりそうです。

ありがとうございました。

コメント1件

301
774ワット発電中さん[sage]   投稿日:2010/02/26 22:57:11  ID:aXIPBmIw
Technology Schematicで消えるなら問題ありそうだが、RTLのはおまけのイメージが

302
774ワット発電中さん[sage]   投稿日:2010/02/27 00:16:16  ID:1ZzAkfsO
>RTLのはおまけのイメージが
ユーザーはツールの出力するものすべてを信用してると思います。
RTLスケマの結果を大目にみると、合成結果もいい加減な結果を許容することになるし。
変なツール。要はバグではないかと思います。

303
774ワット発電中さん[sage]   投稿日:2010/02/27 03:07:56  ID:Ie9tdjeA
Verilogで教えてください。2つあります。

1つ目
defpermやparameter=で設定する値は、
通常、ソースに即値で書き込んでコンパイルします。
これを、外部のスイッチの値を放り込みたいのですが、可能でしょうか?
SW on/off → "true"/"false" とか、
SW[3:0] → WIDTH値 とかです。

2つ目
親moduleから子moduleにセットできる通常のパラメータ値ですが、
さらに上の階層から指示することはできるのでしょうか。
親module → 子module → 孫module → ひ孫moduleをセット という感じです。

いくつも質問してすみません。よろしくお願いします。
コメント1件

304
774ワット発電中さん[sage]   投稿日:2010/02/27 16:33:51  ID:DZ7MRIXi
>303
1つ目
質問の意味が、ランタイムな変更という意味ならば、不可。

2つ目
可能。
コメント1件

305
774ワット発電中さん[sage]   投稿日:2010/02/28 00:13:21  ID:82lxoNwM
>304
ありがとうございます。

やはり、1つ目はだめでしょうか。
例えばPLLの分周比をスイッチの値によって、コロコロ変えたいのです。
そんな用例というか需要はないのでしょうか。ハードウェアで製作するPLLなどは、
DIP SWの値を読み込みながら、PLLのM/N値に反映させることはよくやるんですけど。

2つ目は、どのような記述になるのでしょうか。ぜひ教えていただけないでしょうか?
また、そのようなことは、どこに書かれているのでしょうか。
Verilogの文法書を見つけられないのです。
XilinxのXSTガイドは、それほど詳細に書かれてはいないし。
半導体研究センター?の本に載っているのでしょうか。

コメント3件

306
774ワット発電中さん[sage]   投稿日:2010/02/28 01:06:18  ID:XDGpK0KC
1つめ
そういう回路は自分で作る。

2つめ
そのままパラメータを入れ子。
↓文法
http://www.verilog.com/VerilogBNF.html

307
774ワット発電中さん[sage]   投稿日:2010/02/28 18:12:53  ID:7wMeK2ov
>305
> Verilogの文法書を見つけられないのです。
> XilinxのXSTガイドは、それほど詳細に書かれてはいないし。
> 半導体研究センター?の本に載っているのでしょうか。

IEEEの規格書を買え。

308
774ワット発電中さん[sage]   投稿日:2010/02/28 18:43:37  ID:6W0LOl+x
>305
「verilog IEEE standard」でググればPDFが見つかる。
Verilog-2001の規格名は、IEEE Std 1364-2001な。

309
774ワット発電中さん[sage]   投稿日:2010/03/02 21:32:25  ID:81+EotMo
>例えばPLLの分周比をスイッチの値によって、コロコロ変えたいのです。
>そんな用例というか需要はないのでしょうか。

alteraもxilinxも上位デバイスでは
そういう機能が付いてるPLLを内蔵してる

おれならマスタークロックは常に最速で
全レジスタにクロックイネーブル付けて
間欠動作させるかな

310
774ワット発電中さん[sage]   投稿日:2010/03/02 23:34:14  ID:4s0jU0sP
>305
AlteraだとStratixII以降であればPLLの設定を変えられるよ。
Megawizardでそういうのがあった。
altpll_reconfigだったかな。
リファレンスデザインや資料もAlteraのサイトにあったよ。

311
774ワット発電中さん[sage]   投稿日:2010/03/03 02:40:11  ID:S3qPzYik
Xilinxだと、Virtex4以上に、DCM_ADV(DCM Advance)に、
DynamicReconfigrationという機能がある。
Spartan3には無いので注意。

312
774ワット発電中さん[sage]   投稿日:2010/03/03 09:03:03  ID:0GsTbo+F
というか分周比をスイッチで切り替えれるようにしたらいいだけでは?

313
774ワット発電中さん[sage]   投稿日:2010/03/03 09:46:42  ID:pfI8X0+V
PLLどうこうじゃなくて、
parameterが静的なものか、
という認識の問題じゃないのか?

314
774ワット発電中さん[sage]   投稿日:2010/03/03 10:03:26  ID:m4y8+OAo
>全レジスタにクロックイネーブル付けて
笑うところ?

315
774ワット発電中さん[sage]   投稿日:2010/03/18 22:01:00  ID:kTupe04I
Spartan3でucfを書いたのに、ちっとも動かない。1日悩んだ。
よく見たら、Spartan3Aのピン配表を見ていた。がっくり。

316
774ワット発電中さん[sage]   投稿日:2010/03/19 17:18:35  ID:WDEVT429
けっきょく >300は、処理系のバグだったということで決着なの?
似たような現象に遭ったから気になっているんだけど。

317
774ワット発電中さん[sage]   投稿日:2010/03/19 19:31:48  ID:qmPDeeK7
仕様だろ?
wireで結んじまったので片方の名前が必要なくなって記載するの止めたってだけの。
シンセサイザに最適化させない程度に変なことしておくと同一と認識されずに残ると。

バグを仕様と言い張った「仕様」じゃなくて、
(賛否はともかく)そういうつもりで作ってるという意味で、仕様。
この程度でごちゃごちゃ言ってたらISEとつきあえないぜ。

318
774ワット発電中さん[sage]   投稿日:2010/03/22 01:02:48  ID:NFd9C7Ol
ISE12.1が5月らしいが一体いつまで俺たちは有料βテスタなんだろう…

319
774ワット発電中さん[sage]   投稿日:2010/03/22 02:36:39  ID:+A1zxxUB
それは次のβテスタ(有料)の始まりですね、わかります

320
774ワット発電中さん[sage]   投稿日:2010/03/22 13:27:08  ID:N+fq4nKl
本屋さんの立ち読みで、自分の隣に立つ人って気になるな。
昨日の夜、名古屋のジュ○ク堂で、HDLの本をみていたオレの横に若者来た。
「おっ、こいつもHDLソフト屋か?」と思いつつ。すると手に取ったのは、リレーシーケンスの本。
「そうか、そうか、制御盤屋か」と思ったら、
次に手に取ったのが、ModelSimの本。さらに次は、SystemVerilogの本。
横の人が気になるオレ。

コメント1件

321
774ワット発電中さん[sage]   投稿日:2010/03/22 21:26:53  ID:AMCLQFZY
>320
RFとかアナログとかメカ・素材系の若手が、
急にロジック系の勉強をするように言われて
右往左往しているような感じだな。

322
774ワット発電中さん[sage]   投稿日:2010/03/24 01:36:43  ID:MAPBp+X4
とある、CPU評価ボードを貰って遊んでるのですが、教えてください。
回路図を見ているとCPUと、USBホストデバイスや、ネットワークデバイスの間に、ザイリンクスのチップが入っています。
これの目的は、デバイスの切り替えなんだろうなと思いますが、
ふと疑問に思いました。

CPUからつながってるデバイスが一個の場合もこのチップは必要なのでしょうか?
タイミングの調整なんかもしてるのでしょうか?
チップのプログラム?もあったので読みましたが、不思議な言語でチンプンカンプンでした。
おそらくVHDLという言語なのかな?と思い、本を購入しようと思いましたが、
書店にはVHDLとverilogHDLという本がありましたが、これは別物でしょうか?

とりとめない質問で申し訳ないですが、
この勉強をしたい場合、なにの本がお勧めなんでしょう?

323
774ワット発電中さん[sage]   投稿日:2010/03/24 01:59:14  ID:8WEw/6W3
盛大な釣りじゃないか?

>CPUからつながってるデバイスが一個の場合もこのチップは必要なのでしょうか?
>タイミングの調整なんかもしてるのでしょうか?
って、そのチップが何をしているかに依るんじゃないか?
中身(プログラム)がわからないと、わかんないよ。


>書店にはVHDLとverilogHDLという本がありましたが、これは別物でしょうか?
言葉がちがうから、もちろん別物じゃないか?

>この勉強をしたい場合、なにの本がお勧めなんでしょう?
みんな「オススメの本ある?」って聞くけど、そんなもん個人の価値観だから、
どれも良いしどれもダメ。本屋さんで、少し読んでみて、簡単そうなやつを1冊だけ買ってくる。
その1冊を何度も何度も読む。そしたら次の本を買ってくる。また何度も何度も読む。
読んでいるうちに必ず中身がわかってくる。本とはそういうものです。

ネットの書込みやホームページのものは、最初はダメね。自分のお金を使って買ってくることに意義がある。

324
774ワット発電中さん[sage]   投稿日:2010/03/24 19:13:32  ID:MJ6yeuam
盛大な釣りか・・・そんな感じだ。
自分でなんとかしようという気が微塵も感じられないw
たぶん、モノにはならない。

> 本屋さんで、少し読んでみて、簡単そうなやつを1冊だけ買ってくる。

一通りのことが書いてある本を、ともかく理解できなくても読み通してから、
紹介のようなのに挑戦する。曖昧な記憶でも、最初の本は使える辞書代わりになる。
英語だの中国語だの、そんなのを辞書から始めるのは無理だけど、こういう言語モノは
そこまで覚える量は多くないから、使える手。

325
774ワット発電中さん[sage]   投稿日:2010/03/24 20:49:05  ID:2dLqAnQb
別にHDLなんてこれといった本買わなくても使えるけどな。
コメント1件

326
774ワット発電中さん[sage]   投稿日:2010/03/25 01:35:33  ID:ZchGoKZs
言語の本っていうよりもっと基礎的な物がを説明してる本の方がよいとおもう


コンピュータアーキテクチャのエッセンス
あたりはどうかな?
俺は買ってないけど

327
774ワット発電中さん[sage]   投稿日:2010/03/25 03:06:12  ID:0diLUS2+
>325
>別にHDLなんてこれといった本買わなくても使えるけどな。
そんなことないだろう。

reg [7:0] data [2:0];

8bitのregを、
3bitで表せる個数、つまり8個の配列を用意、かと思ったら
3個用意する、という意味らしいじゃないか。
そんなこと、なんでわかるんだ?
やっぱり本を見ないとわからんでしょ。

コメント1件

328
774ワット発電中さん[sage]   投稿日:2010/03/25 03:15:14  ID:jsjdnXp4
図書館から本借りれば本買わなくても使えるようになる、って意味なのかしら

>327
2次元配列と思えば、要素数8には見えない。
コメント1件

329
774ワット発電中さん[sage]   投稿日:2010/03/25 12:00:48  ID:6q81LNr+
>328
>2次元配列と思えば、要素数8には見えない。
それはわかるけど、だったら素直に reg [7:0] data [3];
と、書かせれば良いと思う。
あえて[2:0]と書かせる理由がわかんないですよね。


コメント1件

330
774ワット発電中さん[sage]   投稿日:2010/03/25 12:17:45  ID:c7U+ff4q
だったら reg [8] data [3]; ではダメなのか?
reg [7:0] data; は、data を8個用意するだけだし。

とりあえず規格書を読め。

331
774ワット発電中さん[sage]   投稿日:2010/03/25 17:39:52  ID:XS0+Y3Sg
>329
そう言う事じゃなくて、[7:0]って書くと8ビット
使えるように見えるってことじゃね?

VHDLだと(7 downto 0)って書くから明らかに「8個」ってわかるのに。

332
774ワット発電中さん[sage]   投稿日:2010/03/28 04:43:59  ID:QnJXMeAg
HDLスレの先生!これ、あまりのひどさにトラ技スレ手ではに負えません
どうか教育してやってください
今月のトラ技 Vol.4
500 :774ワット発電中さん:2010/03/28(日) 03:01:42 ID:teNl6CtW
//
//    ちょうど 真ん中だね。
//

module TRAGI (
    input wire   reset,   // reset信号
    input wire   clock,   // clock
    input wire [7:0] DIP_SW,   // ボード上のDIP SW
    output reg [7:0] LED     // ボード上のLED
  );

  reg [24:0] count;          // counter
  reg     clock_0.5sec;

  always @ ( negedge reset or posedge clock ) begin
    if( reset == 1'b0 ) begin
      counter <= 0;
      clock_0.5sec <= 0;
    end else begin
      if( counter < 12000000 ) begin
        clock_0.5sec <= 1'b1;
      end else if( counter < 24000000 ) begin
        clock_0.5sec <= 1'b0;
      end else begin
        counter <= 0;
      end
    end
  end

  reg clock_0.5sec_zenkai;
  always @ ( negedge reset or posedge clock ) begin
    if( reset == 1'b0 ) begin
      LED <= 8'b1;
    end else begin
      if( clock_0.5sec_zenkai==1'b0) && (clock_0.5sec==1'b1) ) begin
//       LED <= { LED[6:0], 1'b0 };   //
        LED <= { LED[6:0], LED[7] };  // バーレルshifter
      end
    end    
    clock_0.5sec_zenkai <= clock_0.5sec;
  end
endmodule

333
774ワット発電中さん[sage]   投稿日:2010/03/28 08:43:07  ID:Qwo5C/kf(2)
何やりたいんだろ。
今の記述だと、24Mクロック毎にLEDの点灯位置を変えたいように見えるが。
そもそもcountがcounterになってたり、countのインクリメントがなかったりで
こりゃ動くわけないわな。

reg [24:0] count;
localparam [24:0] INTERVAL = 25'd24000000;

always @(posedge clock or negedge reset)
if (~reset)
  count <= 1'b0;
else if (count == INTERVAL - 1'b1)
  count <= 1'b0;
else
  count <= count + 1'b1;

always @(posedge clock or negedge reset)
if (~reset)
  LED <= 8'b1;
else if (count == INTERVAL - 1'b1)
  LED <= {LED[6:0], LED[7]};
コメント1件

334
774ワット発電中さん[sage]   投稿日:2010/03/28 12:38:36  ID:b5f1HE+k(3)
>333
>localparam [24:0] INTERVAL = 25'd24000000;
localparam って、何でしょうか?
parameter とは、違うのでしょうか?

コメント1件

335
774ワット発電中さん[sage]   投稿日:2010/03/28 12:40:22  ID:b5f1HE+k(3)
あと、こんな書き方できるの?
module TRAGI (
    input wire   reset,   // reset信号
    input wire   clock,   // clock
    input wire [7:0] DIP_SW,   // ボード上のDIP SW
    output reg [7:0] LED     // ボード上のLED
  );

コメント1件

336
774ワット発電中さん[sage]   投稿日:2010/03/28 12:44:09  ID:Qwo5C/kf(2)
>334
基本的には同じ。
parameterの場合、呼び出し側から値を変更できるけど、
localparamの場合は変更できない。違いはそれだけ。
コメント1件

337
774ワット発電中さん[sage]   投稿日:2010/03/28 13:59:12  ID:Z074WhGo
>335
こんなって、どこのことだかわからんが、
特に問題ないだろう。
Verilog2001以降ならだが。
コメント1件

338
774ワット発電中さん[sage]   投稿日:2010/03/28 16:08:25  ID:b5f1HE+k(3)
>336 >337
ありがとう。勉強になりました。


339
774ワット発電中さん[sage]   投稿日:2010/03/31 10:41:38  ID:OTdeLcJh
どうでもいいかもしれんけど
GTKWAVEがじりじりとバージョンを上げている・・・しぶい。

340
774ワット発電中さん[sage]   投稿日:2010/04/01 00:12:55  ID:j/8mflK7
簡単な除算回路を作りたいと思っているのだけれど、引き放し法をどう記述したらいいのか…。
減算(加算)の結果を得るステート、とかシフトして新たに被除数作るステートとか分ければいいのかな。
このあたりのアルゴリズムを記述するスキル磨かないとだめね…。
コメント1件

341
774ワット発電中さん[sage]   投稿日:2010/04/02 10:17:35  ID:/U+FSpOz
大学の教授が研究して考え出した、
理解するのも難儀するアルゴリズムを
回路に実装するのって楽しいですよね。

私の場合は最初はベタ書きでも、無駄な処理サイクルがあっても、
とりあえずsim結果が期待値一致するところまで進めます。
その後の最適化は・・・無能なので・・・

342
774ワット発電中さん[sage]   投稿日:2010/04/02 10:37:09  ID:Nuu0KjCE
作る予定の回路を人に伝えるためのスキルも必要・・・

ソフトウェアと比べて歴史は深いけどこの辺は浅い気がする。

343
774ワット発電中さん[sage]   投稿日:2010/04/02 11:06:37  ID:JnWOFSK/
>340
タイガー計算機(機械式)割り算の方法の解説とか探してみれば?
カウンターオブジェクトと必要なメソッドがわかるぞ(w

あとは2進法に置き換えて実装するだけ。アルゴリズム最適化についてはシラン。
コメント1件

344
774ワット発電中さん[sage]   投稿日:2010/04/02 11:37:56  ID:VV2Fz5AI
>340
http://www.cqpub.co.jp/hanbai/books/36/36171.htm
わりとそのまんまな本だが、これではいかんの?

タイトルのマニアックぶりでどん引きしかけるが
中身は普通に回路への変換テク上級編だと思う。

コメント1件

345
774ワット発電中さん[sage]   投稿日:2010/04/04 00:45:17  ID:EIE+GYZh
>343
なるほど、検索かけたら出てきた。見てみようありがとありがと。


>344
よし買ってきた。
ホスト規制かかっててレスポンス遅れたけどこの本いいね。
タイトルの胡散臭い感じがたまらんです。ありがとありがと。

346
774ワット発電中さん[sage]   投稿日:2010/04/19 12:00:19  ID:Rtt6NDOz
module xxx ();
  always @ ( ) begin
  end
endmodule

347
774ワット発電中さん[sage]   投稿日:2010/04/23 12:28:50  ID:wqQkubA2
GTKWaveってcygwin上でもbuildとINSTALLできるんかな。
gcc4.0になったせいで、コンパイルが通らないっぽいけど。

348
774ワット発電中さん[sage]   投稿日:2010/04/29 07:06:43  ID:Rs/4qSRr
シミュレータモドキ作ってみたが、興味ある人なんて居るかな?
verilogをはしょったような言語(自分で考案した)で、
C言語のソースを吐き出してくれるのだが。

一応、VCDファイルで波形確認が出来る。

349
774ワット発電中さん[sage]   投稿日:2010/05/03 22:21:01  ID:Dp1wNlA1
デバッガー募集のお知らせですか?

350
774ワット発電中さん[sage]   投稿日:2010/05/23 14:43:09  ID:ZN4dh6mZ
最近スレ荒れないな。おもしろくない。

351
774ワット発電中さん[ssage]   投稿日:2010/05/25 20:40:17  ID:lpM5NbCm
規制まだ解けてないかな?

352
774ワット発電中さん[sage]   投稿日:2010/06/01 00:59:07  ID:8XcplhZn
電子産業衰退で書き込み数減少だな

353
774ワット発電中さん[rtc_tst]   投稿日:2010/06/02 08:42:55  ID:a1IDKALh(2)
作ったツールうpしてみた。

http://www.dotup.org/uploda/www.dotup.org932055.exe.html

DL用パスワード:1234
解凍用パスワード:mail欄

実行は、解凍後に./run
cygwin上でリンクしたので、cygwin以外で使えるかは不明

354
774ワット発電中さん[sage]   投稿日:2010/06/02 15:20:09  ID:ynEV0bNy
2chにURL貼られたバイナリなんか実行できるわけない
ソース出せ

355
774ワット発電中さん[rtc_tst]   投稿日:2010/06/02 21:02:17  ID:a1IDKALh(2)
http://www.dotup.org/uploda/www.dotup.org933210.gz.html

んじゃ、アタッシュケースも削って、アセンブリソースetcに改変。
DL-key は1234

tgzが使えんので .tar.gzにしたが、なぜか.gzでDLされる。
関係無しに.tar xvfz fuile.gzで解凍できる

356
774ワット発電中さん[sage]   投稿日:2010/06/03 00:36:21  ID:mDJqRX+k
それ、どんなツール?

357
774ワット発電中さん[sage]   投稿日:2010/06/03 01:05:43  ID:69E6Vl8T
教えてください
ISE + Verilogで、シリアルDAの駆動プログラムを作っています。

16bit,12bit,10bitとシリーズ化されたDAコンバータICで、12bitのものを
駆動しようとしています。送信bit数の共通化のため、
上位4bitは常時'0'で送りなさい、となっています。
ですので、reg [15:0] data; として変数を宣言して、送信します。
ちゃんと実機で動作はするのですが、
ISEは、変化しない上位4bitを見つけては、Warningを出します。
bit16〜bit12まで4bitあるので、ご丁寧に、4回も同じWarningを出してくれます。

そこで質問なのですが、このWarningを取るためには、どのようにすれば良いのでしょうか。
reg [11:0] data; として、bit16〜bit12は、処理上でゼロを送出するのでしょうか。
そんなもん、ほっときゃ大丈夫、という話もあると思いますが、
プロセスウインドウにWarningの△マークが付くのがイヤで、全部緑の○にしたいのです。
よろしくお願いします。


コメント2件

358
774ワット発電中さん[rtc_tst]   投稿日:2010/06/03 06:17:18  ID:CT09VwSu
verilogの記述次第でどういうwarningが出るかが変わる
シリアル変換している所周りをちゃんと書かないと分からん

359
774ワット発電中さん[sage]   投稿日:2010/06/03 21:04:16  ID:HdtVpFyp
>357
data[15:12]が、4'b0000に固定されているから、警告が出る。

360
774ワット発電中さん[sage]   投稿日:2010/06/03 21:35:46  ID:zGobx6n2
reg data_reg[11:0];
assign data = {4'b0000, data_reg};
ってやればWarningとれるかも?

あと、XSTの設定で、そのWarning出さないようにできないのかなあ。

361
774ワット発電中さん[sage]   投稿日:2010/06/03 21:44:25  ID:eRkrPEJT
Warningなんて気にしてたらやってられないと思うんだが。
というかWarningが一つも出ないでコンパイル通った事(書き込みまで)のある奴いるの?

362
774ワット発電中さん[sage]   投稿日:2010/06/03 23:14:49  ID:Js3VkDtD
>357
仕事してるとこの手の強迫神経症クンが一番たちが悪い

363
774ワット発電中さん[sage]   投稿日:2010/06/04 01:04:13  ID:gx2OSBRm
理由付けの出来るウォーニングはスルーすべき。

364
774ワット発電中さん[sage]   投稿日:2010/06/04 07:11:00  ID:g8y1YUD2
ライブラリIP使うだけでWarning出るしなあ。
無視していいのは無視すべき。

365
774ワット発電中さん[sage]   投稿日:2010/06/04 07:34:44  ID:Vs3oFJNv
無視してるとどんどん増えて、大切なメッセージを読みこぼす事がありそうなので極力つぶしてる。
コメント1件

366
774ワット発電中さん[rtc_tst]   投稿日:2010/06/04 09:40:35  ID:EvspQzWb
>365
ありがち。
C言語でもgccの-Wallでワーニングでないのを基本にしてる。

リファレンスに用意されたプログラムが変数の初期化しないで通るループあって、
解析に手間がかかった経験あり。
渡した相手に突っ込んだら、とぼけやがったし、次にそういうのが無い様に要求したら
逃げやがった。

そういう相手と仕事していると、仕事の手間ばかりが増えて大変です。(涙)
コメント1件

367
774ワット発電中さん[sage]   投稿日:2010/06/04 12:33:38  ID:ImM0SAWn
細かいことはわからんのですが、黄△マークが出ているのが、とにかくイヤ。
全部緑○チェックマークにしたいです。
「Generate programming file」意外では、最近お目にかかったことがない。

ISEのverが上がるだけで△が出るし。もうXイヤ。Aに乗り換えようかな。


368
774ワット発電中さん[sage]   投稿日:2010/06/05 01:15:51  ID:3ws/ruUv
みんなISEのバージョンはいくつでやってる?
俺はこの間まで9.2だった。やっと10.1にしたところだ。
12.1でやってる人、いるのかなぁ。

369
774ワット発電中さん[sage]   投稿日:2010/06/05 02:29:49  ID:lDo7WYiG
メインは11、ノートに12が入れてある

370
774ワット発電中さん[sage]   投稿日:2010/06/05 17:14:26  ID:t9UfmR6F
先日10から11に変更したら、操作がゴロッと変わって戸惑ってる中。
Plan aheadでI/Oピン制約するとき、
1ピンずつ「Wクリック→ピンNo入力→Applyボタン」を繰り返さないといけない。
PACEのように表計算っぽく連続して入力したいのに、疲れる。
電圧の同じね。全部LVCMOS3.3Vにしたいのに、デフォルトが2.5Vになってる。
どこかに設定がないかと思うんだけど。使いにくくなった。



371
774ワット発電中さん[sage]   投稿日:2010/06/05 19:19:02  ID:dzG5dmJ2
1個コピー>ペースト先複数選択>ペースト
で、コピペできたと思う。
コメント1件

372
774ワット発電中さん[sage]   投稿日:2010/06/06 18:28:54  ID:1QJ/VdhF
>371
ありがとうございます。
>1個コピー>ペースト先複数選択>ペースト
この「1個」というのは、何を指すのでしょうか? 

PlanAheadの、
・画面の下部の表計算っぽい表示のところでは、「1個」選択仕様と思っても「1行」単位でしか選択出来ません。
・画面左中の「PackagePinProperty」では、表形式の表示を触ることすらできないのですが、
どうでしょうか?

373
774ワット発電中さん[]   投稿日:2010/06/07 13:42:42  ID:OPCH6Ee7
>366

>ワーニングでないのを基本にしてる。

鰐がどーしたって?

374
イザベラ*アイリス[]   投稿日:2010/06/07 18:08:21  ID:Oip0qjpn
****************************
****************************
****************************
http://sakutuu.ddo.jp/sakura2/sanka.asp
さくら通信で俺は名古屋の人と交渉する
情報を無料であげよう
しかし私は夜の6時から11時の間だ
ほぼ毎日出現している
私ができるのは

無線と増幅とCPUとVHDLなどのデジタル工学だ
分かりやすく簡単に説明する
****************************
****************************
****************************

375
774ワット発電中さん[sage]   投稿日:2010/06/08 16:59:32  ID:D2qoaruY
↑ 仕事が無くなって新しい取引先でも探しているの

376
sage[]   投稿日:2010/06/11 13:18:51  ID:QdBkcztn
そういえばVerilogの設計のことをプログラムっていうんだっけ?
コメント2件

377
774ワット発電中さん[sage]   投稿日:2010/06/11 22:01:30  ID:ottgvxbm
>376
普通は言わないと思います。

378
774ワット発電中さん[sage]   投稿日:2010/06/11 22:15:46  ID:pkFan213
>376
ここ↓で議論されて、HDLはソフトウェアと決まっています。
【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel 13-

379
774ワット発電中さん[sage]   投稿日:2010/06/12 00:32:28  ID:BJ7d1jHV
どう見てもハードだという結論だけどな。
ソフトと言ってる奴はただ煽ってるだけじゃん。

380
774ワット発電中さん[sage]   投稿日:2010/06/12 05:21:49  ID:xGRkhrM6
どうみてもソフトだと言う結論だけどな。
ハードと言ってる奴は無知なだけじゃん。

381
774ワット発電中さん[sage]   投稿日:2010/06/12 13:11:36  ID:i3LndQo6
回路図は絵画、実際の電子回路は彫刻だから、デジタル回路は美術の括りだな。
実際、アートワークっていうしな。

言語化できたら、ハードウェアもソフトウェアとして扱えるわけだ。
まあ、本来のハードウェアって、ヤカンとかフライパンとかだからな。

382
774ワット発電中さん[sage]   投稿日:2010/06/12 13:26:58  ID:bov2q0KF
HDLは、ソフトウェアです。
電源電圧変動も、環境温度も、ノイズも関係のない、クリーンな世界で
プログラム記述次第でなんとでもなる、
これをソフトウェアと言わず何と言う?

チームで仕事してるときに必ず言う。
「えっ、パターンミス? 勘弁してよぉ○○ちゃ〜ん」

オシロもロジアナもがあるんだから、
ハード設計者なら自分で信号追って解決して見せろよ。

383
774ワット発電中さん[sage]   投稿日:2010/06/12 13:43:51  ID:QNU9nVZo
HDL屋さんでも内部の遅延(タイミング)設計くらいはするんじゃないの?
それとも実チップにフィティングとかしない人もいるのかな。
うちんとこは基板に実装して動かすまでするけど

384
774ワット発電中さん[rtc_tst]   投稿日:2010/06/12 14:51:28  ID:PgkH9tws
コンパイル結果の確認ぐらいするだろ
DCでやるか、FPGAにするかは別にして

バグ取り前に、ある程度のあたりを付けるため、
一発だけコンパイルかけるとかはやるけどね、普通。

チームリーダのやり方次第ではあるが

385
774ワット発電中さん[sage]   投稿日:2010/06/12 14:56:45  ID:WzPm5sgv(2)
HDLでシミュレーションした結果、ロジック的な誤りは無いので、
電気的な要因を探って、電源の問題を見つけたり、
やはり、HDLでシミュレーションした結果、ロジック的な誤りが無く、
ファームの誤りである事を見つけたりした俺は、
ソフト屋なのかハード屋なのかどっちでしょうか?

386
774ワット発電中さん[]   投稿日:2010/06/12 16:36:44  ID:NAUEMUM0
@Vengineer

387
774ワット発電中さん[sage]   投稿日:2010/06/12 16:56:15  ID:ZmjwMPLF
デバグはやれる人がやるだけだろう。
うちは回路設計(ボード)とかファームもやる人がRTLもやるから、
そのソフト屋ハード屋という区別はないな。
ASICで100人超の大規模設計やってる人は、
RTLで閉じるかもしれない。
そういうのと小規模FPGAと比べてもしょうがないだろう。
そもそも実機とか無いし。
コメント1件

388
774ワット発電中さん[sage]   投稿日:2010/06/12 20:53:34  ID:WzPm5sgv(2)
>387
なるほど。
ちなみに、RTL設計と実機デバッグしていたのはASICのごく一部だった。

389
774ワット発電中さん[]   投稿日:2010/06/13 16:02:11  ID:8dpgnMpm
ソフトだ、ハードだって話、もういいよ。
HDL書きはソフト屋に決まっているから。

コメント1件

390
774ワット発電中さん[sage]   投稿日:2010/06/13 23:09:38  ID:3dXCQ4Db
荒らそうと必死な馬鹿は市ね。

391
774ワット発電中さん[sage]   投稿日:2010/06/14 07:04:19  ID:qFnRce2G
HDL書く奴はソフト屋って言われて不名誉なのかな。
どうみてもハード屋とは言えないし、別に問題じゃ無いと思うが。

392
774ワット発電中さん[sage]   投稿日:2010/06/14 07:11:48  ID:EbN2me3U
また嵐がきたか
コメント1件

393
774ワット発電中さん[sage]   投稿日:2010/06/14 16:27:29  ID:QsaJWLE+
>392
今すごい勢いでテレビにも雑誌にもバンバン出てるよね!

394
774ワット発電中さん[sage]   投稿日:2010/06/14 20:07:06  ID:BMavy8N4
万博のコンサート、中止になっちゃったね。
コメント1件

395
2SC1815Y[sage]   投稿日:2010/06/15 00:35:07  ID:FVx168LB
>394
それはSMAPでしょ

396
774ワット発電中さん[sage]   投稿日:2010/06/15 00:39:10  ID:ZMzqUIMZ
あらら、あっちのスレでフルボッコにされた恨みをこっちのスレでぶつけてるのか。
可哀そうな奴。

397
774ワット発電中さん[]   投稿日:2010/06/15 10:30:14  ID:nHiSV1aX
round_前半_|~|_|~|_|~|_|~|_|~・・・・
round_後半___|~|_|~|_|~|_|~|_・・・・

こんな信号を作ろうと思ってるんですが
良い信号名ありませんかね?

俺ならこう付けるってのを教えて下さい。
コメント1件

398
のうし[sage]   投稿日:2010/06/15 14:38:08  ID:Ei3v2OT5
信号名は波形じゃなく機能や用途で付けようぜ
コメント1件

399
774ワット発電中さん[sage]   投稿日:2010/06/15 14:41:41  ID:lj5Xj89R
round_zen
round_kou

400
774ワット発電中さん[]   投稿日:2010/06/15 19:38:33  ID:hWgSnxqG(3)
コンパイルするとインプットが使われていないので消します、といわれます。

なにがいけないのでしょうか。

port(
S1:in std_logic;
T1:in std_logic;
D1:out std_logic;
)

...

signal X1:std_logic;

process(S1,X1)
begin
if(S1='1' and 1='1') then
X1<=X1+'1';
end if;
end process;
コメント1件

401
774ワット発電中さん[sage]   投稿日:2010/06/15 19:40:26  ID:hWgSnxqG(3)
>400

コンパイルするとインプットが使われていないので消します、といわれます。

なにがいけないのでしょうか。

port(
S1:in std_logic;
T1:in std_logic;
D1:out std_logic);
...
signal X1:std_logic;

process(S1,X1)
begin
if(S1='1' and T1='1' and S1'event) then
X1<=X1+'1';
end if;
end process;
コメント1件

402
774ワット発電中さん[sage]   投稿日:2010/06/15 20:09:08  ID:nAL9QZXI
センシティビティリスト
コメント1件

403
774ワット発電中さん[sage]   投稿日:2010/06/15 20:13:11  ID:hWgSnxqG(3)
>402
レスありがとうございます。
process(S1,T1,X1)でしょうか??

404
774ワット発電中さん[sage]   投稿日:2010/06/15 23:11:59  ID:xiN0XHUL
X1はセンシティビティリストに入れちゃダメでしょ
コメント1件

405
774ワット発電中さん[sage]   投稿日:2010/06/16 00:14:28  ID:8JX/1jzm
なんでですか?

406
774ワット発電中さん[sage]   投稿日:2010/06/16 01:17:32  ID:teIWPiMt(2)
D1をドライブしてる人は?

407
2SC1815Y[sage]   投稿日:2010/06/16 01:20:53  ID:jqCV4qtR
port(
  S1:in std_logic;
  T1:in std_logic;
  D1:out std_logic
);
  ...
  signal X1:std_logic;

  process(S1,X1) begin
    if(S1='1' and T1='1' and S1'event) then
      X1<=X1+'1';
    end if;
  end process;

Verilogしかわからないオレがエスパーしてみる。
X1が変化したら中身を実施するよ!と言っている中に、X1がいるのって
おかしくないか?

関係ないけど、D1はどこにあるの?

コメント1件

408
774ワット発電中さん[sage]   投稿日:2010/06/16 08:48:38  ID:yuk/2ce4(2)
>404-407
ありがとうございます。

今日process(S1)とprocess(S1,T1)で試してきます。
中身が変化したら実行という意味ではprocess(S1)でいいと思ったんですが、
先生がX1もいれると言っていたような気がしていました。

409
774ワット発電中さん[sage]   投稿日:2010/06/16 08:53:05  ID:yuk/2ce4(2)
>407
すいません。
X1はstd_logic_vector(3 downto 0);で
if(X1="0000")then
D1<='1';
というような感じになっています。

もしかしてこれがおなじprocessだったらprocess(S1,X1)で
別プロセスだったらprocess(S1)とprocess(X1)ということでしょうか。
コメント3件

410
774ワット発電中さん[sage]   投稿日:2010/06/16 08:58:18  ID:urhT5tSc
何かすごい誤解があるようだから、コードを勝手に切りだすのではなくて
全コードを貼るなりうぷするなりしてくれ
コメント1件

411
774ワット発電中さん[sage]   投稿日:2010/06/16 10:16:54  ID:wwDeAD+i
>409
基本が判っていないみたいだね。
S1がクロックでステート動作したいのであればX1は要らない、というかあったらエラーでない?

412
774ワット発電中さん[]   投稿日:2010/06/16 10:25:07  ID:YvhxCa8n
学校の宿題関係なら、なぜ先生に聞かないんだ?

その理由を教えてくれ

413
774ワット発電中さん[sage]   投稿日:2010/06/16 10:46:33  ID:teIWPiMt(2)
悪いこと言わない、「わからない」とちゃんと言ってもう一度先生に教えてもらった方が良い。
この問題を解くことが目的ではなく、あなたがちゃんと理解することが目的だから。

414
774ワット発電中さん[sage]   投稿日:2010/06/16 13:01:28  ID:8phVUdbP
>397
round_pos
round_neg
かなぁ。エッジと間違えそうだけど。

か、round_first round_second .....

はいはい亀レス
コメント1件

415
774ワット発電中さん[sage]   投稿日:2010/06/16 13:44:25  ID:lfxrv5WP
>398-399
>414
ありがとう。参考にします。

>波形じゃなく機能や用途で付けようぜ
おっしゃる通り機能通りの名前でございます。
前半とか後半の英語をどうしようかと。

416
774ワット発電中さん[sage]   投稿日:2010/06/16 15:58:42  ID:rJKyjnlK
後半のことを英語でsecond halfと言うらしい。

417
774ワット発電中さん[sage]   投稿日:2010/06/16 19:40:41  ID:179z8tFx
>409
スレ無駄に消費するから情報の小出しはするな。
 問題部分を単純化して短くして全文貼り付けるか、
 長ければどこかにアップロードせよ。
 コンパイルとは何か?(合成?シミュレータにかけるためのコンパイル?)
 ツールは何か?
 正確なエラーメッセージは何か?
 やりたいことは何なのか?

"インプットが使われていないので消します"
基本的に入力信号の変化が出力に現れない場合、
最適化されて回路そのものが出来ない。
>401
の例だと、X1の変化が何らかの出力信号として外に出ていなければ、
そういった内容のメッセージが出るかもしれない。
>409
これによるとX1の変化によって外部出力のD1も変化するようだから、
今ある情報では見当がつかない。

>if(S1='1' and T1='1' and S1'event) then
上記は次のどちらとして解釈されるか言語上は未定義。
1.
if (T1='1')then
 if(S1='1' and S1'event) then
2.
if(S1='1' and S1'event) then
 if (T1='1')then
出来上がる回路が違うのでそのような記述をしてはいけない。
コメント1件

418
774ワット発電中さん[sage]   投稿日:2010/06/17 07:18:16  ID:1B27sq5u(2)
>417
>410-413
すごく分かりやすい説明をありがとうございます。m(_ _)m
先生の説明はまったくわからないので途中で聞くのを止めました;;
今日もういちど試して来ます。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity VHDLQ265 is
port(sw1,dip1:in std_logic;--sw1(CLK),dip1(on/off)
tr1,tr2:out std_logic--;tr1(16^0の桁),tr2(16^1の桁)
a1,b1,c1,d1,e1,f1,g1:out std_logic);--デジタル表示

end VHDLQ265;

architecture Behavioral of VHDLQ265 is
signal X1:std_logic_vector(3 downto 0);
signal X2:std_logic_vector(3 downto 0);

begin
X1<="0000";
X2<="0000";

process(sw1)
begin
if(dip1='1' and sw1='1' and sw1'event) then
if(X1="1111") then
X2<=X2+'1';
end if;
X1<=X1+'1';
end if;
end process;

process(X1)
begin
tr1<='0';
tr2<='1';

if(X1="0000") then--dip1='0' and dip2='0' and dip3='0' and dip4='0') then
a1<='0';
b1<='0';
c1<='0';
d1<='0';
e1<='0';
f1<='0';
g1<='1';
elsif(X1="0001") then--dip1='0' and dip2='0' and dip3='0' and dip4='1') then
中略
process(X2)
中略
end if;
end process;

end Behavioral;

コメント3件

419
774ワット発電中さん[sage]   投稿日:2010/06/17 07:23:29  ID:1B27sq5u(2)
>418
xilink社のツールでコンパイルすると
synthesis
translate
Fit
generate program
のうちFitだけwarningがでます。
WARNING:Cpld:1007 - Removing unused input(s) 'dip1'. The input(s) are unused
after optimization. Please verify functionality via simulation.

WARNING:Cpld:1007 - Removing unused input(s) 'sw1'. The input(s) are unused
after optimization. Please verify functionality via simulation.

WARNING:Cpld:1006 - Design 'vhdlq265' has no inputs.

if(dip1='1' and sw1='1' and sw1'event) then
if(X1="1111") then
X2<=X2+'1';
end if;
X1<=X1+'1';
else
X1<=X1+'0';--<==この一文をいれて試してきます。
end if;

m(_ _)m

420
774ワット発電中さん[sage]   投稿日:2010/06/17 07:44:32  ID:Nb480Pcu
コンパイルよりもまずはSimulationしてみるべき。
その記述だとX1とX2が常時"0000"になるんじゃね?

コメント2件

421
774ワット発電中さん[sage]   投稿日:2010/06/17 09:14:23  ID:MJjvddtV
>418
VHDLはすべてのロジックを記述するのがお約束。
elseは必ず書きましょう。

process(sw1)
begin
if(dip1='1' and sw1='1' and sw1'event) then
if(X1="1111") then
X2<=X2+'1';
else
X2<=X2;
end if;
X1<=X1+'1';
else
X1<=X1;
X2<=X2;
end if;
end process;

422
774ワット発電中さん[sage]   投稿日:2010/06/17 16:36:31  ID:bsJQ9hH2
>420
教授の中に
4年の時しかVerilog使わせないのにシミュレーションさせても仕方ない
とかいう理由でFPGAでの動作検証しかさせてない人を思い出した。

ひょっとするとこのVHDLの学生さんはそういう人の下かもしれない。

そういやVHDLのシミュレーションとか忘れたなぁ・・・
コメント1件

423
774ワット発電中さん[sage]   投稿日:2010/06/17 21:29:53  ID:fq7Awvyp
>422
マスクを作る前に、シミュレーションで、ある程度の検証出来るのが
HDLを使うメリットの一つだけど、それを飛ばしちゃよろしくないな。

FPGAでやるのも悪くは無いけど、実際のチップとは違う部分があるから、
できれば、アナログセルとかメモリセルのモデルを組み込んだシミュレーション技法まで、
今の教育課程では入れた方が良いと思う。

424
774ワット発電中さん[rtc_tst]   投稿日:2010/06/17 22:46:51  ID:W2JSwwHm
アナログセルの挙動は、馬鹿には理解出来ないだろ。

賢くても、結構経験が必要だろうし。

馬鹿でも分かる内部回路のみにしておくのが有用かな。
コメント1件

425
774ワット発電中さん[sage]   投稿日:2010/06/17 23:21:05  ID:Ey+wtKxc
>418
正直基礎からやり直したほうが・・・
一応エスパーしとく。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity VHDLQ265 is port
  ( sw1,dip1:in std_logic;
    tr1,tr2,a1,b1,c1,d1,e1,f1,g1:out std_logic
  );
end VHDLQ265;
architecture Behavioral of VHDLQ265 is
  signal X:std_logic_vector(7 downto 0);
  signal tr:std_logic_vector(1 downto 0)
  signal dig:std_logic_vector(6 downto 0);
begin
  tr1 <= tr(0); tr2 <= tr(1);
  a1 <= dig(0); b1 <= dig(1); c1 <= dig(2); -- 略
  tr <= "00"; -- trのタイミングを何で作るのか想像できん。
  process (sw1) begin
    if(sw1='1' and sw1'event) then -- チャタリング心配
      if (dip1='0') then X <= (others => '0');
      else X <= X +1;
      end if;
    end if;
  end process;
  process(tr,X)
    variable a : integer;
  begin
    if (tr="01") then a := conv_integer(X(3 downto 0));
    else a := conv_integer(X(7 downto 4));
    end if;
    case(a)is
    when 0 => dig <= "0000001";
    when 1 => dig <= 略;
    when others => dig <= 略;
    end case;
  end process;
end Behavioral;

426
774ワット発電中さん[sage]   投稿日:2010/06/18 18:55:47  ID:sLnApqv1
>420-422
>424-425
ありがとうございます。elseつけてできました。
数字を表示するパーツに電源を供給するためにトランジスタ(tr)をLowにする必要がありました。
チャタリングしました;;
caseの方が並列に処理できるので良いのですね。

みなさんに授業してもらったほうが遥かに分かりやすかったです。
ありがとうございましたm(_ _)m

コメント1件

427
774ワット発電中さん[sage]   投稿日:2010/06/18 19:14:49  ID:VbfbXzIN
> caseの方が並列に処理できるので良いのですね。
これってつまり、>389ってこと?


428
774ワット発電中さん[sage]   投稿日:2010/06/18 23:05:28  ID:4Hbop9m5
>426
教える側が糞だとしても、分からないことを人のせいにするな。
VHDLに関する情報はあちこちに溢れている。
君が分からなくとも教える側は痛くもかゆくも無い。
自ら調べる癖を付けよ。

429
774ワット発電中さん[sage]   投稿日:2010/06/19 03:28:04  ID:WzZOI2QE
教えてください。
XilinxのISEで、ver10の時に問題なく通ったプロジェクトが、
ver11でやってみると、いきなりSyntaxエラーが出てしまいます。
言語はVerilogです。
エラーの内容は、「変数の2重定義」だとか「`ABC」が定義されていないとかです。

top.vで、AAA.v BBB.v CCC.vをincludeする要に記述してあります。
module top (...)
  wire W1;
  reg r1;
   :
   :
  `include "AAA.v"
  `include "BBB.v"
  `include "CCC.v"
endmodule

エラーの内容は、AAA.vやBBB.vを単体で文法チェックしたようなエラーで、
「AAA.vの中で、W1が定義されていない」とか
「BBB.vの中で、r1が定義されていない」とかです。
なんで? top.vの最初に宣言してあるじゃん!!!と思うのですが。

僕が何かおかしな勘違いをしているでしょうか?
宜しくお願いします。

コメント4件

430
774ワット発電中さん[sage]   投稿日:2010/06/19 05:35:32  ID:5YYuW04f
>429
プロジェクトへのファイルの登録順じゃない?

431
774ワット発電中さん[sage]   投稿日:2010/06/20 19:21:45  ID:2LU/1W8a
>caseの方が並列に処理できるので良いのですね。

コメント1件

432
774ワット発電中さん[sage]   投稿日:2010/06/20 20:00:15  ID:sqbfH90G
>429
もしAAA.vとかBBB.vをプロジェクトに登録してるなら
外してtop.vだけにしてみるとか?

あと、単独でコンパイルできないファイルの拡張子は
他と区別するためにvhのほうがいい気がする。
まあ、好みは人それぞれだろうけど。

433
774ワット発電中さん[sage]   投稿日:2010/06/21 13:42:23  ID:djdnVH8p
>429
include文の中に回路記述はあんまり書かないかなぁ。
defineとかparameterぐらいしか

エラー文から推測してるけど、そういうことしてなかったらごめん。

434
774ワット発電中さん[sage]   投稿日:2010/06/21 19:25:03  ID:Ud0BHt//
>429
端折って書いてるから分からんが、トップはゲートレベル記述?
ならincludeじゃなく
マズタ名 インスタンス名(接続)と書けば問題ないのでは?

435
774ワット発電中さん[sage]   投稿日:2010/06/21 22:32:13  ID:vj+GHTqt
超能力を求められる質問が多いな。
メーリングリストの例だが、掲示板でも共通すると思うので、読んで損は無い。
http://www.hyuki.com/writing/techask.html
コメント1件

436
774ワット発電中さん[sage]   投稿日:2010/06/22 10:01:02  ID:re71mwIF
>435
↑みたいに書いたら、「3行でまとめろ」って言われるぜ


437
774ワット発電中さん[sage]   投稿日:2010/06/22 22:14:33  ID:9xMlea0R(2)

verilogで、C言語のプロトタイプ宣言のような記述は出来ないでしょうか?
「このインスタンス名は今回初めて登場だけど、
 あとで出てくるから、この場は見逃してね」
みたいな。

438
774ワット発電中さん[sage]   投稿日:2010/06/22 23:14:43  ID:9xMlea0R(2)
以前のverのISEで作成したucfファイルを ISE11でインプリメントすると、
エラーがメチャメチャ出ます。PaceのucfはPlanAheadだと理解できないのでしょうか?
変換するツールとかあるでしょうか? みなさん、どうしていますか

439
774ワット発電中さん[sage]   投稿日:2010/06/22 23:51:12  ID:zXeddzm5
>431
普通に出来るだろ。
てかプロトタイプ宣言に代わるものすらいらない。
Cに置き換えて考えるのはやめた方がいい、マイコンの記述言語とHDLは根本的に違うから。

440
774ワット発電中さん[sage]   投稿日:2010/06/23 00:10:37  ID:n0cfqGfg
SystemCでもやってろ、ってことですね、SystemCについて詳しく知らんけど。>Cとは違うんだよ、Cとは!

441
774ワット発電中さん[sage]   投稿日:2010/06/23 00:16:26  ID:Dg056Gnp
Cを知ってるからSystemCならHDLが書けるぜと思ってる馬鹿はそれでいいんじゃね?
論理合成で挫折するのが目に見えてるけどなw

442
774ワット発電中さん[sage]   投稿日:2010/06/23 01:33:13  ID:454FGRLk
Cのフロントエンドプロセッサを噛ませば、マクロレベルでの細工はできそうだけどな。
まあ、Cのじゃなくても、テキスト編集系のスクリプト言語処理系でもいいけど。
verilogなら`ifdefがあるから、条件コンパイルもできるから、そんな必要性はない気もするけど。
やればできるけど、そんな必要性を感じるほどHDL書いてないしなあ。

443
774ワット発電中さん[sage]   投稿日:2010/06/24 20:15:52  ID:hO7hPwbC
C言語で書いたアルゴリズムをVHDL化したいのですが、
まずは浮動小数点数で記述しているところを、固定小数点で書き直して、
必要なビット幅を詰めていきたいと思っています。
そこで、固定小数点数演算の考え方や注意すべき点などを整理したく、
参考になる書籍やWebサイトをご存知でしたら教えてください。
よろしくお願いします。m(_ _)m

444
774ワット発電中さん[sage]   投稿日:2010/06/24 20:44:46  ID:U/n+lb70
整数演算からやり直しませう
コメント1件

445
774ワット発電中さん[sage]   投稿日:2010/06/24 23:17:24  ID:NZKGCQ1v
固定小数点は、パーセントとかPPMで計算するのと同じですよ。
他の系とのインターフェース(パーセントなら系に入る時は100倍し、系を出る時は100で割る)さえ気を使えばよくて、
系の中では整数演算そのものですよ。
扱う数値範囲に応じて、小数点の位置を変えてみたりするとかですかね。

446
443[sage]   投稿日:2010/06/25 00:31:43  ID:uABfpEqy
>444-445
ありがとうございます!
本質的には整数演算、ということなんですね。
あとは計算過程でのオーバーフロー、アンダーフロー、小数点位置の調整(常にQ何表記なのか意識)に
注意といったところでしょうか。

C言語ソース上での固定小数点化をスムーズに行うため、
固定小数点数クラス型を作ろうかと画策中です。
コンストラクタでビット幅、小数点位置を指定するようなもので、
=、*、/といった演算子はオーバーロードすることで、固定小数点化ならではの処理をクラス内に
隠蔽してやろうという魂胆です。
このようなクラス型を用いれば、既存のCソースのfloat型宣言記述を「CFixed」みたいに書き換えるだけで、
固定小数点化の効果を検証できるのではと思っています。
型宣言部以降の演算部分は書き換えることがないので、間違いが起こりませんし、
各固定小数点数のビット幅をランタイムで変化させながら効果を検証するといったこともでき、
調整の効率が高まるのではないかと期待しています。

ありがとうございました。
コメント1件

447
774ワット発電中さん[sage]   投稿日:2010/06/25 00:53:16  ID:az8cw8Mz
>446
必要な最大bit数は扱う値の最大値と演算の内容で求め、
そこからどのくらい削るかは仕様から決める、という感じですかね。

自分もそういうクラス作ってます。C++が多いです。
bit精度の検証とか演算回数の計測とか検証用データの作成とかに
使ってます。
コメント1件

448
774ワット発電中さん[sage]   投稿日:2010/06/25 13:15:10  ID:M8ADDY/7
CからRTLをぽいっと出すツールはたけーもんなぁ・・・
動くかどうかわからんし
コメント1件

449
774ワット発電中さん[rtc_tst]   投稿日:2010/06/25 13:38:30  ID:rxDX+Ibh
あまり普通には動かないだろ

450
774ワット発電中さん[sage]   投稿日:2010/06/25 20:14:40  ID:F0yd0Jwy
多分シミレーションは出来ても合成出来ないだろ。

451
774ワット発電中さん[sage]   投稿日:2010/06/25 22:21:06  ID:cp6VFwdJ
「固定小数点数クラス」でググったら
独自実装した話が大量に引っかかる
コメント1件

452
443[sage]   投稿日:2010/06/27 01:12:00  ID:GbRRaOeG
>447
>必要な最大bit数は扱う値の最大値と演算の内容で求め、
>そこからどのくらい削るかは仕様から決める、という感じですかね。
なるほど。
とても参考になりました。
ありがとうございます。

>自分もそういうクラス作ってます。C++が多いです。
おお、クラス作られたんですね!

>bit精度の検証とか演算回数の計測とか
なるほど、クラスにすればそういうことが可能ですね。
こういった機能も取り入れたいです。

>448
3社ほど評価使用しましたが、便利そうでした。
結局、不景気と値段が高いのとで不採用になりましたが・・・
でもVHDLでガリガリ組む経験もしたかったので、別によかったかなと。

>451
ほんとですね。
これは参考になります。
ありがとうございます。

453
774ワット発電中さん[sage]   投稿日:2010/07/05 12:06:19  ID:wN/h3tXV(3)
教えてください。

FPGAで、Verilogで、duty50%の1/3分周器を作りたいと考えています。
普通に考えると、
always@( posedge clock ) begin
  if( count==2 ) begin
    count=0;
  end else begin
    count++;
  end
end
assign out=(count==0)? 1'b1 : 1'b0;
とかになると思うのですが、これだとdutyが1:1になりません。
assign out=(count==1.5)? 1'b1 : 1'b0;
だと50%になりますが、1.5はできないと思います。
どのようにすれば良いでしょうか。

コメント1件

454
774ワット発電中さん[rtc_tst]   投稿日:2010/07/05 12:28:22  ID:C0awEyf4(2)
通常のFFを使う限り、dutyが1:1のを作るのは不可能。

また、クロック目的でassignで生成した出力を使うと
ヒゲが出たりして痛い目にあう。

count[1]が2の時だけ'1'なのでそれを使うのがお勧め。

455
774ワット発電中さん[sage]   投稿日:2010/07/05 13:18:24  ID:wN/h3tXV(3)
ありがとうございます。
やっぱり世辰櫃い任垢茲諭

書き込んでから考えたのですが、
00→01→10→00→・・・を、
000→001→010→011→100→101→000→・・・として、
0,1,2→H、3,4,5→Lで、50%になることがわかりました。
早速やってみたのですが、恥ずかしくて結果が書けません。(悲)


コメント1件

456
774ワット発電中さん[rtc_tst]   投稿日:2010/07/05 13:23:44  ID:C0awEyf4(2)
それは6分周だろ。w

FPGAで禁じ手のRS-FFを使えば50%に近いのを作れるが、
入力クロックのdutyとdelayばらつき次第で微妙に比率が変わる。

6分周でも 1=>6としてMSBを使えばFFからの直接出力が可能となる
コメント1件

457
774ワット発電中さん[sage]   投稿日:2010/07/05 17:34:01  ID:tz6hpByL
>455
PLLかDCM使った方がいい。

458
774ワット発電中さん[sage]   投稿日:2010/07/05 21:45:17  ID:0OaxSJ+W(3)
duty33%とduty66%の信号を交互に出して、
外部回路でローパスかけたら、それっぽくなんないかな?

459
458[sage]   投稿日:2010/07/05 21:52:38  ID:0OaxSJ+W(3)
いまエクセルの罫線で、タイミングチャートかいてみたら、
全然それっぽく無いと分かった。

460
774ワット発電中さん[sage]   投稿日:2010/07/05 22:54:00  ID:0OaxSJ+W(3)
duty33%の3分周信号Aと、
信号Aを半相ずらした(立下りエッジFFで作成)信号Bを作り、
AとBをorして出力するとか。

461
774ワット発電中さん[sage]   投稿日:2010/07/05 23:27:42  ID:J6ZsP2Yi
みんなで意見を出し切った頃に質問者が一言。
「31KHzの信号作りたいだけなんだけどね。」とかないかな?
コメント2件

462
774ワット発電中さん[sage]   投稿日:2010/07/05 23:48:14  ID:wN/h3tXV(3)
みなさん、ありがとうございます。
現在の周波数のままで、「1/奇数」のduty50%は、難しいことがわかりました。
DCMのFXで2倍して、FFで1/2がいいみたいですね。が、CPLDにはDCMは無いことも判明。
だるまさん状態です。

みなさん、いろいろと考えてくれて、ありがとうございました。
>461
31kHzだとおいしいことがあります?
僕は、3MHzくらいの周波数でしたが。

コメント2件

463
774ワット発電中さん[rtc_tst]   投稿日:2010/07/06 04:11:25  ID:e/set0Kb
RS-FFを使えばこんなのが出来るが、RSのところだけ外部に出さないと弾かれるかもね。
(デバッグしてないので動きが変かもしれないが)

always@( posedge clock ) begin
  mctr <= {~&(mctr[1:0]),mctr[1]} ; // 3-count
end
always @( negedge clock ) begin
  ctr1 <= mctr==2&b01 ; // half-clk-delay
end
assign ckrst_x = ~({mctr,ctr1}==3'b011 ;
assign ckset_x = ~({mctr,ctr1}==3'b110 ;
// rs-FF
assign rsff_r= ~({rsff_s,ckkrst_x}==2'b11) ;
assign rsff_s= ~({rsff_r,ckset_x}==2'b11) ;

464
774ワット発電中さん[]   投稿日:2010/07/06 10:50:25  ID:+UaWFo9N
>462

>461では無いが

> 僕は、3MHzくらいの周波数でしたが。

21.47727MHz位のクロック使ったら?


465
774ワット発電中さん[sage]   投稿日:2010/07/06 20:07:12  ID:sVq8herg
>456
> FPGAで禁じ手のRS-FFを使えば50%に近いのを作れるが、
> 入力クロックのdutyとdelayばらつき次第で微妙に比率が変わる。
そこまで求めてなさそうな・・・・

コメント1件

466
774ワット発電中さん[sage]   投稿日:2010/07/06 20:11:59  ID:EQblFw0q
何、その禁断の秘術みたいなの!?
何かカッコイイw

467
774ワット発電中さん[sage]   投稿日:2010/07/06 22:18:11  ID:TK73qpJ+(3)
D-FFだけでも出来そうだが。

468
774ワット発電中さん[sage]   投稿日:2010/07/06 23:00:27  ID:uAVXCQY4
>453

always@( posedge clock ) begin
  if( count1==2 ) begin
    a <= '0'
    count1=0;
  end else if( count1==1 ) begin
    a <= '1'
    count1++;
  end else if( count1==0 ) begin
    a <= '0'
    count1++;
  end
end//'a'は2クロック目の立ち上がりのみ1を出力

always@( negedge clock ) begin
  if( count2==2 ) begin
    b <= '1'
    count2=0;
  end else if( count2==1 ) begin
    b <= '0'
    count2++;
  end else if( count2==0 ) begin
    b <= '0'
    count2++;
  end
end//'b'は3クロック目の立下りのみ1を出力

c <= a or b//'c'は「2クロック目の立ち上がり」と「3クロック目の立下り」で'1'

always@( posedge c ) begin
  out <= not out;
end//'c'の立ち上がりでoutを反転

これで1/3になんね?wwwwwwwwwww
コメント1件

469
774ワット発電中さん[sage]   投稿日:2010/07/06 23:05:04  ID:TK73qpJ+(3)
>「1/奇数」のduty50%は、難しいことがわかりました。

1、ポジクロックでカウンター回す。
2、ネガクロックでカウンター回す。
3、ポジ、ネガの立ち上がりエッジをOR取ってそれを1/2分周すれば一応1/奇数のDuty50%
は実現できる。
この時ネガのカウンターは変則にする必要がある。

470
774ワット発電中さん[sage]   投稿日:2010/07/06 23:07:49  ID:TK73qpJ+(3)
あれ、書いてる間にダブったかな?

471
774ワット発電中さん[sage]   投稿日:2010/07/06 23:26:05  ID:hvCn6YM5
>468
verilogよく分からんのだが、
↓これじゃだめなの?
always@( posedge clock ) begin
  if( count==2 ) begin
    count=0;
    a <= '1'
  end else begin
    count++;
    a <= '0'
  end
end
always@( negedge clock ) begin
  b <= a
end
out <= a or b
コメント1件

472
774ワット発電中さん[sage]   投稿日:2010/07/07 00:07:26  ID:n4Xmt9ic
>471うめぇwww

473
774ワット発電中さん[sage]   投稿日:2010/07/08 19:25:29  ID:cRgo3djp
やや感動したので整形しとく

module div3(
CLK,
RST_X,
ENB,
CLK_DIV3_OUT
);

input CLK;
input RST_X;
input ENB;

output CLK_DIV3_OUT;

reg [1:0] Q;
reg [1:0] Q_neg;

wire Q_num2;
wire Q_neg_num2;

always @(posedge CLK or negedge RST_X)
begin
   if(!RST_X)
      Q <= 2'd0;
   else if (ENB)
   begin
      if(Q_num2)
         Q <= 2'd0;
      else
         Q <= Q + 2'd1;
   end
   else
      Q <= Q;
end

always @(negedge CLK or negedge RST_X)
begin
   if(!RST_X)
      Q_neg <= 2'd0;
   else
      Q_neg <= Q;
end

assign Q_num2 = (Q == 2'd2);
assign Q_neg_num2 = (Q_neg == 2'd2);

assign CLK_DIV3_OUT = Q_num2 | Q_neg_num2;

endmodule


・・・空白うまく出てなかったらごめん

474
774ワット発電中さん[]   投稿日:2010/07/08 20:16:33  ID:mUfKUoGV
assign clkx2 = clk ^ !clk;

475
名無しさん@そうだ選挙に行こう[sage]   投稿日:2010/07/10 14:28:03  ID:H/f6/TFn
みんな気にせずnegedge使っているけど、
元のクロックのduty 50%は保証されてるの?
コメント1件

476
名無しさん@そうだ選挙に行こう[sage]   投稿日:2010/07/10 19:50:03  ID:v4NPhpjn
>475
>465

477
名無しさん@そうだ選挙に行こう[sage]   投稿日:2010/07/11 00:51:41  ID:ryXbezxy
PLL通して1/2分周したクロックならDutyは保障されてるけど。

478
名無しさん@そうだ選挙に行こう[sage]   投稿日:2010/07/11 19:06:45  ID:1jnzDgAF
>462

479
774ワット発電中さん[sage]   投稿日:2010/07/14 23:57:49  ID:TDmmEMFY
ステートマシンについての質問です。
ムーア型ステートマシンを記述するときalwaysを3つ使い
状態決定部、状態保持部、制御信号出力部に分ける理由なんですか?
なぜすべてをまとめて1つにalwaysで記述しないほうが良いですか?

480
774ワット発電中さん[sage]   投稿日:2010/07/15 00:41:03  ID:Yy2se1Ad(2)
わかりません

481
774ワット発電中さん[sage]   投稿日:2010/07/15 17:10:07  ID:IgO1J6gJ
>498

じゃ、ミーリーはどう書くの?
コメント1件

482
774ワット発電中さん[sage]   投稿日:2010/07/15 17:20:47  ID:Yy2se1Ad(2)
>481
今度の土日くらいになりそうだよ。

483
774ワット発電中さん[sage]   投稿日:2010/07/17 15:41:19  ID:J1+JNm5o(3)
「組み合わせ回路」と「順序回路」の違いに関してなんですが、
ラッチが付いた回路は組み合わせ回路でしょうか?
だとすれば、フリップフロップが使われる=順序回路という自分の考え方は訂正しないといけません・・・
コメント1件

484
774ワット発電中さん[sage]   投稿日:2010/07/17 15:51:03  ID:ho1SDpvU
ラッチとFFは違う品
コメント1件

485
483[sage]   投稿日:2010/07/17 15:54:01  ID:J1+JNm5o(3)
>484
ありがとうございます。
FFはより原始的な構成要素であって、それの使われ方によって
DFFやラッチ等となる、という印象を持っています。

486
774ワット発電中さん[sage]   投稿日:2010/07/17 16:49:26  ID:HC3/7o4B
>483
フリップフロップが使われる=順序回路
これは「=」ではないよ。
コメント1件

487
774ワット発電中さん[sage]   投稿日:2010/07/17 17:08:21  ID:Rm4tYSlp
同期回路は?
コメント1件

488
483[sage]   投稿日:2010/07/17 17:23:37  ID:J1+JNm5o(3)
>486
やはりそうでしたか。
すっきりしました!

>487
特に何と同期するかを明記しない場合、「クロック信号と」同期する回路を指すと理解しています。

489
774ワット発電中さん[sage]   投稿日:2010/07/17 20:00:26  ID:R2gQ7+Fc
世の中にはクロックを用いない論理回路も存在する
RS-FFみたいなので値を保持しつつ、スパゲティ式に値の加工を伝播させて…という形で

データ駆動型等で書かれているはず

>483が何と何をどう区別したいかが今ひとつ不明

490
774ワット発電中さん[sage]   投稿日:2010/07/18 01:23:53  ID:vUfvP/U/
この場合のラッチってトランスペアレント型ラッチのこと?
どっちにしろFFなりラッチなり入ってれば、もう組合せ回路ではなよ
コメント1件

491
483[sage]   投稿日:2010/07/18 01:47:58  ID:XehrasD0
>490
はい、トランスペアレント型のことです。

>どっちにしろFFなりラッチなり入ってれば、もう組合せ回路ではなよ
うーん、やはり「以前の状態が絡む回路」ということで「順序」回路になるんですかね・・・

VHDLを勉強していて、process〜end process外に書かれた回路はすべて組み合わせ回路になるという
解釈でいいのかな?という疑問が湧いたんですが、ラッチが生成されることがあり、これをどう捉えるかで
上記解釈の成否が変わると思ったので気になりました。

ちなみに、process〜end process内に書かれた回路は書き方によっては組み合わせ回路が生成されることもあり
(コンパイラの最適化?)、常に順序回路が生成されると考えないほうがいいと解釈しています。
コメント2件

492
774ワット発電中さん[sage]   投稿日:2010/07/18 23:44:11  ID:TAyAPpYb
>491
クロックイベントを書いて組み合わせを作ることはないと思うが?
勿論クロックイベントが無ければ組み合わせorラッチになるが、基本的に同期回路設計ではラッチは悪だしなぁ
コメント1件

493
774ワット発電中さん[sage]   投稿日:2010/07/19 15:43:40  ID:L2AZNg/j
質問です。
ACEX1K の内蔵メモリに読み書きしたいんですが

http://japanese.sugawara-systems.com/tutorial/tutorial/sram.htm
↑のページを参考にしてsram1port_32x256.vhd や .qip を生成してプロジェクトに読み込みました。

ですが、そこからメイン?のArchitectureで読み書きする方法がまったくわからないので
教えてください。よろしくお願いします。
Quartus II Web Edition8.1を使用しています。
コメント1件

494
774ワット発電中さん[sage]   投稿日:2010/07/19 18:29:38  ID:EEHKPqHI
>493
そのページのテストベンチ31〜34行目でやってるような感じでインスタンス化し、
読み書きする信号線に結線してあげればOK。
VHDLでのインスタンス化記述のサンプルはMegaWizardが吐き出してたと思う。

495
774ワット発電中さん[sage]   投稿日:2010/07/20 11:54:42  ID:JogNLnr5
>491
process文はVHDLの言語の構文であって、
FFを作るかどうかはprocess文には直接関係が無い。
VHDLのソースを読んで合成ツールが勝手にFFを類推しているだけ。

VHDLの構文は同時処理文であるから、文がソース中どこにあっても全く同じ意味になる。
 a<=b;
 b<=c;
と書いても
 b<=c;
 a<=b;
と書いても同じ意味。
process文は上から順に解釈させたい場合に使用する。
文がどの位置にあるかで意味合いが異なってくる。
 process(b,c,x,y)begin
  if(x=y)then
   a<=b;
  else
   b<=c;
  end if;
 end process;

 process(b,c,x,y)begin
  if(x=y)then
   b<=c;
  else
   a<=b;
  end if;
 end process;
とでは意味が異なる。
上から順に解釈すべきif文は結果的にprocess文中にしか存在しえない。(generateとか例外があり)
FFをVHDLで表現するには、if文やwaitといった順次処理的構文でしか表現できず、
都合VHDLでFFを合成ツールに類推させる場合、必ずprocess文を使うことになる。
コメント1件

496
483[sage]   投稿日:2010/07/21 00:56:09  ID:JYcY4CAz
>492
基本、process文はClkをセンシティビティにして書くべきということですね。
しかし、process外のコンカレント部でもwhen〜elseの記述内容によってはラッチができてしまいます・・・
気を付けなくては。

>495
詳細な説明、ありがとうございます。
あれから勉強を続けて、メモリの生成方法を学びました。
そこではコンパイラにどのようなメモリ(分散メモリ、ブロックメモリ)を推測させるかというのがポイントに
なると知りました。
この「推測」って、メモリ以外でも重要ですよね。
教えていただいたことも参考に、どのような回路ができあがるのか常に意識しながら記述したいと思います。

ありがとうございました。

497
774ワット発電中さん[sage]   投稿日:2010/07/24 01:21:04  ID:asqL3UnZ(2)
gtkwaveがwindows7-64bit上で動いてくれない・・・誰か助けて下さい
本体は公式ページので、
gtk+_2.20.0-1_win64.zipとzlib_1.2.3-2_win64.zipの中身をつっこんだんだが
正しく起動できませんでしたになってしまう。。。

498
774ワット発電中さん[sage]   投稿日:2010/07/24 09:14:48  ID:U2uK1yJH
何故素直にModelsim使わない?
コメント2件

499
774ワット発電中さん[sage]   投稿日:2010/07/24 10:48:41  ID:asqL3UnZ(2)
32bit版のDLLで普通に動いた・・・
gtkwave自体が32bitだったのかw
完全にスルーしてました。お騒がせいたしました

500
774ワット発電中さん[sage]   投稿日:2010/07/24 13:08:22  ID:7QdGoTAH
>498
素直な選択肢がなぜ Modelsim なんだい?

501
774ワット発電中さん[sage]   投稿日:2010/07/24 17:42:04  ID:DSFJB4Qh
メンターの暴利主義が気にくわないので、おれはModelsimのメンテナンス契約、更新しない。

502
774ワット発電中さん[sage]   投稿日:2010/07/25 14:56:53  ID:5RTXqtp1
EDAベンダーなんてどこもそんな物だろ


503
774ワット発電中さん[sage]   投稿日:2010/07/25 15:11:49  ID:t6rIceJO
商売だからね・・・

504
774ワット発電中さん[sage]   投稿日:2010/07/25 21:28:59  ID:P5iyauMF
ケイデンスはもっと滅茶苦茶。

505
774ワット発電中さん[]   投稿日:2010/07/27 07:57:21  ID:mphPN1WR
しのぷしすなんて・・・

506
774ワット発電中さん[sage]   投稿日:2010/07/30 15:01:43  ID:SG5Er+j0(2)
教えてください。
Verilogを勉強していますが、本で、次のような記述を見つけました。

wire a = (cnt>=9) & carry;

これは、
wire a;
assign a = (cnt>=9) & carry;
と同じと考えれば良いのでしょうか?

507
774ワット発電中さん[sage]   投稿日:2010/07/30 17:18:55  ID:+fPBVuGj(2)
同じ

大昔なら、ツールによってはそういう記述をサポートしてないこともあった

508
774ワット発電中さん[sage]   投稿日:2010/07/30 19:31:23  ID:SG5Er+j0(2)
ありがとうございました。
これは便利そうなので、今後使おうと思います。

ちなみに、regでは使えないでしょうか?

always(....) begin
  if( posedge RESET==1'b0 ) begin
    reg [3:0] a <= 4'd12;  // ここで宣言して、いきなり初期値代入
  end else begin
    a <= a + 3'd1;     // count up
  end
end
    みたいな。

コメント1件

509
774ワット発電中さん[sage]   投稿日:2010/07/30 19:35:27  ID:tnNeEPPA
>508
ng

510
774ワット発電中さん[sage]   投稿日:2010/07/30 21:12:18  ID:+fPBVuGj(2)
あんまりお勧めしないよ
予め宣言して無いと変なバグの元になる

あと、そういう部分の記述についてはプロジェクト毎のルールとかもあるかもしれないね

511
774ワット発電中さん[sage]   投稿日:2010/07/30 21:17:24  ID:VQpgzogm
ソフト屋はそういう変な記述しtがる子が多いね。
普通に書いた方が見やすいし、引き継ぎも楽’なのに。
あと記述くらsinpryfiでもダウンロードしてコンパイルしてみりゃ分かるだろうに。

512
774ワット発電中さん[sage]   投稿日:2010/07/31 01:01:05  ID:7hvjLWsq
みなさん、ありがとうございました。
やっぱり、やめときます。
変数を見て、これって何bit?と思ったときに、ソース中を探さなくても、
ソースの先頭の方にまとめて書いてあった方が、スグにわかりますね。
横着をせずに、もっと精進したいと思います。
ありがとうございました。

コメント1件

513
774ワット発電中さん[sage]   投稿日:2010/07/31 01:25:10  ID:ebRRB9Jl
>512
それは、
 a[3:0] <= a[3:0] + 3'd1;
て記述する。
コメント1件

514
774ワット発電中さん[sage]   投稿日:2010/07/31 01:54:10  ID:kc7nigrg
>513
ビット幅間違ってるぞ

515
774ワット発電中さん[sage]   投稿日:2010/08/07 01:10:39  ID:FrB9mgRm
Verilogの$dist_normal(seed, mean, std)について教えてください.
この関数は戻り値がinteger型な仕様のせいで,
指定した標準偏差の白色ガウス雑音が精度よく得られません.

戻り値がreal型だったら全く悩まなくていいところだと思うのですが,
何かいい解決方法をご存知の方はいらっしゃいませんでしょうか?

516
774ワット発電中さん[sage]   投稿日:2010/08/17 01:11:22  ID:j3YbVNXz
casexとcarsexって似てるな
コメント1件

517
774ワット発電中さん[sage]   投稿日:2010/08/17 18:58:07  ID:L+ENaG4B
どちらか、もしくは両方に、かなり強い思い入れがあるから、そう思うのでしょう。

518
774ワット発電中さん[sage]   投稿日:2010/08/19 01:05:19  ID:Uum69Jif(2)
某マンデータのボードにはSDRAMが張り付いているんで、それを使いたいが、
SDRAMコントローラがない。どこかにSDRAMのフリーIPはないでしょうか?
コメント1件

519
774ワット発電中さん[sage]   投稿日:2010/08/19 01:30:51  ID:yhio344v
お前のパソコンの中に入ってるだろ

520
774ワット発電中さん[sage]   投稿日:2010/08/19 02:43:07  ID:CAWhQgKT
>518
それくらい書けよ。

521
774ワット発電中さん[sage]   投稿日:2010/08/19 10:28:18  ID:LVzr9RLB
SDRなら自分で書いた方が楽だと思う

522
774ワット発電中さん[sage]   投稿日:2010/08/19 19:48:33  ID:KG3I5N/g
初心者ならサンプルコード付きのボードを手に入れた方がいい。
少しは経験があるのなら、OpenCores だな。

523
774ワット発電中さん[]   投稿日:2010/08/19 19:53:33  ID:Uum69Jif(2)
SDRAMコントローラは、けっこう難しい。初期設定が・・・・・
SRAMに逃げた。

524
774ワット発電中さん[sage]   投稿日:2010/08/19 21:40:48  ID:G4GKQ6NR
> SDRなら自分で書いた方が楽だと思う
DDRだと、どう書いていいのかワカラン。
両エッジなんて・・・倍速のクロックを調達してくるのかな?
コメント1件

525
774ワット発電中さん[sage]   投稿日:2010/08/20 01:58:48  ID:SSYscQnv
悩むところか?ADC,DACもDDR多いだろ。

526
774ワット発電中さん[sage]   投稿日:2010/08/20 02:38:53  ID:A+atcoMI
>516
casezでも使っとけリアル厨房。

527
774ワット発電中さん[sage]   投稿日:2010/08/20 06:32:34  ID:DqBdLoNh
>524
入力側はposedgeとnegedgeのペアで解決
出力側は切り替えで対処…かな

どちらにしても、端子側のところに専用のI/O無いと速度的に満足できないだろうね
SDRにしても   FPGAではそういう指定できるはず…かな

528
774ワット発電中さん[sage]   投稿日:2010/08/20 12:21:47  ID:hODVqyj8
SDRはクロック以外は汎用I/Oで全然OKだよ

529
774ワット発電中さん[sage]   投稿日:2010/08/20 18:41:12  ID:1Tis3/9p
試しに使うレベルで、全力で動かす必要もないし。
3.58MHzぐらいでぼちぼちやればいいよ。

530
774ワット発電中さん[sage]   投稿日:2010/08/20 19:58:58  ID:o9Dul3cV
FPGAだがAlteraのQuartus使えば、
SRAMよりSDRAMの方がむしろ簡単。
コメント1件

531
774ワット発電中さん[sage]   投稿日:2010/08/21 03:08:16  ID:BTeS9ung
>530
えっ? マジですか?

コメント1件

532
774ワット発電中さん[sage]   投稿日:2010/08/21 08:03:59  ID:tCXmq+Vg
HDDの容量を食うけど落として試してみればいい。
確かに悩むのがアホらしくなる。

533
774ワット発電中さん[sage]   投稿日:2010/08/21 17:12:49  ID:ud8ZD2Od(3)
>531
ホント簡単だよ。
どっちもほとんどマウスのクリックだけで接続できるが、
SDRAMの方がより簡単に接続可能。

534
774ワット発電中さん[sage]   投稿日:2010/08/21 17:16:39  ID:ud8ZD2Od(3)
ここに概要の説明があるんで見てみると良いかも。
http://www.kumikomi.net/archives/2010/04/ep15ddt5.php?page=1
SDRAMは2ページ目。

535
774ワット発電中さん[sage]   投稿日:2010/08/21 17:28:24  ID:ud8ZD2Od(3)
SRAMはここの NiosIIに外部メモリを組み込む が分かりやすい。ちょっと面倒。
http://www.hirokinakaharaoboe.net/tips_wiki/index.php?NiosII%E3%81%AB%E5%A4%96%...#wb00af92

536
774ワット発電中さん[sage]   投稿日:2010/08/21 23:51:19  ID:sVIgpkAW
どれもこれもALTERAだけど、Xilinxはどうでしょ?
アルテラで簡単にできるなら、Xilinxでも簡単にできそうな・・・・
コメント1件

537
774ワット発電中さん[sage]   投稿日:2010/08/22 00:02:56  ID:/XYyFnAe
>536
お前が調べてこのスレに書けばおk

538
774ワット発電中さん[sage]   投稿日:2010/08/22 11:44:47  ID:XhuVOVxw
だからSDRぐらい自分で書け。

539
774ワット発電中さん[sage]   投稿日:2010/08/22 16:25:27  ID:x19gvC+v(2)
俺もXilinxにSDRAMをつないで動かしたい。
自分で書くにしても、一番良い方法(参考サイト、本)を知りたい。

コメント1件


540
774ワット発電中さん[sage]   投稿日:2010/08/22 17:14:18  ID:tx61iHfI
MIGを使えばいいんとちゃう?
コメント1件

541
774ワット発電中さん[sage]   投稿日:2010/08/22 18:42:24  ID:vxw2KZYN
DDR なら標準で持ってるだろ。
アプリケーションノートにも載ってたはず。
コメント2件

542
774ワット発電中さん[sage]   投稿日:2010/08/22 20:17:41  ID:x19gvC+v(2)
MIGはDDR以上しかサポートしていないっす。
代理店にも確認しますた。

543
774ワット発電中さん[sage]   投稿日:2010/08/22 22:12:28  ID:VwaRLEEE
>540
MIGで構成するのは、FPGA内部のBlockRAMを使ったものであって、
FPGA外部のSDRAMについては、MIGでは・・・・・

>541
DDRじゃなくてSDRAM。良く読んでね。

コメント1件

544
774ワット発電中さん[sage]   投稿日:2010/08/22 22:39:36  ID:6RsKZMhV
SDRだと簡単にかけるので、IPとしての価値は殆どない。
DDRだと遅延量調節をする必要があるので、IPとして価値がある。
逆に、SDR位かけないのなら、それはスキル不足。勉強すべし。

>543
細かいことだけど、DDRもSDRAMの一種。
コメント1件

545
774ワット発電中さん[sage]   投稿日:2010/08/23 00:08:58  ID:F8g2XGKS
あんまり細かくもないがw
SDRをSDRAMと読んでいたとしたら、話が通じない。

546
774ワット発電中さん[sage]   投稿日:2010/08/23 01:36:19  ID:rA3PwKcq
すみません
 DDR  = Double Data Rate ....
 SDRAM = Synchronus Dynamic RAM でしたね。失礼。

>541
DDRじゃなくてSDRですよ。

>544
>SDRだと簡単にかけるので、IPとしての価値は殆どない。
簡単に書ける割には、本を見ても、ネットで探しても、SDRのIPは出ていないんですよ。
秋月の2行LCD程度のHDLならいいですが、初期化から面倒なことが続くみたいで複雑。
結果、基板上のFPGA外部に大容量SDRAMが張りついて、FPGAに配線もされているのに、
内蔵のブロックRAMを使うことになります。変な違和感が・・・・・・

コメント2件

547
774ワット発電中さん[sage]   投稿日:2010/08/23 08:25:53  ID:Lm3QtXij
>546
簡単に書き捨てられるレベルだからネットで検索しても落ちてないんだよ

つーか、>546がネットで拾ってきたコードを改変って一丁上がりって
開発(?)スタイルを捨てない限り、先はないよ
SDR-SDRAMのアクセスコードくらいスクラッチからサクっと書いてくれ

548
774ワット発電中さん[sage]   投稿日:2010/08/23 19:50:10  ID:Tu9FXiP9
> 初期化から面倒なことが続くみたいで複雑。
面倒だけど複雑ではないのでは。

549
774ワット発電中さん[sage]   投稿日:2010/08/23 22:53:52  ID:KrcNNywA
わかりやすい解説がついて、ソース付きであれば5万円でマジで買います。

だれがやったらいいのに・・・。

コメント2件

550
774ワット発電中さん[sage]   投稿日:2010/08/24 10:17:35  ID:eG7zvDp9
S-RAM と違って、書きたいときに書き込めるわけじゃないし、システム側とのアービトレーションが面倒くさい。
だから汎用で使うってのがそもそも間違ってる。

551
774ワット発電中さん[]   投稿日:2010/08/24 10:53:32  ID:qice5oqM

552
774ワット発電中さん[sage]   投稿日:2010/08/24 11:02:34  ID:KZjZNXHy

553
774ワット発電中さん[sage]   投稿日:2010/08/26 23:10:10  ID:eB6rKLZJ
XilinxのISEの「View RTL Schematic」でRTL図を確認しているんですが、
たまに明らかに接続されているはずのところが繋がって描かれていないときがあります。
シミュレーションではちゃんと繋がっている動作をするので、実際は繋がっているはずなんですが・・・
省略表記?にしても、その基準が分かりません・・・
なぜこのようなことが起こるのでしょうか??

554
774ワット発電中さん[sage]   投稿日:2010/08/27 03:39:51  ID:yVSBdFRU

表示ソフトのバグだと思う。僕も最初は驚いた。
だいたい、点線だったり実践だったり、太かったり細かったり、
どういうつもりであの線種を変えているのか、サッパリ予想が付かない。
さらに、箱外からの線と箱内の線が、箱に入ったところでバッサリ切れてるわ、
ちょっとひどくないですかね。
さらに、信号線名の字の小さいこと、じゃってんで、F7,F8で画面拡大縮小をした日には
暴走したかと思うくらい固まってしまう。
RTLの下にあるもう一つの表示方法だと全線つながって見えると思う。

僕は、外部エディタを使っているんだけど、
ISE10以降?から、外部エディタをsaveしてISEの画面に移行すると、
じーーーっと、しばらく考えて、やっとシンセサイズのボタンが触れるようになる。
思わず画面に向かって「何やってんの?」と怒鳴ってしまったよ。
たぶん変更したソースの階層構造を調べ直しているんたろうけと、
だったら「調べてるから、待ってね」とダイアログを出せよ、って感じ。
何も言わずに止まってしまうのは、反則。
これほど重くて、動作がもっさりのソフト、はじめて。

ちなみに、CPUは Core2Duo 3GHz 4GB /3GB XP SP3, 250GB RAID0。
他のアプリ全て停止でね。

そんなISEだけど、いつかきっと「サクサク」動く日が来ると信じてる。
コメント2件

555
774ワット発電中さん[sage]   投稿日:2010/08/27 06:26:12  ID:P64pZiwU
マウスの形は変わってるだろ

556
774ワット発電中さん[]   投稿日:2010/08/27 23:35:21  ID:3XoGZBtr(2)
>554
>そんなISEだけど、いつかきっと「サクサク」動く日が来ると信じてる。
いつかっていつだ? と3年前から胃が痛い人が聞いてみる。
コメント1件

557
774ワット発電中さん[sage]   投稿日:2010/08/27 23:37:57  ID:3XoGZBtr(2)
ISEのModelSimサポートも終了らしいな
FPGAの部さんで知った。

558
774ワット発電中さん[sage]   投稿日:2010/08/28 01:20:15  ID:oBUpY8XO
>556
遠くはない未来です。戸籍上は168才まで生きますから、それまでには。

559
774ワット発電中さん[sage]   投稿日:2010/08/28 01:30:03  ID:sNB8DRsT
日本の平均寿命ってどうなってんだろうね

560
553[sage]   投稿日:2010/08/28 20:16:20  ID:dvgnYEXX
>554
レスありがとうございます。
やっぱり表示おかしいですよね^^;

自分も外部エディタ使ってます。
ISEにフォーカスを移すと、たしかに少し固まりますね。
固まりが解けるとソースの階層構造表示が更新されるので、
変更ソースの解析のためで間違いないと思います。
自分の場合はまだ我慢できるレベルの固まり時間ですが、最終的にモジュールを結合して
大きな回路になったときはかなり長くなるのかな・・・

ISE、昔よりはだいぶ良くなったと聞きますが、
さらなる改善を期待したいですね。

561
774ワット発電中さん[sage]   投稿日:2010/08/29 04:22:10  ID:sWlgWhKl
今日、PCがコケて、ISEを入れ直したんだけど、気がついたことがある。
Ver 11.4にするためには、いったん11.1を導入済みでないとインストールできないのね。
都合5GBぐらいのダウンロードになる。これはしんどい。

また、フルなんとかというバージョンは、
ダウンロードが5.3GBくらいあって、それはtarファイル。
デスクトップで解凍後、いざインストールを始めると、
「○○を解凍中・・・」と表示される。圧縮した物をさらに圧縮してるんだね。
なんという巨大、なんという時間のかかること。

562
774ワット発電中さん[sage]   投稿日:2010/08/29 04:46:02  ID:7iq2ukqq
ディスク容量が12GB以上余ってないとインストール出来ないのか

563
774ワット発電中さん[sage]   投稿日:2010/08/29 10:37:30  ID:kA2RPhm0
MicroBlazeに接続可能な(SDR-)SDRAMのIPってフリーか安い値段で市販されていないでしょうか?
コメント1件

564
774ワット発電中さん[sage]   投稿日:2010/08/29 13:38:32  ID:ByHtHvrA
open coreにあった気がする
うまく使えたら、教えて。俺も使いたいと思ってる。

ごめん、MicroBlazeか。じゃわからんわ。

565
774ワット発電中さん[sage]   投稿日:2010/08/29 19:10:38  ID:Y3tCUsgu
>563
MicroBlaze(EDK)のライセンスを持ってるならばMPMCで良いんじゃないの。

↓SDRAMにも対応しているみたいし。
http://www.hdl.co.jp/xilinx/microblaze/mpmc_sdram/index.html

566
774ワット発電中さん[sage]   投稿日:2010/08/31 14:34:02  ID:rx0cXXAT
そういえば>2のリンクって相当ほったらかし?

567
774ワット発電中さん[sage]   投稿日:2010/08/31 14:50:12  ID:RMy+FPue
少なくとも2年は放ったらかされてるな

568
774ワット発電中さん[sage]   投稿日:2010/09/07 02:23:05  ID:LBpmufKQ
教えてください。

VerilogでHDLを書くときの、考え方についてです。
例えば、
FPGA外部の発振器からメインクロックsysCLKを取り込み、HDL全体のクロックとして使います。
ところが下位層では、ローカル処理用に高速なclockが必要なので、sysCLKを逓倍して作成したCLK10があります。
下位層の状態信号など、top階層でモニタして使用したいと思うのですが、
下位層は高速のCLK10で動作しているため、sysCLKで刻んでいるtop階層では、見逃してしまいます。
こんなときは、どのように対処するのが「正しい」方法なのでしょうか?
僕の考えつくところでは、
1) ハンドシェイクをする方法
   下位にFFを設けて、イベント発生をラッチ(記憶)して、上位に知らせ、
   上位では、了解信号を下位に送り、下位はそのラッチをクリアする。
   やりとりが面倒で、間違いも起きやすいと思います。

2) 全体をCLK10で駆動する
   DCMの逓倍部分をtopに持ってきて、このCLK10をFPGA全体のclockにする。
   わかりやすく確実だと思いますが、リソースがたくさん必要になると思います。
   10nsを100万回数えて、10msを生成して・・・・と、FFが一杯要りそう。
   例えばRS232の受信部のように16倍のclockで刻む必要がある場合、
   ボーレートの変更により、CLK10が変化してしまい、調子が悪いとも思います。

こういうときは、どうすべきなのでしょうか。
宜しくお願いします。

コメント1件

569
774ワット発電中さん[sage]   投稿日:2010/09/07 07:41:08  ID:oB+K90Lw
逓倍したクロックと元のクロック間では位相は保障されないのが普通

高いクロックに合わせて動作させるのが常套手段だが、sirial入力を
オーバサンプリングでデータ取りする場合は、内部接続のパラレルビット幅を
増やし、受け側に対して十分低速にして受け渡す

あとはハンドシェイクするなり何なりだな

570
774ワット発電中さん[sage]   投稿日:2010/09/07 10:53:12  ID:IOoIZnVA
異クロックドメイン間の通信はFIFOとメールボックスを使うのが筋だな
>568の例だと非同期メールボックス(要はハンドシェイク)を使えばいい

つーか、ハンドシェイクってやりとり面倒か?
確かにシミュレーションモデルでの検証は面倒かもしれないけどね

571
774ワット発電中さん[sage]   投稿日:2010/09/07 11:36:13  ID:wjakz+Dk
イベントを示すパルスの幅を充分に広げてやれば
めいよううぇんてい
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

電気・電子板 タイトル検索

このスレッドが人気です(実況系)
実況 ◆ テレビ朝日 49994 おじさんぽ (372)テレ朝実況
羽鳥慎一モーニングショー★7 (421)テレ朝実況
ビビット 11/24(金) ★1 (738)TBS実況
実況 ◆ 日本テレビ 57122 再々修正済でスッキリ (398)NTV実況
はやドキ!& あさチャン!金曜日★2 (759)TBS実況
ノンストップ!【千秋が行く!高知秋旅▽女の50代テンション下げ友】 (298)フジ実況
実況 ◆ フジテレビ 84898 相撲以外に取り扱う話題無いのかよ (190)フジ実況
NHK総合を常に実況し続けるスレ 140214 鈴木保奈美 (536)NHK実況
このスレッドが人気です(ニュース系)
【社会】 「北朝鮮から来た」 秋田に木造船が漂着 男性8人保護★2 (1003)ニュー速+
【朝日新聞】 サンフランシスコ市との歴史ある関係を捨ててまで、大阪市長がこだわるのはなぜか★2 (603)ニュー速+
【大相撲】<貴乃花親方>バッシングされても相撲協会と決裂した本当の理由 ★2 (667)音楽・芸能ニュース
【国際】モンゴル大統領、相撲の暴行問題で安倍首相と面会希望 友好関係への影響を懸念 (183)ニュー速+
【大阪】吉村市長 サンフランシスコとの姉妹都市解消表明 手続き開始12月中に完了へ 慰安婦像の寄贈めぐり★9 (592)ニュー速+
【秋田】「漁をしていて船が故障」 秋田に北朝鮮の木造船漂着で男性が説明 (183)ニュー速+
【相撲】日馬暴行が国際問題へ 朝青龍モンゴル大統領に報告 (459)音楽・芸能ニュース
【大相撲】<貴乃花親方>バッシングされても相撲協会と決裂した本当の理由 (1001)音楽・芸能ニュース
電気・電子板の人気スレ
3Dプリンター個人向け@電気・電子板 その38 (455)
電子工作入門者・初心者の集うスレ 76 (640)
【な】秋月、千石、若松などを語るスレ74【ど】 (328)
電子工作入門者・初心者の集うスレ 74 ※中国系店舗利用者書き込み禁止 (988)
【RaspberryPi】1ボードPCを語るスレ11【pcDuino】 (1001)
日本の電気・電子産業の現在過去未来 (325)
使える100均グッズin電気電子板 20軒目 (259)
プリント基板業者発注質問スレ 6枚目 (1002)
Arduino初心者熱烈大歓迎質問スレ part19 (701)
シーケンサ・PLCラダー総合スレ 14台目 (247)
AVRマイコン総合スレ Part39&#169;2ch.net (783)
PIC専用のスレ Part 56 (520)
初めてのPIC 0x0D (126)
自営業 悩みごと相談室 47 (974)
aitendo利用者達のスレ その12 (286)
初心者質問スレ その125 ※中国系店舗利用者出入禁止 (377)
オシロスコープ総合スッドレ! part25 (92)
格安Wi-Fiモジュール ESP8266/ESP32 Part.5 (670)
【電気】理論・回路の質問【電子】 Part16 (501)
変な言い回し、変な省略語について語るスレ (723)
制御盤 設計(ハード/ソフト)・試験・現場工事etc その6 (650)
CNCフライス盤 2切削目 (966)
【アナログ】テスター総合スレッド 15Volt【デジタル】&#169;2ch.net (568)
アンプを作ろうPart5 (900)
鬱でも必死で会社に言ってる人【電電−11】 (294)
【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel #24 (921)
EMCEMCEMCEMCEMCEMCEMCEMC 2 (88)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード: