【Verilog】 記述言語で論理設計Project12 【VHDL】

このエントリーをはてなブックマークに追加
1AMBA4 AXI4

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

 このスレが目に入ったおまえ! HDLで何か作って遊んでみませんか。
 日曜工作のHDL書き、学生さん、プロの方、主婦の方、カキコお待ちしております。
 関連情報は >2-10 あたり。

  入れ食いキーワード
   ・Nios、MicroBraze
   ・Artix-7、Kintex-7、Virtex-7、ハードコアCPU内蔵 Zynq-7000

 前スレ (直近スレのみ)
   ・Project11 uni.2ch.net/test/read.cgi/denki/1323187568/   2011/12/07〜
   ・Project10 kamome.2ch.net/test/read.cgi/denki/1284652343/ 2010/09/17〜
2AMBA4 AXI4:2012/11/03(土) 12:43:18.29 ID:5uAxXruo

・FPGA
 Xilinx ttp://japan.xilinx.com/
 ALTERA ttp://www.altera.co.jp/
 Lattice ttp://www.latticesemi.co.jp/
 Actel  ttp://www.actel.com/intl/japan/
 QuickLogic ttp://www.quicklogic.com/

・ASICベンダ推奨ツール類 (高価)
 Synopsys ttp://www.synopsys.co.jp/
 Cadence ttp://www.cadence.co.jp/
 Mentor ttp://www.mentorg.co.jp/
 Synplicity ttp://www.synplicity.jp/

・Verilogシミュレーター (無料)
 Icarus Verilog
  ttp://iverilog.icarus.com/
  ttp://ryusai-hp.web.infoseek.co.jp/icarus.htm (解説)
  ttp://www.ice.gunma-ct.ac.jp/~kimsyn/verilog/FreeSim/iverilog/iverilog.html (解説)
 IVI
  ttp://ivi.sourceforge.net/
  ttp://www.kumikomi.net/archives/2005/06/10icarus.php (解説)

・VCDフォーマットの波形表示 (無料)
 GTKWave
  ttp://gtkwave.sourceforge.net/
  ttp://ryusai-hp.web.infoseek.co.jp/gtkwave.htm (解説)

・関連書籍
 STARC ttp://www.starc.jp/
 CQ出版 ttp://www.cqpub.co.jp/
 Interface ttp://interface.cqpub.co.jp/
 Design Wave Magazine (休刊) ttp://www.cqpub.co.jp/dwm/
 ディジタル・デザイン・テクノロジ (旧DWM) ttp://digital-design.cqpub.co.jp/

・解説サイト
 やるおと学ぶ Verilog-HDL ttp://hirokinakaharaoboe.net/yaruo_verilog/

・関連スレ
 【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel
      http://uni.2ch.net/test/read.cgi/denki/1334690638/
 【EP3】DE0で始めるVerilog HDL【C16】
      http://uni.2ch.net/test/read.cgi/denki/1310362001/
3774ワット発電中さん:2012/11/03(土) 12:53:43.49 ID:5uAxXruo
979 :774ワット発電中さん :2012/11/01(木) 13:40:52.57 ID:Q80B2X2d
>>976
>レベルだけじゃなくて、位相特性の測定もお願いします…orz
おもしろいから聴いてやろう
雑音の位相特性をどうやって決めるんだい?ウスノロ
位相特性と言う限り、入力は正弦波が前提になる。
雑音の位相とは何か定義して教えてくれや。
位相どころか、雑音の微係数だって、リーマン=ルベグの意味では定義できないんだがな。
980 :774ワット発電中さん :2012/11/01(木) 14:58:21.32 ID:CaVGBd7P
>>979
976が書いてる正弦波で測定する場合は位相特性オシロで見るとかででるでしょ??
雑音でやる場合は、FFT掛けるから一括で特性出るよ??
981 :774ワット発電中さん :2012/11/01(木) 15:01:45.03 ID:CaVGBd7P
この場合で測定しようとしてるのは、フィルタの伝達特性だよね?
982 :774ワット発電中さん :2012/11/01(木) 17:36:02.88 ID:Q80B2X2d
>>980
>>981
>雑音でやる場合は、FFT掛けるから一括で特性出るよ??
戯言ほざくなお前は
システムの伝達関数を調べたければ入力はδ関数インパルス入力だ。
インパルス入力と雑音が一致してるのはスペクトル特性だけ。
理屈の上からは極めて長い周期の一様乱数でガウス雑音を作れば、
f特は1に近づくが、どれだけの周期のものが必要かお前はわかってんのかい。
だいたい、雑音自身の位相なんて決めようがないのにどうやって出力位相を決定するつもりだ。
それと、なんでオシロを見るんだ。ディジタルフィルタだからバス入力があるだろうが、
そこにマイコンかUSB出力をシリパラするでポートたたいて直接ディジタルデータ入力しろと言ってる。
983 :774ワット発電中さん :2012/11/01(木) 17:38:23.93 ID:Q80B2X2d
>>980
>雑音でやる場合は、FFT掛けるから一括で特性出るよ??
ガウス雑音入力してどうやって位相特性出すのか解説してもらおうか。
ごまかさずにちゃんと書け
984 :774ワット発電中さん :2012/11/01(木) 18:47:47.32 ID:6mBhdETp
>>983
あんたの罵倒ことばが大嫌い
985 :774ワット発電中さん :2012/11/01(木) 23:02:45.70 ID:PG9w/7bV
よくわからないけど、982で決定的に恥をかいているような気がする。
4774ワット発電中さん:2012/11/03(土) 14:32:58.67 ID:D6IP2Orn
>>雑音でやる場合は、FFT掛けるから一括で特性出るよ??
>ガウス雑音入力してどうやって位相特性出すのか解説してもらおうか。
擬似乱数で作った雑音だったり
5774ワット発電中さん:2012/11/03(土) 19:02:30.16 ID:gbOe/R3K
>>1
乙やめブラ

ちなみに
>前スレ (直近スレのみ)
過去スレ、ならともかく前スレならProject11だけ挙げればいいような気も
6774ワット発電中さん:2012/11/04(日) 12:12:50.28 ID:TTTlx6Td
日曜HDL書きは、今日も元気にalwaysしてます
7774ワット発電中さん:2012/11/04(日) 15:19:37.99 ID:TTTlx6Td
何作ってんの?

って、自演かい!!
8774ワット発電中さん:2012/11/04(日) 18:48:25.99 ID:7Sq3+7D+
"今日も元気にalways"ってなんかやる気になるなw
9774ワット発電中さん:2012/11/04(日) 20:02:38.82 ID:wJ/nE77r
ツッパリハイスクールロックンロールかと思ったw
10774ワット発電中さん:2012/11/05(月) 10:15:05.42 ID:scJ6GysZ
毎日がエブリデイって感じ?
11774ワット発電中さん:2012/11/08(木) 21:04:25.59 ID:1kR4z4I3
最近、少しFPGAに慣れてきました。
マイコンに比べて動作clockが速いので、
今まで遅くてあきらめていた部品、シリアルA/DやシリアルD/Aが、
とても気持ちよく動くようになりました。
RS232も230kbpsとかが平気で使えるので、
MAX232などのI/F ICの動作上限に迫る勢いで、ちょっと気分がいいです。
12774ワット発電中さん:2012/11/09(金) 19:05:47.64 ID:dfM2Yfzs
で、ややこしい処理になってくると、CPUの有り難味がでてきたり、
して、PSoC3/5あたりも結構美味っぽく感じたりもするんだけど、
ちとチップが高いのよね。
13774ワット発電中さん:2012/11/09(金) 20:14:13.14 ID:t74cLeSQ
そうそう、だいたいそのコースね。
FPGAでキャラクタLCDの初期化とか、
74HC595、74HC166などのシリアルものをやったときは、
FPGAを窓から投げたくなった。
マイコンが神様のように思えた。
チップの中に1人しかいないのは、なんと楽なことか。
14774ワット発電中さん:2012/11/10(土) 10:45:51.57 ID:QaNDYrFe
チップの中に1人しかいないのは
なんと非力なことか、とは思わないのね。
15774ワット発電中さん:2012/11/10(土) 10:54:42.46 ID:sP5F6zkc
Xilinxが、LCDの初期化IPを、CoreGenに入れてくれればいいのにね。
ついでに、UARTとSPIも。
16774ワット発電中さん:2012/11/10(土) 13:08:03.32 ID:qgGbbZS7
そんなもの自分で作るんだよ、と言われたことがある。
17774ワット発電中さん:2012/11/10(土) 20:11:21.03 ID:8poWsuyh
マイコン制御に慣れてるならPicoblazeを入れると捗るぜ。
18774ワット発電中さん:2012/11/11(日) 01:00:57.06 ID:3JPzs5A3
picobrazeって、Cで書けるの?
19774ワット発電中さん:2012/11/11(日) 05:59:39.20 ID:hL6LYVYb
一応 PCCOMP という C Compiler があります。
20774ワット発電中さん:2012/11/11(日) 11:05:49.69 ID:uTjusP8L
「あった」が正しい。
>19の手もとにあるなら放流してくれ。
21774ワット発電中さん:2012/11/11(日) 14:01:15.23 ID:hL6LYVYb
>>20
PCCOMP開発者のF.Poderico氏のWebPageが消失していたのですね。
ググってみたところ「Pccomp下?」で最初に表示されるページから今でも入手できるようです。

一応簡単なVirusチェックで確認はしてみましたが、
以前の一次公開元からDLしたpccomp.exeが手元に残ってる人は md5sum 値を晒して欲しい。

-----------------------------------------------------------------------------------------------------------
Picoblaze C Compiler for PicoBlaze, Version alpha 1.8.4 optimazer ver. 1.0.2

2006/12/03 13:45 356,287 pccomp.exe
[md5sum]: 60120d152207a074c91a80dd773d3a78 *pccomp.exe
-----------------------------------------------------------------------------------------------------------
22774ワット発電中さん:2012/11/11(日) 22:54:01.23 ID:uTjusP8L
たぶん同じところから拾ってきた。ついでにマニュアルとかも。だんけ >21
しかし放流してくれと書いといてなんだが、バイナリだけだと試すのに度胸いるね…。
23774ワット発電中さん:2012/11/14(水) 02:54:58.26 ID:38j7g3MO
すると、picobrazeは、assemblerで書くのでしょうか。
24774ワット発電中さん:2012/11/14(水) 07:12:49.01 ID:fu921sVV
>>23
純正 assembler は使い難いので、互換品の pBlazASM を使うのが良いかも。
コードのデバッグは pBlazSIM というシミュレータが便利です。
25774ワット発電中さん:2012/11/16(金) 22:17:02.50 ID:Q8XkIEPd
>>22
だんけって、
壇渓通のことでしょうか?
26774ワット発電中さん:2012/11/17(土) 01:57:09.50 ID:FYkbpB7L
ドイツ語だろ
27774ワット発電中さん:2012/11/17(土) 12:42:40.87 ID:Cozdkgt0
ドイツ語は、ダッチじゃないの?
ていうか、なんでドイツ語なんか使うの?
28774ワット発電中さん:2012/11/17(土) 20:26:41.12 ID:FYkbpB7L
ダンケシェンでggrks
スレ違いのことで上げんな。
29774ワット発電中さん:2012/11/18(日) 13:07:51.62 ID:+dbdo4mz
ggrks って、何ですか?
30774ワット発電中さん:2012/11/18(日) 13:39:35.15 ID:ErBc6d7x
ggrks --help
31774ワット発電中さん:2012/11/18(日) 17:48:30.05 ID:xywm+WRH
>>30
おかしいな・・・
俺の環境では使えないようだ
32774ワット発電中さん:2012/11/18(日) 19:05:39.58 ID:rBsAfEQZ
(^▽^)
33774ワット発電中さん:2012/11/18(日) 22:04:29.70 ID:ERRlzdWA
NCVerilogにはggrksコマンドがないようだ
このコマンドを使える処理系をぐぐって調べるか・・・
34774ワット発電中さん:2012/11/19(月) 08:54:37.66 ID:/8zcYWv5
以下の条件に一致する商品は見つかりませんでした。
キーワード:ggrks
検索対象:タイトル
35774ワット発電中さん:2012/11/19(月) 10:10:50.17 ID:K5ujrm80
>>27
ダッチはオランダ語
36774ワット発電中さん:2012/11/19(月) 21:19:48.54 ID:/8zcYWv5
そうなの?
タッチワイブスって言うじゃん。
37774ワット発電中さん:2012/11/19(月) 22:20:24.94 ID:23CugZ/7
オランダ妻は電気ウナギの夢を見るか!?
38774ワット発電中さん:2012/11/20(火) 02:09:24.11 ID:RRkId7u5
教えてください

Verilogで、マイコンとのI/F部分を作っていますが、
困った部分があります。

マイコンとは非同期なので、FPGAに入ってから、
FFを1段通して、メタステーブルの対策をしようと考えました。

ReadとかWriteなどのマイコンからの出力は、一方通行なので、
in----D Q----D Q---->in' と、書けるし動くのですが、
データバスは、inout なので、上記のようにFFを通すというワケには
いかないと思います。
このような場合は、どうしたらよいのでしょうか?

トライステートスイッチを通って、データの方向が決まってから、
----D Q----とするのでしょうか?
39774ワット発電中さん:2012/11/20(火) 09:35:10.85 ID:GYyju+3v
inout [7:0] data;
wire [7:0] odata;
reg[7:0] idata;

assign data = oe ? odata : 8'hz;

always @(posedge clk)
if(!rst) idata <= 8'h0;
else idata <= data;
40774ワット発電中さん:2012/11/20(火) 12:02:06.76 ID:8Av30zuJ
オランダは恨み骨髄
日本が嫌いで嫌いで仕方がない
チャンコロやチョン公よりも反日
http://kyoan.u-biq.org/enq_shinnichi.html
41774ワット発電中さん:2012/11/25(日) 19:15:15.48 ID:ctrDZzKm
Xilinx ISE、VerilogでHDLを書いています。

型宣言無しでも、defaultでwireにしてくれる、という機能がイヤで、
`default_nettype noneで書いています。

今までずっと順調だったのですが、CoreGenでDCMを作ってつないだら、
エラーで止まってしまいました。原因は、CoreGenの吐くコードが、
default_nettypeが wireで作ってあるみたいで、
そのコードに私がwireという宣言を入れたら、通りました。

通常そういうものなのでしょうか?

Xilinxにイラっと来てしまいました。俺は悪くないのにって。
42774ワット発電中さん:2012/11/25(日) 19:29:23.79 ID:6L+PeCts
そういうものです
43774ワット発電中さん:2012/11/25(日) 19:51:43.52 ID:ctrDZzKm
えーーーっ、そうなんですか?
すると、`default_nettype noneで書くのは、やめたほうが良さそうですね。
せっかく、ちょっと厳しいチェックで、タイプミスとかも減るかと思ったんですが。

でも、Xilinxもずるいような気がします。
44774ワット発電中さん:2012/11/26(月) 13:25:03.63 ID:iLBZFkl4
Xilinx チップスコープで質問お願いします。

Chip Scopeの、CoreGenでIPを作って、
HDLソースに貼り付け、そこで配して、その後XSTする方法で、
Chip scopeに表示される信号名が、DATA PORTになっていて、
もう一方のやり方のように信号名が表示されません。
「データポートの26番目だから、登録したときのぉ、えーっと・・・」
という感じで行うのでしょうか?
信号名を表示させる方法があれば教えてください。

また、このとき
・ICONは、top階層に、
・ILAは、下位階層でもOK
とかの決まりはあるのでしょうか?
45774ワット発電中さん:2012/11/27(火) 23:35:35.62 ID:HfsgVYNc
>>44
FPGA Editorを起動してTools→ILA→Write CDCで設定を書き出せます。
階層は何処でもOKだろうけど「ICONは1個のみ」という縛りがあります。
46774ワット発電中さん:2012/12/01(土) 02:38:31.64 ID:czKvXfRs
>>45
>FPGA Editorを起動してTools→ILA→Write CDCで設定を書き出せます。
あれって、インサーターくらい完璧な文字が出ますか? 半分くらいのような気がした。
47774ワット発電中さん:2012/12/01(土) 12:47:48.68 ID:5h9LWxDU
.
Lintチェッカーが欲しいですが、価格は、どのくらいするものでしょうか?
5万、10万、50万、100万・・・・

ネットで検索すると、糸くず取り680円しか出てこないんです。
48774ワット発電中さん:2012/12/01(土) 13:17:47.06 ID:cCru30LK
良く分からんが、こんなんじゃあかんの?
ttp://www.veripool.org/wiki/verilator/
49774ワット発電中さん:2012/12/01(土) 19:35:55.86 ID:miAYuRmo
リントチェッカーって、実質 spyglass しかないような・・・
300万だか500万だかそのくらいだったと思う。(年間ライセンス)
厳密でなくていいなら合成ツール(dc)を使う手もあるけど。
50774ワット発電中さん:2012/12/01(土) 21:14:28.56 ID:5h9LWxDU
>>48
ありがとうございました。いい感じですね。探したら、日本語で説明しているページもありました。
どうもありがとうございました。

>>49
そんなにするんですが。ありがとうございます。
日曜HDLerが300万も出したら、嫁に刺されそうです(w
>>48さんのものを調べて見ます。

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

今は、Verilogでシュミレーションの勉強をしています。
その記述の中で、initial文というのがあります。
最初に1回だけ実行されるようです。
begin〜end内が全てinitial文だと思います。

ところが、本のサンプル例では、どれもinitial文の中に
テストする信号変化など、一切全部を記述して、$finishで終了しています。
これでは、initial文ではないように思います。

initialだというのなら、
それに対応する通常の動作部分があってもいいと思うのです。
例えば、以下のように、initialとmainとかです。
なぜinitial文と言うのでしょうか?

initial begin         // Initialize
  RST_X=1'b0; counton=1'b0;
end

main begin         // 通常動作文
  #10;
  #100 RST_X=1'b1;
  #100 RST_X=1'b0;
  #100 counton=1'b1;
  #1500 RST_X=1'b1;
  #100 RST_X=1'b0;
  #500 counton=1'b0;
  #100 counton=1'b1;
  #500 $finish;
end
51774ワット発電中さん:2012/12/01(土) 22:42:58.01 ID:5h9LWxDU
>>50です。
すみません、自己解決しました。
initial文に対応する文は、always文でした。

initial文 先頭から、一方通行的に終わる
always文  先頭から、最後まで実行すると、再び最初から実行されるイメージ
always @ () @()で立ち止まり、()内の条件が真になったら、その中身を実行し、
       再び、@()で立ち止まる。

ありがとうございました。
52774ワット発電中さん:2012/12/02(日) 09:03:56.25 ID:e5qmX3AO
@ は、initial の中でもどこにあってもいい。
複数あってもね。

clock 同期回路の記述の定番は
always @(posedge ... だけど。
53774ワット発電中さん:2012/12/02(日) 21:41:54.64 ID:2p6jC3kL
>>52
always@(*) って書いたら全部のイベントに反応するのかな
54774ワット発電中さん:2012/12/02(日) 22:46:06.36 ID:BFetGiWe
実装によるんじゃない?
大規模論理ではセンシティブリストに載り切らないから実用的ではないね。
55774ワット発電中さん:2012/12/02(日) 22:54:45.24 ID:e5qmX3AO
実装?シミュレータの?
56774ワット発電中さん:2012/12/03(月) 06:02:40.94 ID:xJ38czXN
話が変わるけど、
階層構造で記述したとき、最下層の信号を、I/Oピンに出そうとすると、
.aaa(bbb)という感じで、延々と引っ張り上げないといけない?
何か「top」とか書くと最上層までパスしてくれるとかは、ないんでしょうか。
57774ワット発電中さん:2012/12/03(月) 06:34:20.33 ID:TaZcITdZ
>>56
Verilogだと「インスタンス名.インスタンス名.….インスタンス名.変数名」で
下層モジュール内の信号を参照できるけど、合成可能な記述なのかは知らぬ。
58774ワット発電中さん:2012/12/03(月) 10:41:09.95 ID:AFI7m40H
すごいですね、そんなことができるなら使いたい。
使い終わったら、一行コメントアウトすれば、楽チン
59774ワット発電中さん:2012/12/03(月) 21:43:45.22 ID:CUu5oOJE
テスト用出力なら、
普通は全部出さずにマルチプレックスして出すよ。
でもどっちにしろ、引っ張り上げる必要あり。
つーか、どんだけ階層作ってんだよwww
普通は多くても3階層位だろ。
60774ワット発電中さん:2012/12/03(月) 22:17:31.37 ID:Lni5EqLP
4〜5階層は普通ですよ。
61774ワット発電中さん:2012/12/04(火) 08:51:48.01 ID:i8l06eaU
趣味のFPGAと仕事のSoCでは違うのだよ
62774ワット発電中さん:2012/12/09(日) 01:20:03.87 ID:DeCBsBox
前スレ >>932
parameter [REG_WIDTH-1:0] cmd = {{(REG_WIDTH-1){1'b0}, 1'b1}; とかでどうかな?
63sage:2012/12/09(日) 01:24:25.07 ID:DeCBsBox
parameter [REG_WIDTH-1:0] cmd = {{(REG_WIDTH-1){1'b0}}, 1'b1}; だった.
64774ワット発電中さん:2012/12/18(火) 18:16:48.33 ID:PU2eQvhS
VerilogHDLに関する質問です。

100バイトぐらいの配列を確保して、その配列をランダムアクセスしたいのですが、
高速化のためにその部分の処理を並列化したいのです。

reg [7:0] mem [0:99];

こう↑書いて論理合成した場合、巨大なセレクター回路が並列化した数だけ生成されるのでしょうか?

こういう処理を書くための定石があれば教えてください。
65774ワット発電中さん:2012/12/19(水) 00:39:34.19 ID:ELbnHg01
>その部分の処理を並列化したい
の意味がよくわからん。2ポートRAMみたいに出口を複数取るってことか?
66774ワット発電中さん:2012/12/19(水) 00:42:37.45 ID:Ujx1H5YG
配列はSRAM推定させるとき以外は使用しない方が無難だけど、
書き方によっては並列処理できるようにFF推定してくれるかもね。
処理系依存だからなんとも言えない。
6764:2012/12/19(水) 02:37:45.37 ID:2KT5/1kc
.>>65
> 2ポートRAMみたいに出口を複数取るってことか?

はい、そうです。

その場合、FFにするしかないと思うのですが、これがFFになったとした場合、
並列化する数だけ配列のindexからその配列要素に対応するFFへのセレクター回路が生成されることになるかと思うのですが
これがすこぶる大きな回路になるのではないかというのを心配しています。

他に良い方法は無いのでしょうか…
68774ワット発電中さん:2012/12/19(水) 03:28:33.69 ID:Ujx1H5YG
FF実装の場合、FFの面積に比べたらMUXの面積なんてたいしたことないと思うけど。
まずは適当な処理系で合成してみたら?
6964:2012/12/19(水) 04:25:39.33 ID:2KT5/1kc
>>68
なるほど。やってみます。
ありがとうございました。
70774ワット発電中さん:2012/12/19(水) 13:18:44.26 ID:shRQ1pJ5
>>68
横からですが、教えてください。
>適当な処理系
この場合の処理系とは、何を指すのでしょうか?
71774ワット発電中さん:2012/12/19(水) 17:15:55.95 ID:NihFckIP
>>70
いま使っているIC開発ソフト
それでどのように合成されるか見れば良いんじゃないか
72774ワット発電中さん:2012/12/21(金) 11:04:59.27 ID:3xZGm8ry
今回、初めてSPIのインターフェースをFPGAで作りましたが、
とても大変でした。
マイコンだと、あんなに簡単なので、
楽勝だと思っていたら、大変難しかったです。
みなさん、こんなに難しいのをやっているのでしょうか?
これならマイコンでやればいいのにと、つくづく思ってしまいました。
73774ワット発電中さん:2012/12/21(金) 11:31:18.64 ID:Eor/1cba
>>72 適材適所

・マイコンのみで
・マイコンを中心に、一部の処理をFPGAで
・FPGAを中心に、一部の処理をマイコンで ← これ、実はあまりやった事がない
・FPGAの中にCPUコアを実装して
・FPGAのみでシコシコと
・ディスクリートでシコシコと ← 今時こんな仕事が来る事はほぼない

予算、規模、納期、開発リソース、保守性などで適当なのを選べばいいだけ。
もっともあまり考慮せずに選んだものが下請けに落ちてくるような仕事も多いわけだが。

俺的にはSPI(+α)の機能が欲しいだけならSPIを持ってるマイコンのみでやるのが一番楽っぽいw
74774ワット発電中さん:2012/12/22(土) 02:04:32.79 ID:/W6E0JEe
待ちが発生する処理は、とにかくFPGAでは めんどくさい。
秋月液晶の初期化の待ち時間カウンタなんて、何bitいるのか。
15ms/7.5ns=2×10^12 
75774ワット発電中さん:2012/12/22(土) 06:42:10.07 ID:mdokIE7b
分周してから使えよ
76774ワット発電中さん:2012/12/22(土) 07:04:51.77 ID:atZCo3sc
マジレスすると分周してもトータルのbit数が減る事はないけどなw
77774ワット発電中さん:2012/12/22(土) 08:24:06.43 ID:mdokIE7b
えっ?
78774ワット発電中さん:2012/12/22(土) 11:20:35.44 ID:nyrc/w++
システムクロック100MHzで、1秒と1.3秒クロックを作り出すHDLを作り、上位からそれらを呼んだとき、
二つが別々の文集カウンターを持つのでしょうか?
それとも、途中からもらってくろのでしょうか?
前者だとすごくたくさんのFFを使うことになると思うのですが。
79774ワット発電中さん:2012/12/22(土) 14:19:25.61 ID:XTUNoJpw
自分で作るからどっちでも可能。
まぁ俺なら100usカウンタ作って共用するけど。
80774ワット発電中さん:2012/12/22(土) 14:20:24.41 ID:XTUNoJpw
違う違うw 100msカウンタだ。
81774ワット発電中さん:2012/12/23(日) 12:28:06.15 ID:dw7x006u
まぁ、条件次第だな。
その1秒や1.3秒が変わる可能性が無いなら共用でいいが、
出来た後に他人の思いつきで

「ちょっとこっち1.2999999秒にしてみてよ」

なんてことになる可能性が高いなら最初から分けておく。
82774ワット発電中さん:2012/12/24(月) 09:47:31.48 ID:bHS35B9l
例えばワンショト叩くような場合、イベントでたたいても直ぐ点灯しない。100msecカウンタに同期して
点灯する。誤差が100msecもでることになるので、不味い場合がある。
83774ワット発電中さん:2012/12/27(木) 21:25:42.47 ID:9K6s/T+b
そんなとき、遅い周波数の発振器を もう一つ使ってはどうだろうか。
低速発振器の信号を、高速clockでFFを2つくらい通して同期化する。
84774ワット発電中さん:2012/12/28(金) 16:47:33.74 ID:IrnWN+GQ
 それは原理的に無理だな。
85774ワット発電中さん:2012/12/28(金) 18:40:30.58 ID:w2fzb1KL
このスレを、高速道路走行中の車内で、携帯で読んでる人、いるだろうか?
あるいは、今日は最終日で、みんな帰ったのに、会社に残って仕事してる人もいるんだろうなあ
86774ワット発電中さん:2012/12/28(金) 22:17:55.86 ID:jgBm3rX7
自宅研究員…
87774ワット発電中さん:2012/12/28(金) 23:26:02.72 ID:w2fzb1KL
あ〜〜〜〜
やっと、Syntax Errorが直ったぁ。1日かかって見つけた。
直って嬉しい。
88774ワット発電中さん:2012/12/29(土) 15:23:00.72 ID:Pvo+k1iU
シンタックスエラーが取れないようじゃ、まだまだだね。
パッと見てビジュアルでわかるようにソースコードを書かないと。
89774ワット発電中さん:2012/12/29(土) 15:51:23.11 ID:AkknSvcZ
ソースを油絵で描けるようになったらアマチュア卒業ってホントですか?
90774ワット発電中さん:2013/01/03(木) 10:28:30.87 ID:uwp4bKhI
明けましておめでとうございます。

今年も元気にalways
91774ワット発電中さん:2013/01/07(月) 13:02:34.27 ID:MWYVJJvc
今回、初めてFPGAのソフト開発をしているのですが、
マイコンに比べて、コンパイルなどの時間がとても長くかかり、
開発時間は待ち時間ばっかりです。FPGAは、こんな世界なのでしょうか。
92774ワット発電中さん:2013/01/07(月) 13:14:40.72 ID:Mk/qOR/p
>>91
「ソフト開発」がNiosIIやMicroBlazeのプログラム開発の事を指しているのであれば
FPGA回路の再コンパイル無しでプログラムコードの更新を行うことも可能です。
93774ワット発電中さん:2013/01/07(月) 21:43:11.06 ID:Wh04JUNS
verilog初心者なんですが、modelsimでverilogのシミュレーションをしようと
思ったら、テストベンチで参照してる、下位モジュールの`define指示子(?)の
定数が「Macro `XXX is undefined.」ってエラーになっちゃいます。
Compile Orderを下位モジュールを先にしても駄目です。
どないしたらええのでしょうか。
94774ワット発電中さん:2013/01/07(月) 23:20:34.33 ID:btK9+kxG
参照する側も ` を付けてるか?
Cの感覚でいると忘れがち
9593:2013/01/08(火) 01:50:37.37 ID:LA34CP9D
>>94
付いてますー。動かそうとしてるのは半導体メーカー提供の
シミュレーションモデルとそのテストベンチなのでミスはないはずです。
テストベンチ内の、下位モジュールの`defineへの参照が全てエラーに
なっています。なんかこことか
http://stackoverflow.com/questions/6008017/global-constant-in-verilog
に、`define文は本来後続のファイルでも定義が有効なはずなのに
modelsimはファイル単位でコンパイルする云々と書かれてました。
ソースを変更せず、オプション設定とかで回避できないんでしょうか…。
96774ワット発電中さん:2013/01/08(火) 03:44:01.41 ID:t0NimdaI
>>95
includeで参照しているファイル(*.vhとか)の置き場所指定を忘れているんじゃないかな。
Compile→Compile Options→Verilog&SystemVerilog→Include Directory

ベンダー提供のテストベンチならばSimulationスクリプトも付属してるとは思うけど
vlog +incdir+<hoge> foo.vみたいな感じで指定してると思う。
97774ワット発電中さん:2013/01/12(土) 14:35:09.52 ID:AlKAEROA
日曜HDLerです。教えてください。

Verilogで書いているのですが、

ICの内部設定をする通信部分を作るとき、などに
将来のことを考えて、全パラメーターを可変出来るように作ろうとしますが、
その後、流用したことがありません。やるたびに少しずつ少しずつ仕様が違い、変更が面倒だからです。
だったら簡単に、設定はデフォルトにして、必要なところだけ書き換えるように書きますが、
そうすると、毎回ゼロから作る事になります。
その中間の作り方で、前回の物を持って来て改造することもありますが、
改造って、変更に手間がかかり、はじめから作るのと変わらないことか多いです。
みなさん、どのようにしていますか?

もうひとつは、変数名の付け方で質問があります。
wire [7:0] a; とか書くと、何の信号かわからないので、
wire [7:0] AD_ch1_read_data; とか書くと、長くて、タイプミスも出やすいです。
しかも、変数だけ見て、sugned か unsignedか、bit幅、入出力、論理とかを盛り込むと、
wire [7:0] AD_ch1_read_data_Uint8_input_buffer; とか
wire AD_ch1_read_data_Uint8_input_status_pos; とか ドンドン長くなります。
みなさん、どのようにしていますか?

Verilogの記述文法とかも大事だと思いますが、このような「運用の仕方?」も重要で、
知りたいのですが、なかなか良い本が見つけられません。
98774ワット発電中さん:2013/01/12(土) 16:37:21.67 ID:a2cEOORd
自分で自分のルールを決めるしかないな
現場だってその現場独自のコーディングルールを決めるとかするわけだし
根本的な解決策はない
具体的な例で言うと、俺ならAD_ch1_read_data_Uint8_input_status_posは
AD_rdata_sts_1 で済ますな
ビット幅を変数名に含めるとビット幅変えたときに変数名との整合が取れなくなるし
論理は「負論理は最後に_Nと付ける」と決める。statusとかreadとか、よく見る単語は
sts、r、とかの短縮後でも間違わないだろって感じで
99774ワット発電中さん:2013/01/12(土) 16:48:54.24 ID:ehlZxUEI
結線に使うwireには s_XXX、FFを生成するregには r_XXX を付けてる。
自分ルールを他人に布教していくと、他人の書いたソースも読みやすくなってくるのがイイ。
100774ワット発電中さん:2013/01/12(土) 17:24:15.24 ID:wOeKZ0/w
wire a; でいいよ。
見やすいコードを書いてくれ。
あと、適切なコメントも。
101774ワット発電中さん:2013/01/12(土) 17:39:20.38 ID:AlKAEROA
>>98,99
ありがとうございます。
やっぱり、独自にルール決めですね。
>根本的な解決策はない
これを聞いて、安心しました。「こうすべきだ」という定義があれば、その理由が見てみたかったです。

>布教していくと
確かに、布教ですね。(笑ってしまいました。すみません)

心配性なのか、変数を一目見ただけで、パッとわかるようにしたいし、
記述の体裁も気になってしかたありません。
たとえば、
wire [3:0] a;
wire b;
reg c;
というのはイヤで、
wire [3:0] a;
wire       b;
reg        c;
と縦を揃えたくて、記述するだけでとても時間がかかってしまいます。
単線ワイヤの場合でも、
wire [0:0] hoge;
と書く方法もあることを、先日本屋さんの本で知りました。それを使えば、全桁が揃うので、
検討中です。

一度だけ、プロの書いたソースをみたことがありますが、その人は、こんな事に全く気を遣っていなくて、
全部1スペース空けで、変数は3〜5文字でパッと見わからず、コメントはほとんどありませんでした。
(ゆっくりやっている時間がないんでしょうね)
102774ワット発電中さん:2013/01/12(土) 19:58:09.55 ID:ehlZxUEI
>>101
ソースコードの整形はエディタに任せてしまうのが良いと思います。>emacsのverilog-modeとか
そういう事に時間を使うよりは検証をじっくりやりたい。
103774ワット発電中さん:2013/01/12(土) 22:02:00.94 ID:wOeKZ0/w
プロというか、大手のライブラリでも
酷いのは酷いからなぁ。
104774ワット発電中さん:2013/01/13(日) 09:35:09.68 ID:CzliiVEp
Align.vimはよく使ってた
105774ワット発電中さん:2013/01/13(日) 12:24:20.09 ID:+z5D5Z2i
部長に信号名とか付けるコツをきいたところ

「フィーリングとかで」
106774ワット発電中さん:2013/01/13(日) 15:10:36.10 ID:Zc/z7CTh
納品前に、コメントをすべて消してしまうソフトってありますか?
全変数名を、AD_ch1_read_data_Uint8_input_buffer; → A1とか無味乾燥な変数名に変えるソフトってありますか?
107774ワット発電中さん:2013/01/14(月) 00:24:32.93 ID:hZzMt4aA
>>106
難読化ツールならググれば見つかる。
多分お望みの機能は実装されてるだろう
108774ワット発電中さん:2013/01/14(月) 17:36:59.09 ID:xMI0l5Tc
むしろ似たような間違った名前に変えておけ
109774ワット発電中さん:2013/01/14(月) 19:01:58.93 ID:DZiOYLW1
ソフト屋なら自分で作れよ
110774ワット発電中さん:2013/01/15(火) 13:02:13.37 ID:EX2TGRnX
>>106
要するにソースを見せたくないということなんだろうが、
納品する成果物について初めに話せんのか?
111774ワット発電中さん:2013/01/16(水) 21:17:26.81 ID:6c0ankfY
スレ見て思ったけど、今はVHDLよりVerilogの方が良く使われているの?
112774ワット発電中さん:2013/01/17(木) 02:25:59.05 ID:s6ZImxHj
はい、Verilogが主流です。
113774ワット発電中さん:2013/01/17(木) 07:03:49.36 ID:KPzb1QiM
XのツールはVHDL前提のような印象
114774ワット発電中さん:2013/01/17(木) 11:03:53.84 ID:ECOsVkn9
研究・教育では VHDL、企業などの実務では Verilog が多いってじっちゃんが言ってた。
115774ワット発電中さん:2013/01/17(木) 15:39:57.63 ID:demfH/6s
XilinxはEDKのIPがVHDLで作られてきたけど、AXI関連はVerilogなので
混乱してる模様
116774ワット発電中さん:2013/01/17(木) 17:34:02.12 ID:+MSWn5X1
>>113
VIVADOはVHDL タイミングシミュレーションをサポートしてないみたい
http://japan.xilinx.com/japan/j_prs_rls/2012/software/Vivado_Press_FAQ_JP_Final.pdf

Vivado Simulator は、VHDL および Verilog の両方でタイミングシミュレーションが実行できますか?

Vivado は、Verilog でのタイミングシミュレーションにのみ対応しています。機能シミュレーションについては、
Verilog および VHDL、そして混合言語をサポートしています。

Vivado が VHDL タイミングシミュレーションをサポートしないのはなぜですか?

VHDL タイミングシミュレーションは VITAL ベースです。これは非常に動作が遅いことに加え制限が厳しく、
また長期間アップデートが行われていません。
117774ワット発電中さん:2013/01/17(木) 22:58:17.80 ID:RFNw65ro
>>116
つまり?VITALのバイタルが0ってこってすね。
118774ワット発電中さん:2013/01/18(金) 01:45:12.04 ID:uJ1eB8WP
Verilogは、bit幅のチェックを もっと厳しくして欲しい。
119774ワット発電中さん:2013/01/18(金) 09:28:10.39 ID:nlJL9FDC
reg がワイヤーになるのやめてほしい。
別に always のなかに wire 書いたっていいじゃん。
120774ワット発電中さん:2013/01/18(金) 10:04:03.97 ID:S88tEUva
Verilogで一番面倒なのがregとwireだね
他にVHDLで出来てVerilogに出来ない事って信号のattibuteくらいだな

逆にVerilogで出来てVHDLに出来ない事はシミュレーションでの階層内の
信号取出しかな
121774ワット発電中さん:2013/01/18(金) 10:17:27.98 ID:SzvZbP40
(株)Verilog お客様相談センターの電話番号、
何番だっけ?
122774ワット発電中さん:2013/01/18(金) 20:23:46.10 ID:+H6Nw0nr
reg がワイヤーになるってどんな場合に起るんですか?
逆に ワイヤーがregになることはあるの?
123774ワット発電中さん:2013/01/18(金) 20:50:07.62 ID:5fRvEwPV
>122
どちらも起きない。
かなり奇妙な質問なので、今教わってる先生以外に別の先生さがしたほうがよい。

wireは「配線」の抽象化で、
regは「(配線上の)電圧」の抽象化。
124774ワット発電中さん:2013/01/18(金) 21:17:28.27 ID:nlJL9FDC
>>122
組み合わせ回路を always で書くと reg はワイヤーになる。
逆はない。
125774ワット発電中さん:2013/01/18(金) 22:01:11.02 ID:vXBy3EMF
SystemVerilogにしてからlogicしか使わなくなった
126774ワット発電中さん:2013/01/18(金) 22:12:45.62 ID:xlTukT9v
>>124
always の中に、wire 書けるの?
127774ワット発電中さん:2013/01/18(金) 22:25:41.10 ID:mSekMnpC
Verilogで許せないのは配列からビット取出しができないこと
hoge[n][7:0] みたいな書き方が許されない
VHDLなら hoge(n)(7 downto 0) って書けるのに
128774ワット発電中さん:2013/01/18(金) 22:27:23.51 ID:+H6Nw0nr
>>126
元の人>>119はverilogのwireを区別する意味でワイヤーと書いているんですよ
regと宣言した変数がwireとして扱われている。それがワイヤー

で、なんでalways中の変数はregでないといけないの?
>>123の後半となんか関係あるの
129774ワット発電中さん:2013/01/19(土) 05:19:43.81 ID:e6RWYLoX
>127
許せないのはそれだけか? おまいは寛容だな。俺はこんな糞言語がいつまで蔓延る
のかと、腹が立って腹が立って、、、、
まあでもSystemVerilogがでててすとべんちは少し楽になった。
130774ワット発電中さん:2013/01/19(土) 11:16:09.14 ID:6LQsoapV
assign されないといけないのが wire
そうでないのが reg

はっきり言って、さほど深く考えて決めたようには思えない。
131774ワット発電中さん:2013/01/19(土) 15:14:51.61 ID:6A99A/af
VHDLだと下記で済む記述が
 a <= (others=>'1');

VerilogだとBIT幅(N)を指定しないとダメなのがイラっとくる
 a = { N {1'b1} };

SystemVerilogだと「a = '1;」でシンプルに書けるんかな。
132774ワット発電中さん:2013/01/19(土) 19:00:13.69 ID:iY+W0XIk
verilogは言語としてはゴミだよな
ハード屋がプログラミング言語を見よう見まねで真似て作りましたって感じ
133774ワット発電中さん:2013/01/19(土) 19:10:38.11 ID:6LQsoapV
あるいはハードウェアからっきしのプログラミング言語屋が(以下略
134774ワット発電中さん:2013/01/19(土) 20:24:45.15 ID:sbescbS0
>>130
ちなみにregもalways/initial内ではassign/deassignできるけどな
135774ワット発電中さん:2013/01/19(土) 20:35:21.52 ID:geGkCQP7
begin, endが美しくない、嫌いだ
136774ワット発電中さん:2013/01/19(土) 20:57:37.86 ID:sbescbS0
>>131
a = ~0;
137774ワット発電中さん:2013/01/21(月) 20:13:53.26 ID:gyzCkZto
a=-1; も捨てがたい
138774ワット発電中さん:2013/01/22(火) 03:56:27.13 ID:5/Hi4Z9t
>>136 >>137
ビット幅省略すると32ビットになるから、それ以上のビット幅だと符号拡張されるか怪しいね
まあ a={N{1'b1}} でNをparameter/localparamするのが正しいな、LINTとかメンテナンス性考えても
139774ワット発電中さん:2013/01/22(火) 09:21:06.94 ID:F+nNITsM
怪しいも何も、32bit でしかないだろ?

ところで、parameter にしたとき、ちゃんと検証してる?
N=257 の時、動かねえぞゴルァ!とか言われるかもよ。
N=8 か 16 で使ってくださいってドキュメントに残すの?
140774ワット発電中さん:2013/01/22(火) 18:36:55.66 ID:1FtIV8Mi
>>137
a=-1;
の場合は32bitまでは符号拡張されるけど、それを超えるbit幅の場合は
verilogの実装依存になり、ある物は符号拡張され、ある物は符号bitに関係なく0拡張される
ですか?
141774ワット発電中さん:2013/01/23(水) 05:03:32.27 ID:B0uVnhBD
>>139
変更しないparameterはlocalparam、変更できるparameterはポートリスト内で宣言して、
ドキュメントのparameter一覧表に保証できる範囲を書く
当然保証した範囲では検証はやる
組み合わせを全通りやるか限定するかはケースバイケースで品質と工数と客の考え次第

>>140
そもそもそんな曖昧なコード書くなということだな
どういう動作するか迷う時点で可読性の点でアウト
せいぜい使い捨てベンチ程度でしか許されない書き方
142774ワット発電中さん:2013/01/27(日) 00:51:06.72 ID:6Ln8YbXS
Verilogなんて捨てちまえ。
これからの時代、ハードウェア記述言語なんてクソの役にも立たないよ。

悪いことはいわん。
ハードじゃなく、ハード寄りのソフトやりな。
143774ワット発電中さん:2013/01/27(日) 03:15:23.74 ID:fSP0Zp4D
ほう、例えば どんなことをするの?
144774ワット発電中さん:2013/01/27(日) 03:46:44.58 ID:utarI5rF
VHDLもVerilogも、ソフトウェアだよ。
「いや、ハードゥエアだ」と譲らない人もいるけど、
やってることは、ソフトウェアと何も変わらない。
145774ワット発電中さん:2013/01/27(日) 06:04:07.39 ID:jsWS49Qt
>>144
ASICとかやったことない人だね わかるよ
146774ワット発電中さん:2013/01/27(日) 08:44:35.24 ID:zJh8Q/wf
意味論が変にプログラミング言語っぽいけど、ハードウェアだということを考えながら
記述しないと、いくつも罠があるよ。

Bluespecあたりにとっとと移行してほしいのだが。
147774ワット発電中さん:2013/01/27(日) 10:07:30.00 ID:XeCiDTGc
ソフトとハードの両方をやってると、FPGAって規模が小さいので「バカチョン」
と思いがち。
 今回も簡単な画像処理やったんだが、論理的には簡単で1か月もあれば、、、と
思っていたら、タイミングシュミレーションや実機デバッグになると、ハード固有
のトラブルで無茶苦茶苦労した。
 1回ごとのテストコンパイルに無茶苦茶時間がかかるし、シグナルタップはノイズ
だらけで動いてるのか動いてないのか定かにわからない。
終わってみたら、2週間も納期オーバーでしかも徹夜の連続。
 こんだけ苦労したのに直ぐに忘れて、次の仕事ではいいカッコして
「1ヶ月もあれば十分です」なんてまた言うんだよな。WW
148774ワット発電中さん:2013/01/27(日) 10:48:49.59 ID:6Ln8YbXS
>>143
組み込み。特に、GPU、DSP。
149774ワット発電中さん:2013/01/27(日) 12:28:24.28 ID:utarI5rF
>>145
ソフトウェアは、ハードウェアを意識せずに書けると思っているの?
ソフトウェアだって、タイミング制約はあるし、シミュレーションもあるし。
FPGAと別格ではないよ。
150774ワット発電中さん:2013/01/27(日) 12:37:20.71 ID:pLMg/CKS
>>149
ソフトウエアの世界のタイミングは実行時間の問題だが、ハードウエアの世界のタイミングは
それにプラスして内部遅延の問題だぞ。それを同一視してどうするw
151774ワット発電中さん:2013/01/27(日) 15:23:29.75 ID:zJh8Q/wf
クロック単位を意識して制御できるソフトウェアエンジニアって、かなり特殊だと思うがw
152774ワット発電中さん:2013/01/27(日) 15:40:06.41 ID:2kEHqs1U
意識することは出来るけど
完全にクロック単位で制御するのは
マイコンじゃ無理だよ。
153774ワット発電中さん:2013/01/27(日) 15:59:35.59 ID:HfZzOUJh
>これからの時代、ハードウェア記述言語なんてクソの役にも立たないよ。

こんなこと言っている奴に限ってアセンブラできない
C言語ができたくらいでソフトができるつもりになっている
154774ワット発電中さん:2013/01/27(日) 16:06:34.19 ID:jsWS49Qt
>>149
ASIC作った無い人だねって質問に何でその回答?
何を言ってるかわかってないんだね
155774ワット発電中さん:2013/01/27(日) 16:09:22.24 ID:6Ln8YbXS
>>153
あのな。。。オレは、需要と供給のバランスのことを言ってる。

ハードウェア設計のエンジニアがどんだけ職にあぶれていると思ってるんだ・・
パイが少ないわけよ。
ソフト屋はハード屋より多いが、パイがデカイ分、食いっぱぐれる危険性が少ない。
中でもハード寄りのソフト屋は、パイがデカイ割に、人数が少ない。

悪いことは言わん。ハードはやめておけ。
156774ワット発電中さん:2013/01/27(日) 16:10:36.70 ID:ss622Ho1
PLD(HDL): 高速 (比較的) 単純作業
マイコン: 複雑な作業でそこそこのスピード
な使い分け (もしくは合わせ技) が一般的にいわれてるわけだが。
どうも専門家はどっちかに統一したがるね。FPGA 屋はなんでも FPGA でやろうとするし。
いや、マイコンだけで何もかもやるよりは不可能じゃないと思うけどあまり現実的じゃ
ないことも多い。
157774ワット発電中さん:2013/01/27(日) 16:16:55.54 ID:jsWS49Qt
需給のことで言ったら、ファームもそんなにいいとは思えんけどな
そういう話で言ったら上層へ上って行った方がいいだろ
158774ワット発電中さん:2013/01/27(日) 18:00:40.35 ID:Ez2z8X3E
FPGAやる人は、いつも上から目線でものを言うからキライ。
マイコン屋を下に見てる
159774ワット発電中さん:2013/01/27(日) 18:10:14.25 ID:6Ln8YbXS
>>158
心配するな。
マイコン屋の方が将来有望だ。
FPGA屋なんて、パイが小さすぎて、まったくつぶしが利かない。
160774ワット発電中さん:2013/01/27(日) 18:25:51.38 ID:zJh8Q/wf
今日の変な人ホイホイスレはここか
161774ワット発電中さん:2013/01/27(日) 18:53:56.35 ID:vYXYf6xd
ソフト屋なら仕事はいくらでもある。
介護職の仕事がいくらでもあるように。
どちらも使い捨てで単価が安いのが問題。
162774ワット発電中さん:2013/01/27(日) 20:51:29.59 ID:As0zlvOB
>これからの時代、ハードウェア記述言語なんてクソの役にも立たないよ。

そうだねぇ・・Handel-Cなんていうのも使ったことがあるけど、
限りなくCで、少し拡張したって程度だけど、面白かった。
シミュレーションはVisualStudioでやれっていうのも(笑)
Cと回路についてある程度知ってる組込み屋なら新しく覚える
ことは最小限で、とりあえず動くものはできるから。

まぁそういうものでサラッとぬるく作ってしまっても良い
ようなものもあるかもな。最終的にC風に書いた物から論理合成に
しても、コンパイルしてソフトウェア化してもよし。
163774ワット発電中さん:2013/01/27(日) 20:53:12.92 ID:HfZzOUJh
>FPGA屋なんて、パイが小さすぎて、まったくつぶしが利かない。

これからはマイコンもFPGAの中に入れる流れになっていくけどね
マイコンはディスコンになったら終わりだけど(特にやばいのがルネサス)
FPGAはディスコンになっても新しいFPGAに同じマイコンのIPを入れればいい

FPGAを毛嫌いしている奴は現実から目を背けているだけだな
164774ワット発電中さん:2013/01/27(日) 21:06:39.79 ID:6Ln8YbXS
>>163
学生さんは現実を知らんなぁ。
まぁ、がんばって、FPGA極めてくれや。

>これからはマイコンもFPGAの中に入れる流れになっていくけどね
はぁ?大学でお遊びやりたいだけやってれ!
165774ワット発電中さん:2013/01/27(日) 22:33:51.64 ID:7+pQqXR0
使用アプリにあわせて、ハードをダイナミックに生成しながら動くようになるんじゃないか?
166774ワット発電中さん:2013/01/27(日) 22:50:15.75 ID:6Ln8YbXS
>>165
は?
ありえない・・

例えば、スマホ内蔵のチップが全部FPGAに置き換わるとでも?
アリエナイ・・・

コスト面でも、処理能力面でも、サイズ面でも、信頼性の面でも…
大学で教授は、そういうアフォなこと教えてるのか・・・?
167774ワット発電中さん:2013/01/27(日) 23:09:26.52 ID:ss622Ho1
>>163
これからというか、すでにそういうことをやってるところはやってるわな。
でも使いたいマイコンの IP ってそんなに簡単に手に入るもんか?
古くさいマイコン (CPU) のクローンなんかは結構転がってたりするけど。

それに電源がキツイ (ボタン電池とかの) 組み込み機器へはまず FPGA なんか使えない。
168774ワット発電中さん:2013/01/27(日) 23:11:44.46 ID:jsWS49Qt
車載のチップをFPGAにするなんて怖すぎてありえない
169774ワット発電中さん:2013/01/28(月) 00:05:46.21 ID:CMkQwFao
>>163
ニッチ分野でライフサイクルが長いとそのやり方がいいな。
設計が同じでもFPGAを新しくするだけで最新プロセスの恩恵が得られる。
マイコンIPはMIPSやARMのクローンもOpenCoresにあったはず。

それとは別の流れで、FPGAにハードマクロCPUを入れるのもあるな。
Altera/Xilinx共にARMが入るようになってから注目されてるんじゃないかな。
170774ワット発電中さん:2013/01/28(月) 00:15:06.80 ID:CMkQwFao
>>168
どういう理由でダメなの?
171774ワット発電中さん:2013/01/28(月) 00:55:42.41 ID:HB2Q+7U6
車載でも高度な情報処理部分はFPGAが入ってるよ。 エンジン回りは
暴走したときのことを考えないといけないので、FPGAは怖い。
点火パルスなんかは10Kボルトもあるので、ノイズ発生が多い。FPGAは
ノイズには弱い。
172774ワット発電中さん:2013/01/28(月) 00:59:34.67 ID:XyYKJlzu
ドカタじゃHDLの話は禄に出来ないからな。盛り上がるのは雑談て
チョンにすら負けるようになるよな
173774ワット発電中さん:2013/01/28(月) 01:42:23.98 ID:CMkQwFao
>>170
FPGAがノイズに弱いというのは本当なの?
ロジック情報が入ったSRAMがソフトエラー起こすとかの構造的な問題なのか、
単に出回ってる品種の特性上の問題なのかどっちだろう?
174774ワット発電中さん:2013/01/28(月) 08:21:24.15 ID:ksAul3qv
ソフトエラーでしょ。
だからそういう過酷な環境かつ消えたら困る機器の少量生産には、
アンチヒューズ型のFPGAを使うとか聞いた。
175774ワット発電中さん:2013/01/28(月) 08:38:57.35 ID:/26XN64j
QuickLogic ナツカシス
176774ワット発電中さん:2013/01/28(月) 09:57:36.00 ID:6YoShPl0
FPGAって使った事無いんだけどSRAMからのロードって起動するたびにやるんだよね?車載って温度特性やノイズ耐性、価格以外に起動性能(起動速度)もかなり重要なんだけど大丈夫なの?
177774ワット発電中さん:2013/01/28(月) 10:47:56.89 ID:ksAul3qv
SRAMはFPGAの中にあって、外部のシリアルEEPROMから、SRAM「に」ロードする。
要求仕様にもよるだろうけど、CPLD使うんじゃないの?
(一応、不揮発性のFPGAも、ないわけじゃない)
178774ワット発電中さん:2013/01/28(月) 10:57:00.96 ID:CMkQwFao
>>174
シビアな用途にはSRAM型じゃなくて不揮発型のFPGAを使えってことね。
ちょっと調べたけど、フラッシュ型でもMLCは危険性があるらしいな。
ECC付きのフラッシュ型とか、アンチヒューズ型ならソフトエラーの心配は無いかな。

>>176
SRAM型だと全ロジックセル分のコンフィグレーションデータを毎回ROMから転送するから
それなりの起動時間はかかるけど、不揮発型ならその点の問題は無い。
179774ワット発電中さん:2013/01/28(月) 12:35:43.10 ID:S7EZq0Ns
>>171
エンジン周りじゃなくても暴走したときのこと考えろよ。
ブレーキとかエアバッグとかさ。
180774ワット発電中さん:2013/01/28(月) 18:56:51.54 ID:P0iDbVFz
>>179
暴走した時のリカバリはマイコンも一緒
エンジンくらいなら結構いい加減でも
回るしな
今ある自己診断がある程度ピンポイント
で化けた箇所示せてそこにパーシャル
リコンフィグ可能ならFPGAも選択肢に
はいるかもよ
AならHardCopy勧めてきそうだけどw
181774ワット発電中さん:2013/01/28(月) 19:39:00.07 ID:CMkQwFao
本気で信頼性確保するならリダンダンシー構成だろうな。
同じ回路を3つ並べて出力値を多数決で決める。
そういう場合に融通が利くのがFPGAの利点だ。
182774ワット発電中さん:2013/01/28(月) 22:14:40.03 ID:qUibnQB0
今時のFPGAならコンフィグRAMを常時CRCチェックするとかしてるでしょ

強烈なノイズが乗ったらRAMが化けるなんてのはマイコンでも同じ
むしろマイコンは内蔵/外付けのRAMの常時チェックなんかしてないよね
183774ワット発電中さん:2013/01/28(月) 22:58:39.29 ID:rfXuyrMP
RAMを常時チェックなんかできないだろ
どういう構造だよ
184774ワット発電中さん:2013/01/28(月) 23:05:13.05 ID:sdXYDlEK
(´д⊂)‥ハゥ
そういう問題じゃない・・・
やっぱ、学生さんが多いのか。。

FPGAのタイミング調整なんて、すんごい適当。
あんなもん車に使われたら、死ねるわ。

まぁ、実際には、通信基地局とかに使われるらしいけど、
・一箇所故障しても別経路で通信を維持出来る
・チップを作るほど数が出ない。
・アップデートが頻繁にある。色んな意味で。

みたいな特殊用途だよ。
後は、試作や、学生さんたちの勉強みたいな用途が大半だ。
185774ワット発電中さん:2013/01/29(火) 00:38:53.14 ID:5b27MBrm
タイミング調整?
186774ワット発電中さん:2013/01/29(火) 01:26:06.78 ID:GUcXP3CX
セットアップとホールドのタイミング解析のことだろ
あれ適当なのか
187774ワット発電中さん:2013/01/29(火) 02:09:59.47 ID:yKjJUN88
>>184
車載の話なら分かるけどFPGA自体の事言ってるの?手持ちのオーディオ機器や
NASのCPUとかそうだったし普通に製品として使われてると思うんだけど違うの?
ETのセッションとかでも画像処理や高速通信用途とかみたいなDSPの分野向けに
いろいろ製品出てるって言ってたし宇宙向けを売りにしてるものもあるぜ?
188774ワット発電中さん:2013/01/29(火) 07:47:57.90 ID:Pcmhc+hw
フツーにその辺の製品(テレビとか)に使われているよ>FPGAやCPLD

ちなみに、今話題wの航空機にも使われている。
http://www.actel.com/intl/japan/company/press/2010pr/100127_Boeing787.html
189774ワット発電中さん:2013/01/29(火) 08:18:20.04 ID:5b27MBrm
フツーのテレビでは使わないだろ。
セルレグザくらいならあるいは・・・

具体的な情報があるのか?
190774ワット発電中さん:2013/01/29(火) 09:17:49.58 ID:5KXtH85D
191774ワット発電中さん:2013/01/29(火) 12:59:34.82 ID:6tmjL3ik
>>182,183
今時のFPGAはコンフィグSRAMのCRCを常時チェックして、訂正までしてくれるみたいね。
http://www.altera.co.jp/devices/fpga/stratix-fpgas/about/crc/stx-crc-about.html
http://japan.xilinx.com/products/quality/single-event-upsets.htm

>>184
タイミング調整が適当というのはどういうことか説明して欲しい。

>>190
さすがに長い歴史があるからいろんな工夫がされてるんだな。
CPUコアを2個積んでロックステップ動作させてるのか。
192774ワット発電中さん:2013/01/29(火) 13:30:26.76 ID:3695d7++
>>190
ソニーの初代BDレコーダーにも入ってたよ。
でもテレビじゃないし、フツーの製品じゃない。
193774ワット発電中さん:2013/01/29(火) 14:05:54.88 ID:RcZOaehX
やっぱり空を飛ぶ物にはActelなんだ
割と近いところだと、これ
ttp://japan.xilinx.com/japan/j_prs_rls/2011/fpga/spartan-6-in-super-resolution-lcd-monitor.htm
これもフツーよりは高級品だな

当時のETで話聞いてきたけど、Spartan-6で全体は150MHzくらいで動作
一番速い部分は200MHzらしい
194774ワット発電中さん:2013/01/29(火) 15:50:16.43 ID:OxCik8DL
昔俺のクラウンは工事現場の近くを通るとプスンって、止まってたものな。
どうもノイズで、ETCが飛んでいたらしい。まあ今は軽自動車にのってるので
問題ないが。
195774ワット発電中さん:2013/01/29(火) 18:37:01.95 ID:4NMCrg7q
ETCでバーが開かないと焦るよな
196774ワット発電中さん:2013/01/29(火) 21:24:40.12 ID:+l1DIuJu
バーを吹き飛ばした事があるよ
197774ワット発電中さん:2013/01/30(水) 00:48:37.22 ID:l9g8mIxN
車に傷はつかない?
バーは、どういう材質で出来ているんだろうか
198774ワット発電中さん:2013/01/30(水) 20:45:03.60 ID:o309qOcj
スレ全部読んでないんですが、verirog対応無料エディタでいいのありませんか?
今は、サクラエディタに、ネットから定義ファイル拾ってきてインポートして使ってるんですが、
本文中ところどころ、コメントでもないのにコメントに近い色になっちゃって間際らしいけど、対処がわかんない。
199774ワット発電中さん:2013/01/30(水) 21:14:32.43 ID:nV3iMmlx
俺はgvim
万人向けじゃないな
200774ワット発電中さん:2013/01/30(水) 22:38:27.27 ID:ZDLmTWuk
素直にemacsでverilog-mode使えよ。
unix無いならVMwareにubuntuでも入れとけ。全部ロハだ。
201774ワット発電中さん:2013/01/31(木) 00:07:05.51 ID:ipdiZs4D
>>200
Windows版emacsもあるけどね。
202774ワット発電中さん:2013/01/31(木) 01:12:15.71 ID:KXXyalFe
>>201
Windowsに限定するならCygwinもあるな。
けどVerilogを扱うならunix環境を整えることを強く推奨する。
203774ワット発電中さん:2013/01/31(木) 01:44:29.86 ID:ipdiZs4D
>>202
まぁ、スクリプトとか豊富にあるので、バッチ組むには、便利だけどね。
ただ、シミュレーションまで、PCで実行するかは別問題かな。
204774ワット発電中さん:2013/01/31(木) 02:17:20.47 ID:9uvxmwnj
>>200
で、シミュレータは何を?
205774ワット発電中さん:2013/01/31(木) 12:30:52.68 ID:KXXyalFe
>>204
>>198はエディタのことだけ聞いてるけど、unixでフリーのシミュレーターが何がいいかということなら、
Icarus Verilogでいいんじゃね。
確かubuntuならapt-getコマンド一発でインストールできる。
Icarusは文法チェックが甘いからLINT目的でVerilatorと、
波形ビューワーGTKwaveも入れればVerilogの環境は最低限揃う。
206774ワット発電中さん:2013/01/31(木) 22:36:33.93 ID:V5uEoAko
とってもthanks
ubuntu に移行するわ
207774ワット発電中さん:2013/02/02(土) 17:24:06.41 ID:bk06Od1s
FPGAのライブラリ化ってどうやるの? ソースをコピーして使ってるけど
なんかいい方法ない?
208774ワット発電中さん:2013/02/02(土) 19:43:02.95 ID:eJe6trG7
>>207
ソフトウェア言語のコンパイル済みライブラリをイメージしてるなら、HWでは少し考え方が違うな。
合成レイアウト済みのデータを揃えることがSWでのライブラリに相当するけど、HWではメリットが少ない。
SWではルーチンを共通化してメモリを削減できるけど、HWでは呼び出した分だけ面積は消費される。
ASICではライブラリ化(ハードマクロ化)をやることもあるけど、FPGAのユーザーがやる必要はないと思う。

そうじゃなくて単にソースコード管理の問題で、よく使う部品(FIFOとか)のソースを共通化したいということか?
それなら適当に自分でライブラリ用ファイルを作って、使い回ししたいモジュールをそこに書いて、毎回プロジェクトに追加すればいいだけ。
209774ワット発電中さん:2013/02/02(土) 20:47:10.29 ID:bk06Od1s
目的はソース管理と重要なノウハウ部分を客先に出したくないこと。しかしpofファイルだけ
では客先がメンテできなくなる。

例えばLIB\Verilogというディレクトリにソースを入れておいて、prjAAAにプロジェクトを
作成する。そしてコンパイルしてdegug完了する。
 プロジェクトをコピー保存する。 客先に出す場合はこのコピーをだしたらいいのかな?
210774ワット発電中さん:2013/02/02(土) 21:16:51.52 ID:eXyVzoa+
商売で金とってやってんならそれくらい自分で調べろよ
211774ワット発電中さん:2013/02/02(土) 21:21:16.89 ID:hYX67XqH
ソフト屋って、ソース管理はきちんとやってるよな。


その割に開発効率悪そうだが。
212774ワット発電中さん:2013/02/02(土) 23:54:15.93 ID:eJe6trG7
>>208
ソースの暗号化がしたいのか。そういうのはツールに依存するから先にベンダー名くらい書けよ。
http://www.altera.com/support/kdb/solutions/rd10172006_472.html
http://www.altera.com/support/kdb/solutions/rd07312007_549.html
http://www.altera.com/support/kdb/solutions/rd06242008_7.html

# しかし最近はソース暗号化もIEEEで規格化が進んでるんだな。ツールの対応はまだまだだけど。
213774ワット発電中さん:2013/02/02(土) 23:56:09.70 ID:eJe6trG7
>>212>>209への返信
214774ワット発電中さん:2013/02/03(日) 00:28:23.35 ID:0eMdouKa
客先がメンテくらい出来るなら
RTLだせって言ってくると思うけどなぁ

まあソース中にコメントは入れとけ
215774ワット発電中さん:2013/02/03(日) 05:52:13.84 ID:zHJfYoaj
>212
 ベンダーはアルテラだよ。ピッタンコ。骨折れそうだけど読ませてもらう。

 暗号化というほどじゃなくて、一部分ソースを出さないで、全体がコンパイルかかればいいのだけど
暗号化になるのかな?
216774ワット発電中さん:2013/02/03(日) 05:55:12.61 ID:zHJfYoaj
>214
 普通は言ってこないが、言ってきても重要ノウハウを出さないためだろ。
217774ワット発電中さん:2013/02/03(日) 08:55:02.46 ID:iF5C4Ag/
実際のところ、たいしたノウハウなんてないんだけどね。
出来るのはコードをモジュールごと流用するくらい。
218774ワット発電中さん:2013/02/05(火) 13:31:41.54 ID:kTO9d7PV
教えてください。

Verilogで、module間をまたいで共通参照できる変数、Cで言う
グローバル変数みたいな宣言はできるでしょうか?
それとも、やはりmodule()の中に書いて上位に持ち上げて、
上位で別のところとwireで接続するしかないのでしょうか?
結構面倒でイライラしてます。
219774ワット発電中さん:2013/02/05(火) 15:51:21.94 ID:l/b957yF
Cでいうところのヘッダファイルを作ってインクルードすれば?
vri.vh
の中に書く。
220774ワット発電中さん:2013/02/05(火) 15:58:42.02 ID:rj3iAZf4
>>218
> それとも、やはりmodule()の中に書いて上位に持ち上げて、
> 上位で別のところとwireで接続するしかないのでしょうか?
そうです。せいぜい比較的いろんなところから参照できる module を作ることでしょうか。
まあ何にしても module にするしかありません。どちらかというと、C# の必ずクラスに
しなければいけないのに似ています。

そもそも Verilog で生成されるものは「回路」なので、まずその辺をきっちり
固めるべきでしょう。
221774ワット発電中さん:2013/02/05(火) 18:01:28.24 ID:3Q1GT/7a
>>218
グローバル変数とは例えばクロックリセットやモード値とかのことだな。
それ以外でそういうのが欲しくなるなら、構造化がうまくいっていない疑いがある。
本当に今のモジュールの分け方が最良なのかどうか、もう一度見直すべき。
各モジュールの目的がはっきりしていて、単体で動作可能なようにするといい。
目安としては、各サブモジュールのポートの説明文が一行で済むことが望ましいだろう。
決してコードの長さを基準にせず、大きくなることも小さくなることも恐れるな。
222774ワット発電中さん:2013/02/05(火) 19:19:07.02 ID:kTO9d7PV
>>220-221
ありがとうございます。
今回そう思ったのは、デバッグするときに、
下位の下位の下位層の信号を、FPGAのピンに出したいのです。
Global変数ができれば、top階層で定義(といってもポートリストに入れるだけ)で、
あとは、好きなところで使えば良いので、とても楽ちんだと思ったのです。

module の分割は、悩ましいです。
alwaysの分割も同じです。どれとどれを一緒に処理すれば見やすいかばかりを考えています。
FF毎にalwaysを書く人もいますが、見にくいので、1つのalwaysにマイコンプログラムのように
3つも4つも「<=」しています。見やすいです。

if( .... ) begin
   a <= SW;
end else begin
   a <= a;
end
という書き方に、未だになじめません。タイプ量が増えてしまうので、
if( .... ) begin
   a <= SW;
end
で済ませています。
223774ワット発電中さん:2013/02/05(火) 20:05:42.79 ID:3Q1GT/7a
>>222
RTLは変更せずに、制約ファイルだけでピンに割り当てするのはどうだろう?
合成時に階層がフラットになる設定なら、トップ階層に見たいネットは出てきているだろうし、
トップ階層のポート定義も実は必須じゃなかったと思う。
それと合成時に消えないようにKEEP制約を入れることは必要になる。
もしかすると階層フラットじゃなくても、「NET sub/subsub/net LOC=ball名」でできるかもしれない。
そういうのやってみたことないから自信はない。アイデアだけだから誰か知ってたらフォローして。
224774ワット発電中さん:2013/02/05(火) 20:16:16.05 ID:mHf1i2MC
QuartusIIに開いているIOに好きなネットリストのネット出せるやつなんだっけ?
サブスクリプションエディションのやつ

そんなのなかったっけ?
225774ワット発電中さん:2013/02/05(火) 22:27:47.17 ID:CmDYkQYu
SignalProbe?
226774ワット発電中さん:2013/02/05(火) 23:13:50.93 ID:TnIB21lO
つか、普通に`defineつかえばいいのでは・・・
defineなら、シミュレータの引数でも変更できるから、
同じテストパタンで、条件変更して検証したり普通にするが・・

もうちょいオマイラバカに教えてやると、
defparamてのがある。

シミュレーション環境構築するのに、defineやdefparam
使いこなせない奴は、素人。使えない奴。
227774ワット発電中さん:2013/02/05(火) 23:45:10.75 ID:xFBnIXX4
>>222
見やすいことは大切だよ。
always 分けるのは昔の書き方じゃないかな?
228774ワット発電中さん:2013/02/06(水) 00:39:20.45 ID:OIY34HLo
>>227
ありがとうございます。
今はISEがお利口になったから、そのような書き方が出来るんだよ、
と聞いたことがあります。
が、バラして書いたら、何が何だかサッパリわからないと思うんですが。
229774ワット発電中さん:2013/02/06(水) 01:12:33.41 ID:+l6/HgCp
alwaysはFFごとに分けた方がいい
タイミング解析でつまづいたときにわかりやすい
230774ワット発電中さん:2013/02/06(水) 01:30:38.45 ID:doj7y5od
>>228
always分けるのも、elseでループさせるのも、ハードウェアを意識してるからだよ。
RTL(レジスタ間の論理を記述)だから、どのレジスタ同士がつながってるか、
またどの程度の論理の深さでつながっているかを気にすることは大事。
その辺を疎かにすると、とんでもなくでかい論理になってスピードが出なかったり、
非同期の部分で罠にはまったりする危険性がある。
まあけど、always分けたり、elseでループさせたりしただけで性能が上がったりはしないけど。
今のスタイルでいいと思う。ただし、ハードウェアではどうなるかを想像しながらコーディングすれば、
より良いものができるはず。
231774ワット発電中さん:2013/02/06(水) 03:14:40.44 ID:xUTTZSTt
>>222
以下は、FlipFlopの回路図が容易に想像できるよ。

if( X==1'b1 ) begin   // XがHなら
   Q <= SW;     // 次回のQは、SWになる
end else begin     // XがLなら
   Q <= Q;      // 次回のQは、自分自身を上書き
end

SW--------切替器-----FFのD  FFのQ-----Q
      ↑
     切替信号X
          Clock----FFのCK
232774ワット発電中さん:2013/02/06(水) 09:08:00.70 ID:o92e0Gy0
if( X==1'b1 ) Q <= SW;

なら、イネーブル制御になるか、
クロックゲーティングになるわけだな。
233774ワット発電中さん:2013/02/06(水) 09:14:25.96 ID:I1qS5aGp
SWとXの信号が逆だと
しっくりくるね

あとalways抜くとFFじゃないかも知れない
ループとは書いてあるけれど
234774ワット発電中さん:2013/02/06(水) 11:15:34.07 ID:GW9B8cdH
>>222
順序回路は後者でいいだろうけど、組み合わせ回路はすべてのケースを書いておかないと
ダメだろ。勝手に作られるラッチをあてにしてはいかんと思う。
235774ワット発電中さん:2013/02/06(水) 12:13:26.56 ID:OIY34HLo
>>234
「<=」で書いてあるので、組み合わせ回路ということはないと思いますが
236774ワット発電中さん:2013/02/06(水) 12:23:45.80 ID:I1qS5aGp
>>235
ヒント
always@(*)
237774ワット発電中さん:2013/02/06(水) 12:53:31.13 ID:OIY34HLo
>>236
ありがとうございます。

always内の「どれか1つでも変化したら、スグ動作する」→組み合わせ回路と同じ
という、あれでしょうか?

なるほどです。
そのときは、reg宣言で、「<=」を使えるのでしょうか?
238774ワット発電中さん:2013/02/06(水) 15:28:07.73 ID:doj7y5od
>>237
文法上は使える。

「<=」とは「右辺の計算を全て終わらせてから左辺への代入をしてください」の意味。
それを利用すればFFの動作をうまく表現できる。
always @(posedge clk) begin
b <= a;
c <= b;
end
この例で1回のクロックエッジで a -> b -> c とならないことを防止するための工夫だ。

always @*の場合だと、計算結果が確定するまで何度もalways内が繰り返されるから、
結局は「<=」でも「=」でも同じ動作になる。
けどわざわざ「<=」を使う必要もないから、普通は「=」を使う。
ツールに余計な仕事をさせることになるし、ツールによっては「普通こう書かないと思うけど、何かのミスじゃね?」
とか言ってくるかもしれない。

Verilogは最初にシミュレーション言語として開発された経緯があるから、まずはシミュレーションではどうなるかを考え、
それからそれと同じ動作をさせるにはどんな回路になるか、という順に考えると理解しやすいと思う。
239774ワット発電中さん:2013/02/06(水) 20:28:36.15 ID:I1qS5aGp
この辺の説明何回したかわからんね

ただソフト上がりに適当な課題の回路書いてもらったら
すさまじいブロッキング文で焦った
240774ワット発電中さん:2013/02/10(日) 09:03:16.77 ID:9d2D2tfy
ソフト上がりにHDL書かせんなよ…
241774ワット発電中さん:2013/02/10(日) 13:37:25.28 ID:4oXXszul
Verilogで、

if(....) begin
を、
if()
begin
と改行後にbeginを書いてあるのを見かけますが、
なぜ、改行してから書くのでしょうか?
どちらでもOKなことは知っているのですが、下にbeginを書くと、
無駄に行数が増えてしまうと思うんです。

同様に、
begin endを書かないこともあるようです。
if(....)
  a <= a + 3'b1;
とかです。
常にbegin end を書いた方が、頭を切り換えなくてもいいのでミスも減ると思うのですが、
書くのが面倒なのでしょうか。

これらのように、書き方の違うソースを見るときに、僕は自分の書く形式に
改行を取ったり、begin endを付加したりしてから、内容を見るようにしています。
みなさんは、どのようにするのでしょうか。
242774ワット発電中さん:2013/02/10(日) 13:57:56.04 ID:9WMcjfYC
begin
end
は書かないと、ミスる元だね。

()に続けて書くか、改行してから書くかはどっちでも。
私は、改行して書くかな。
対応するbeginとendを探すのがキツイ。

エディタとかいいのあるのかもしれないけど、
未だにEmacsで書いてるな・・

Verilogに特化したエディタとかないのかねぇ?
243774ワット発電中さん:2013/02/10(日) 14:16:05.65 ID:4oXXszul
>>242
>対応するbeginとendを探すのがキツイ。
これは、どちらの書き方のときの話でしょうか。
if( .... ) begin
end
の書き方でも、インデントがしてあるので、対応はスグにわかり、不自由はしていないのですが。

ISEに付属のエディタなどで、対応するカッコがハイライトしたり、
Verilog予約語の色が変わったりするようですが、全〜部offにして、
黒一色にしています。色がチカチカして、思考の邪魔になると思うので。
ですので、自分用にカスタマイズしたエディタでしか、コードを書けないですが。

else を esle などと、タイプミスしたら、即座に教えてくれるエディタが欲しいですね。
他にも、begin を begim とか。
244774ワット発電中さん:2013/02/10(日) 15:00:37.02 ID:DakbnITj
begin の位置は好みとしか言いようがないな。
自分も昔は上下が揃ってた方がよかったので改行して書いてたが、
今は行数が増える方が嫌になったので if () の後に続けてる。
あと、ブロック内に処理が1行しかないときは begin、end は書かないけど、
判定がネストする場合は書く。
別にどれがいいとかはないけど、統一されてないのが一番良くない。

> の書き方でも、インデントがしてあるので、対応はスグにわかり、不自由はしていないのですが。
複数人でコードいじってると、インデントが嘘になることがある。自分でもややこしい判定いじってると
わけわからなくなることがあるがね。
スペルミスは、キーワードが色分けされるエディタ使ってればすぐにわかるだろ。
自分は vim 使ってる。最初は使いにくかったけど、使い込むと便利だね。
245774ワット発電中さん:2013/02/10(日) 15:20:23.85 ID:Rn8xU8ys
他人のコードにケチ付け始めるとキリがないからやめなよ。
自分のコーディングスタイルを決めてミスらないようにすればいいよ。
他人のことなんかしらん。
246774ワット発電中さん:2013/02/10(日) 15:42:15.68 ID:P3cnBT/z
>自分のコーディングスタイルを決めてミスらないようにすればいいよ。
それはそうなんだけど前任者のソースをメンテするなんてこともあるしな。
全部書き直したい衝動に駆られるけどそれでトラブルが発生するのもいやだし
結局違うスタイルが混在することに・・・
247774ワット発電中さん:2013/02/10(日) 15:53:28.83 ID:3Ei5oc8W
コーディングスタイルなんて何十年も前から話されてるけど
有効な議論がなされた試しがないんだから
そもそももはや問題視すること自体つまらんこととなってる感があるな
初心者は大いに悩めばいいと思うが、中〜上級者にとってはそういう感じだよってのは覚えてもらいたい
248774ワット発電中さん:2013/02/10(日) 16:01:33.41 ID:9WMcjfYC
まぁ、昔よりはコードの書き方マシになったと思う。
俺が欲しいのは、VisualStudioライクなエディターね。
Verilogは、未だにテキストエディターでコード書いてるから
デバッグ機能が貧弱・・
249774ワット発電中さん:2013/02/10(日) 16:30:42.90 ID:3Ei5oc8W
Visual Studioのエディタってここ数年で見違えるような高機能になったよな
そこは認めるけども、C/C++/C#/VBを書く人間の数と、Verilogを書く人間の数を考えると
Verilogに対してその進化は見込めないだろうね
自分で作ったらいかがか?
250774ワット発電中さん:2013/02/10(日) 16:42:57.37 ID:YCSZLAyC
弘法筆を選ばず
プロはエディッタを選ばす

仕事で書いてるのならどんなプアな環境でも最低限の成果を上げる必要がある。
これは効率を上げるために自分用にカスタマイズした環境のほうがいいという話とは別次元の話。
極端な話、Windows環境ならメモ帳だけでソースが書けない人はプロとは言えん。

普段emacsな俺はたまに客先での仕事でviで書かなきゃいけなくなると(特にVHDLだと)
効率が半分ぐらいに落ちるのでまだまだ修業が足りないと自覚するorz
251774ワット発電中さん:2013/02/10(日) 16:56:10.90 ID:3Ei5oc8W
それはたしかにそうだが、別次元の話ってわかってるならこっちの次元に割り込んでこなくてもいいよ
今は効率の話の次元ですからね
252774ワット発電中さん:2013/02/10(日) 17:02:24.14 ID:0pRK8arr
>>250
それはプロではなく職人だw プロは筆を選ぶよ。
仕事でお金を貰ってこそプロ。
成果を出すために効率を上げる。
そのくらいの損得勘定は当たり前だと思ってたんだが。
253774ワット発電中さん:2013/02/10(日) 17:15:19.75 ID:9WMcjfYC
>>250
>極端な話、Windows環境ならメモ帳だけでソースが書けない人はプロとは言えん。

まぁ、そういう考え方の上司いるわ。
最近のツールまったく扱えないくせにね。

なぜ、VerilogでVisualStudioのような高機能エディタが出ないか?
簡単なこと。売れないから。

HWのEDAツールてSWから見れば、アフォみたいに高い。
設計者は、望んでいるが、お金を握ってる上司からしたら
テキストエディタで十分とか思っちゃうわけ。

だから、開発もされないし、売れない。
254774ワット発電中さん:2013/02/10(日) 17:31:55.16 ID:Rn8xU8ys
edlin でも使ってろよ
255774ワット発電中さん:2013/02/10(日) 17:47:36.67 ID:8Ijaxzi2
vimで・・・って言ったら負けなんだろうか
欲しい機能そんなにないなぁ

ところでことわざの大元は
太公望は議事餌を選ばず で
道具が違っても同じ仕事が出来るってことじゃなかったっけ
256774ワット発電中さん:2013/02/10(日) 18:08:18.16 ID:Rn8xU8ys
数年前と同じ仕事しかできないんじゃ
どうしようもないと思うが
257774ワット発電中さん:2013/02/10(日) 18:56:19.13 ID:bV/0062x
>>254
edlinで開発効率が下がる奴はプロじゃないよね
だいたいプロにはHDLは不要
プロなら回路図設計でHDL並みの開発効率出せるのに、なんでHDLなんだろ
プロが減っって自称プロのゆとりが増えたからだよね
258774ワット発電中さん:2013/02/10(日) 19:40:07.28 ID:FdSqfPSi
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
259774ワット発電中さん:2013/02/10(日) 19:43:58.42 ID:9WMcjfYC
>>258
釣りだ。釣りw
260774ワット発電中さん:2013/02/10(日) 19:51:34.85 ID:bV/0062x
食いつけよ
261774ワット発電中さん:2013/02/10(日) 20:03:39.88 ID:3Ei5oc8W
   ∩___∩     /
   | ノ      ヽ  /
  /  >   < |/ 回路図で100k規模のLSI作れるんですか!?すごいですね!!
  | //// ( _●_)/ミ
 彡、     l⌒l  ノ
 / __  \ \ヽ
. (___)   \__)
. O|       /
  |  /\ \
  | /    )  )
  ∪    (  \
        \,,_)
262774ワット発電中さん:2013/02/10(日) 20:49:36.02 ID:bV/0062x
>>261
>すごいですね!!
そういわれるのが日本の真のプロ
自称プロのゆとりは他からすごいですねなんて言われない。馬鹿にされるだけ
263774ワット発電中さん:2013/02/10(日) 23:45:59.77 ID:oHH/dUcN
プロがゲシュタルト崩壊してきた
264774ワット発電中さん:2013/02/11(月) 19:46:08.21 ID:h194E091
太公望が出たから釣りをはじめるって....
265774ワット発電中さん:2013/02/13(水) 10:08:37.18 ID:MYlCwUDE
こんなのあった
http://www.codepatata.com/

Leisurely editor for VHDL and Verilog HDL

Code Patata will present a relaxing coding to you.
Now, experience fast and efficient coding by utilizing language-based code recognition and HDL code wizard.
Code Patata supports VHDL and Verilog HDL.

1 copy $299
266774ワット発電中さん:2013/02/13(水) 19:00:44.28 ID:lXLR8qfh
もうSystemVerilog,SystemCでいまさらVHDL/Verilogをって感じじゃないか
267774ワット発電中さん:2013/02/13(水) 19:04:06.91 ID:4lu/RU1u
>>266
そんなことはない。
未だにVerilogが主流だな。

SystemVerilogは、近い将来主流となる可能性はあるが、
SystemCは・・・多分消える。
268774ワット発電中さん:2013/02/13(水) 19:16:39.74 ID:Qcz7M5Ud
結局のところ主流はVHDLよりVerilogなん?
最近勉強しようと資料を漁り始めているんだけどVHDLから入った方が双方を
理解しやすいという話を聞いたんだけどVerilogだけ勉強するのでも問題なし
だったりするのかな?
269774ワット発電中さん:2013/02/13(水) 21:18:28.91 ID:mcr8kr+Y
CとPascalくらいの違いしか無い
どっちもどっち
俺はVerilogから入ったが、今は時代に逆行してVHDL派
270774ワット発電中さん:2013/02/13(水) 21:36:12.48 ID:4lu/RU1u
>>268
多分、世界的にもVerilogが主流。(日本は完全Verilog)
VHDLはヨーロッパとかじゃないかなぁ。

たまーに、VHDLのコード扱うことになるけど、まぁ大変・・
無理やりVHDL→Verilog変換したりしてデバッグを試みるけど、
正直手に負えない。
271774ワット発電中さん:2013/02/13(水) 21:37:22.73 ID:wK0rJnhm
日本人ならPARTHENON
272268:2013/02/13(水) 21:47:07.42 ID:Qcz7M5Ud
>>269
その比較って差があるのかないのか・・・w どっちも分かるけどさ

>> 270
なるほど。そういう意味ではツブシが効くのはVerilogかぁ。
ただ、片付けがVHDLの方が厳格なので論理化しやすいという話はどうなんだろ?
Verilogは適当な書き方するとダメとか書いてあったのでそれはそれで面倒だなとか
思ったんだけど・・・。まぁ、キチンと出力結果をイメージできれば問題無いのは
どの言語も一緒だけど。
273774ワット発電中さん:2013/02/13(水) 22:20:29.90 ID:4lu/RU1u
>>272
そそ、言語は、長いものにどんどん巻かれた方がいい。
最適かどうかなんてどうでもいいよ。
使う人が多くないと、結局自分が困ることになる。

英語がそうだし、Cだってそうだ。
274774ワット発電中さん:2013/02/13(水) 23:28:40.26 ID:51gJ9SvV
ISEとかのツールに、lintの機能が載ってくれないかな。
bit幅だけでも厳しくしてくれたら、なんとありがたいことか。
だからと言ってVHDLをやろうとは思わない。
XilinxでVerilogの組み合わせは、やってる人が少ないみたい。
275774ワット発電中さん:2013/02/13(水) 23:32:42.27 ID:G9eqXkmB
max2plusの頃からやってるので未だにVHDL。
AHDLには手を出す気になれんかった。
276774ワット発電中さん:2013/02/14(木) 02:59:50.93 ID:UW9dsWpS
Verilog VHDL の比較は、不毛。
Verilogが優れているのは歴然としているから。
277774ワット発電中さん:2013/02/14(木) 04:43:35.80 ID:EBsF4n7P
278774ワット発電中さん:2013/02/14(木) 12:05:25.39 ID:b2L7zGtX
>>272
適当に書くと適当に動いてくれるんだぜ。
なんて親切なんだ!
279774ワット発電中さん:2013/02/14(木) 13:51:54.22 ID:RHgKbNvU
>>278
それで良いレベルの物を作っているうちはそれで良いんだろうな。
正直 >>274 のlintが無いというのには衝撃を受けたが・・・。
完全なソフト屋な俺からするとハードに近い世界ってやり直しがきかない分ソフトとは
比べ物にならない位精度を上げるべき世界だと思っていたのでそういう仕組みが無い
というのは衝撃。FPGAはちょっと違うのかね。ASICになると話は違うんだろうけど。
280774ワット発電中さん:2013/02/14(木) 14:36:00.31 ID:EmHAps5N
FPGAは何度でもやり直しが効くんだが…
ASICは全く別世界
281774ワット発電中さん:2013/02/14(木) 15:21:29.42 ID:RHgKbNvU
>>280
心構えの話をしてるのだよ。ハード屋はそういう意識をもってやっているものだと
思ったのにやり直しが出来るからと適当にやるというのが驚きだと言ってるの。
ちょっと前に誰かが書いていたFPGAが試作にしか使われないという話なら納得だけどさ。
そもそもlintみたいな事前にバグ出しする機構は複雑になればなるほど、そういう
風につくり手のスキルが落ちれば落ちるほど必要になるものなんだがね。
282774ワット発電中さん:2013/02/14(木) 15:49:55.38 ID:EmHAps5N
なんだ、ソフトだけ屋の精神論か
283774ワット発電中さん:2013/02/14(木) 16:17:38.12 ID:RHgKbNvU
>>282
心構えという言葉は書き方が悪かったと思うがlintとかのツールを使って
モノづくりの精度を上げないのは何で?って話なのに精神論とか・・・二度目のビックリ
284774ワット発電中さん:2013/02/14(木) 16:43:31.28 ID:fy23T3lx
Verilogのテキトーさは、なんつーか独特のもんだから。
ハードウェア屋がみんなあーいうノリだと思ったら勘違い。
285774ワット発電中さん:2013/02/14(木) 18:33:44.70 ID:eRlpFKUz
おまえらバレンタインデーぐらいまったりと言語記述を楽しめよ
何が楽しくて自ら敵を作りたがってるんだかw

んと、何が楽しい日なんだorz 義理チョコ中止のお知らせなんて聞いてねえよ!!!
286774ワット発電中さん:2013/02/14(木) 20:16:42.90 ID:DRmNV1Eb
HDL書き屋はハード屋じゃないよな。コーダーだよな
287774ワット発電中さん:2013/02/14(木) 22:21:00.73 ID:eRlpFKUz
>>286
確かにあーだコーダー言う人が多いなw
288774ワット発電中さん:2013/02/14(木) 22:33:06.02 ID:kldPves8
ちゃんとハードウェアにもLintはある。
無知なだけ。

但し、ハードウェアの世界の開発ツールは恐ろしく高いからな。
ソフトみたいに買取じゃない。普通に1本年間ライセンスで100万〜1000万クラスのカネがかかる。
289774ワット発電中さん:2013/02/14(木) 23:39:51.42 ID:rS001Idv
>>281
>そもそもlintみたいな事前にバグ出しする機構は複雑になればなるほど、そういう
>風につくり手のスキルが落ちれば落ちるほど必要になるものなんだがね。
そんなふうにとらえるの?
自分で精一杯チェックして、さらにだめ押しでLintのチェックをかけて、
万全を期すという意味だよ。
290774ワット発電中さん:2013/02/14(木) 23:45:06.02 ID:T9wjlYxe
Lintなんてコーディング最後に初歩的なミスをチェックするためにしか
使ったこと無いけど。
最近のLintはアルゴリズムの不具合もチェックしてくれるのか?
291774ワット発電中さん:2013/02/14(木) 23:47:01.44 ID:hp0fum+h
品質上げるならlintってよりUnittestしろって話だと思うんだけど違うんかね
292774ワット発電中さん:2013/02/15(金) 00:33:50.25 ID:02Hv+StN
ここの住人は初心者しかいないのね・・・
293774ワット発電中さん:2013/02/15(金) 01:22:17.37 ID:Nctac0VA
lintはコーディングのスタイルを縛ることによって潜在的なケアレスミスとかを無くす為の物だけど・・・やればバグが無くなる物とか書いてないが?アルゴリズムがどうのとかアホか。

>>291
んなもん両方やる方が良いに決まってるだろ。まあユニットテストしたから完璧とかそういう物では無いのは理解してるよな?定期的にメンテしなければ意味ないし、テストそのものが間違ってる場合もある。
294774ワット発電中さん:2013/02/15(金) 04:21:43.13 ID:L9owHnMv
> そもそもlintみたいな事前にバグ出しする機構は複雑になればなるほど、そういう

バグ出しとか書いてあるよ?
295774ワット発電中さん:2013/02/15(金) 07:53:17.05 ID:83IsQwTL
SpyGlassにルールを追加してみんなが大好きなコーディングルールなんかをまとめて
チェックかけるってのは昔やってた事があるし、ある程度効果はあったんだけど、
いかんせんライセンス代と釣り合うか、という問題があったので最近はやってない。

まあルールをカスタマイズして使わんと時間の無駄になりやすいって問題もあるので
使えばOKというほどお気楽極楽なツールでもないけどね。ないよりはあったほうがマシ。
296774ワット発電中さん:2013/02/15(金) 11:25:45.82 ID:88OaSmlG
Alintっていくらぐらいするんだろう
297774ワット発電中さん:2013/02/15(金) 11:57:20.55 ID:Nctac0VA
>>288
良い商売だな・・・おまいらの経験総動員してルール作ってlint作った方が
FPGAでご飯食べるより儲かるんじゃない?w

lintは>>293に書いてある様に元々は間違えやすい記述や移植しにくい記述を
排除してコーディングルールを統一することによって潜在的なバグを減らし
可搬性を上げるもの。なので低スキルな人の底上げにもつながるものだ・・・
とか書いていて気付いたけど最も初期のlintはコンパイラの構文チェックの
強化版だったからその程度のイメージを持っている人が多いのかもね。
俺が普段使っているものはMISRA-C+先達の経験からの独自ルールみたいな
のをチェックしていたりするのでこういう認識になっている。
298774ワット発電中さん:2013/02/15(金) 14:32:02.11 ID:cFQ3N7ez
lint 通すために書き直すと却って読みにくくなるから
STARC ガチガチ+独自ルールとかやめてくれ
299774ワット発電中さん:2013/02/15(金) 14:59:51.91 ID:88OaSmlG
Cの話でHDLと全然関係ない話でスマンが、
NECエレのコードレビューで、「構造体は代入できません」
って言われて書き直しさせられたの思い出した
300774ワット発電中さん:2013/02/15(金) 23:40:39.37 ID:83IsQwTL
>>299
A) まだANSI Cに対応してない処理系(いわゆるK&R初版仕様)でコンパイルする必要があった
B) 文法的に書けるからってそれをされたらCPU TIMEの無駄遣いなので止めさせたかった
C) K&R初版で勉強した人で世の中まだまだそれが普通だと思っている
D) 単にCの文法をあやふやにしか理解してなくそう思い込んでるだけ

まあAなら仕方なし、Bなら正しい日本語で指摘してもらえばOK、
Cな人が未だに生き残ってるのかどうかは知らん、Dな人はレビューから追い出せw

現実的には何byte以下の構造体なら代入しちまってもいいけど、それを超える時は
old styleで書いてもらうってコーディングルール(笑)を作っとくのが無難ではあるな
301774ワット発電中さん:2013/02/16(土) 01:23:39.24 ID:RbU8NMfN
>>293
アホかって。。。だからそんなこと知ってるけど、バグ出しできるって
書いてる人がいたから最近はそうなのかと訊いただけなのだが。
(10年位前までは使ってた。今はその仕事から離れたので知らん。)
302774ワット発電中さん:2013/02/16(土) 09:12:05.92 ID:aOnll/Uf
>>299
サイバーワークベンチだっけ?
使えないよね。
303774ワット発電中さん:2013/02/17(日) 20:12:39.27 ID:QRPjKP1G
チョーVerilog, チョーVHDL
304774ワット発電中さん:2013/02/18(月) 13:40:25.60 ID:kktM0VkY
NHK Eテレで「NHK高校講座 チョー基礎から始めよう!」なんて番組
やってるぞ。視聴者に媚び売りすぎだろ。
305774ワット発電中さん:2013/02/18(月) 19:47:32.47 ID:NCXWsrMK
   |                    |
   |                    |
_,r'⌒|                    |⌒ヽ_
   |                    |   `ヽ
   |   (^⌒⌒⌒)\    (⌒⌒⌒ヽ   |     {
.:.::::::::|   ⌒⌒⌒  │  `⌒⌒⌒´   |::::.:...   )
:::/⌒|           |             |:::::::::::::.:...:(
:/へ│           |             |⌒ヽ:::::::::ノ
:l .:.::|           |             | ヘ l:::::ノ
゙| ::/|           |             |_   |´
.∨:ヽ!           /            |ノ /
 \_j           ヽ              |_,ノ  チョー基礎から
   |      /´ ̄ ̄ ̄`\        |
   |      〃           ヽ       |   HDLをはじめますよ
   |      {{_!_________j_}       |
   |                    |
   |                    |
   |                    |
306774ワット発電中さん:2013/02/19(火) 17:35:17.24 ID:H+FD7Gme
日笠陽子が習字やってるNHK-Eに今更何を驚けというのだ
307774ワット発電中さん:2013/02/19(火) 18:30:36.41 ID:9yzE0qr5
けっこう大きい。すごく大きい。
308774ワット発電中さん:2013/02/23(土) 21:04:20.14 ID:jd5lfd1G
スレ見ると駄目って言われている電子産業のスレって感じだな
コードがほとんど出ないって...
仕事でもこんな感じで雑談的なことが主業務じゃないのか
309774ワット発電中さん:2013/02/23(土) 22:14:45.03 ID:+phYkGrS
2ちゃんに仕事のコード出すバカはいないだろうwww
310774ワット発電中さん:2013/03/03(日) 00:36:47.77 ID:x3JB7+t2
>302
ttps://twitter.com/CWB13
サイバーワークベンチだろ
311774ワット発電中さん:2013/03/07(木) 21:33:43.00 ID:vVl7RQDY
教えてください。

ISE14.1でucfファイルの記述についてですが、

NET CLK LOC="P10" | IOSTANDARD = LVCMOS33;
とorで繋いで書いても、PlanAheadというありがたいソフトに、
バラバラにされてしまいます。

バラバラだと修正のときに2カ所も修正しなければならず、煩雑です。
1行でorで繋いで書きたいのですが、そのようなことは出来ないでしょうか?
要は、PlanAheadで読むのはいいけど、勝手に変えるなよ、という指示がしたいのです。

また、PlanAheadでucfを記入すると、これまた、複数の行になって生成されます。
これを、以前のPACEのように or で繋いで出力させる方法は無いでしょうか?
312774ワット発電中さん:2013/03/07(木) 22:25:18.94 ID:WD1nLQjh
>>311
HDLではそんな指示できません。諦めるように
313774ワット発電中さん:2013/03/07(木) 23:06:24.85 ID:vVl7RQDY
>>312
そうではなくて、ucfを自分で編集する前提です。
一番最初に生成するときは、PlanAheadで入力して、
その後の追加削除は、自分でucfを直接さわる、みたいな。

その「一番最初にPlanAheadが生成したucf記述」がタコなのでイヤだ、という話です。

ucfの中身も順番を整えたり、コメントを付けたり、自分流に表現したいのに、
PlanAheadが余計なことをしてくれるのです。
314774ワット発電中さん:2013/03/08(金) 00:21:52.88 ID:mBsHv75l
明らかにスレ違い。仕方ないから誘導してやる

【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel 18
http://uni.2ch.net/test/read.cgi/denki/1359245319/
315774ワット発電中さん:2013/03/08(金) 00:39:37.25 ID:VIKFbhtf
>>314
すみませんでした。
では、あちらに移動して質問することにします。
ありがとうございました。
316774ワット発電中さん:2013/03/09(土) 02:20:31.86 ID:cYEs0JmX
test
317774ワット発電中さん:2013/03/10(日) 10:56:31.63 ID:0D65oh0V
花粉症がひどいのですが、こういうときは、どうしたら良いでしょうか?
318774ワット発電中さん:2013/03/10(日) 11:31:14.68 ID:9VOiV40j
外出せずに家でひたすらコーディングすると良いと思うのです。
319774ワット発電中さん:2013/03/10(日) 23:13:42.13 ID:N7whMRC6
ttps://twitter.com/CWB13
CyberWorkBench実用化は嘘。
若林○敏はクビ
320774ワット発電中さん:2013/03/11(月) 21:40:39.15 ID:nwm/4MXp
lintしてもいいけど
その後の論理合成が100倍ほど大切なので
321774ワット発電中さん:2013/03/13(水) 07:53:40.74 ID:mSjoTAXy
教えていただきたく、よろしくお願いいたします。
次のような書き方(verilog)は、合成可能でしょうか?
(ポイントだけ書いています。module宣言やpointerのalways文などは省略してます。)

input [15:0] shift_seq;

reg [3:0] pointer; // 0-15を繰り返すカウンター

wire seq_flag;

assign seq_flag = shift_seq[pointer];

// seq_flagには、shift_seq[0]からshift_seq[15]の値が順繰りに現れる。
322774ワット発電中さん:2013/03/13(水) 08:21:47.75 ID:UfA2Muqo
イマドキのツールなら問題ない。
Quartus か ISE 入れてやってみたら?

seq_flag=shift_seq >> (15 - pointer);
のほうがそれっぽいかな。
323774ワット発電中さん:2013/03/13(水) 09:04:47.19 ID:bNTK8V3g
いっぱつ全ビット拾ってからシフトしてたら
レジスタがもったいないのね・・・
324774ワット発電中さん:2013/03/13(水) 19:27:12.03 ID:R0MsWIbn
seq_flag=shift_seq >> (15 - pointer);
は無いわ
assign seq_flag = shift_seq[pointer];
のほう(>>321の)がいい 可読性も高い
325774ワット発電中さん:2013/03/13(水) 21:17:49.95 ID:EyjSBSmk
>>432
ぼくもそう思った。
seq_flag=shift_seq >> (15 - pointer); って、どんな回路が生成されるのか
想像がつかない。
326774ワット発電中さん:2013/03/13(水) 21:31:06.38 ID:bNTK8V3g
>>325の現象は
デジタル風に言えばビット化け?
327774ワット発電中さん:2013/03/13(水) 22:18:41.53 ID:R0MsWIbn
ちなみに合成は可能だよ
328774ワット発電中さん:2013/03/13(水) 23:07:07.14 ID:Co7SKrPm
は?合成可能?
shift_reqがinputで、pointerがreg?

つか、ココは素人しかいねーのか・・
329774ワット発電中さん:2013/03/14(木) 00:29:52.66 ID:PO3+WnKg
お前こそ何だ
普通に合成可能だっつの
330774ワット発電中さん:2013/03/14(木) 01:17:58.17 ID:ffrAxfTL
case文で書く方が無難
331774ワット発電中さん:2013/03/14(木) 10:21:34.20 ID:BzrEiv7U
case文って、あーた
一行で書けるものを、なんで20行も使うの?
>>321の書き方で良いじゃん
332774ワット発電中さん:2013/03/14(木) 13:13:58.32 ID:d/slR5Ly
俺も、そう思う
333774ワット発電中さん:2013/03/14(木) 14:01:51.76 ID:LASry0wJ
VHDLなら、>>321は、どう書けばいいの?
334774ワット発電中さん:2013/03/14(木) 14:52:14.11 ID:ao/k+j0j
>>328
是非、玄人の記述を見てみたい
335774ワット発電中さん:2013/03/14(木) 20:35:12.54 ID:zo9gl166
質問者が出したソースが中途半端なだけで
回答も中途半端でもしょうがない

ただバイナリカウンタでデコードしてそのまま出したら
髭がすごそうだなぁ・・・
336774ワット発電中さん:2013/03/14(木) 21:44:47.33 ID:zgWcfqB2
まぁFPGA内部で使う信号ならいいんじゃない?
outputじゃなくてwireで記述してるし。

VHDLならこんな感じ。(verilogよりちょっと文字数多目)

seq_flag <= shift_seq(conv_integer(pointer));

6,7年前にXでやった時は出来なかった気がするけど
今やったら普通に出来た。
337774ワット発電中さん:2013/03/14(木) 21:58:18.05 ID:zo9gl166
conbってVHDLで使える関数?
ぐぐってないけど

process文ぐらいから見たいなー
338774ワット発電中さん:2013/03/14(木) 22:42:47.33 ID:z1pEe55S
>>336
できました
ありがとうございました
これは便利
339774ワット発電中さん:2013/03/15(金) 09:29:29.56 ID:dV7z+0XG
>>335
ワンホットとかジョンソンにしてもヒゲは出るんじゃね?
そのままI/Oに出せるほどの幅もなさそうだし。
何が言いたいんだ?
340774ワット発電中さん:2013/03/15(金) 13:42:48.55 ID:IGB1iigt
グレイカウンタならヒゲは出ないよ
341774ワット発電中さん:2013/03/15(金) 13:50:14.15 ID:4PngK53s
グレイカウンタにヒゲが出るかどうかと間接参照の結果にヒゲが出るかどうかは別だよね(´・ω・`)
342774ワット発電中さん:2013/03/15(金) 15:45:01.46 ID:0NRZnrqA
>340
普通のカウンタからXORでグレイコードにする手抜きな作りだとヒゲ出るんだぜ。
入門書の善し悪しの判別に使ってる。
343774ワット発電中さん:2013/03/15(金) 20:19:22.76 ID:eZoFUQzX
それはグレイコードにでこーどしてるだけちゃうん?
344774ワット発電中さん:2013/03/15(金) 22:44:34.49 ID:hX0pYjsN
やっぱ贅沢にFFに拾ってから
シフトレジスタしかねーな



と誘導してみる
345774ワット発電中さん:2013/03/16(土) 02:51:35.28 ID:lVeDkTFx
しかもメタスの対策に、FFを2段入れてください。
346774ワット発電中さん:2013/03/16(土) 09:01:30.95 ID:8hieWMnf
何でいつの間に非同期の話になってんだよ
347有能な政治家を貶め、無能な政治家を持ち上げ国力を削ぐ在日カルト:2013/03/17(日) 01:27:03.33 ID:k8xNq4Aj
★マインドコントロールの手法★

・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法


↑マスコミや、在日カルトのネット工作員がやっていること

TVなどが、偏った思想や考え方に染まった人間をよく使ったり、左翼を装った人間にキチガイなフリをさせるのは、視聴者に、自分と違う考え方をする人間が世の中には大勢いるんだなと思わせる効果がある。
..
348774ワット発電中さん:2013/03/25(月) 19:01:06.57 ID:SQB4Lsin
ダット落ちというのは何時起きるんです?
349774ワット発電中さん:2013/03/31(日) 09:30:37.20 ID:/8g/R/vR
未だにテープ使ってるのかよ
350774ワット発電中さん:2013/03/31(日) 15:38:56.87 ID:5ja9i1wF
紙テープと穿孔装置、FORTRAN77は、未だに現役ですが、何か?
351774ワット発電中さん:2013/04/05(金) 04:03:29.76 ID:Wr7Ki1x+
H68/TRって知ってる?
352774ワット発電中さん:2013/04/05(金) 09:34:27.17 ID:3Gi+TK1V
いにしえの6800 CPUを使ったトレーニングボードのことかい?
353774ワット発電中さん:2013/04/05(金) 12:26:14.59 ID:j9zRJj/+
電卓みたいなコンソールのやつだね。
TK80が全盛のときに、持ってるやつが羨ましかった
354774ワット発電中さん:2013/04/05(金) 21:06:11.98 ID:Z5bOeHgB
7セグLEDで強引にアルファベット表示するやつだね。
355774ワット発電中さん:2013/04/06(土) 01:28:13.28 ID:GiQ4r3cN
もともとトレーニングキットと言われるように、大型コンピュータ技術者の教育用に
開発されたんじゃなかったっけ? それが、一般人に評判になって・・・・。

日本製でも、いろいろあった。日立、東芝、NEC、富士通、シャープ。
L-kit16とかに憧れた。
356774ワット発電中さん:2013/04/06(土) 02:30:24.33 ID:oXQSDMKS
TK80→PC80,88→PC98 住友グループのお荷物から優等生に
しかし、おごる平氏は久しからずのたとえ通り
DOSVで風向きが変わり海外PC事業からの撤退
98時代は\498,000定価の殿様商売も今は昔。
\15,000で投げ売りし、見せかけのシェア確保するも
赤字体質から脱却できず201x年PC事業から撤退する
その数年前には携帯電話事業からも撤退しており
一体何で食ってくのよこの会社?
357774ワット発電中さん:2013/04/06(土) 13:56:13.43 ID:2JSLkzdr
教育の対象としては、大型コンピュータの技術者というよりは、制御機器とかの設計者。
358774ワット発電中さん:2013/04/10(水) 21:02:22.91 ID:r5xLmS+X
MAXシリーズってIPのROM使えないのねー
359774ワット発電中さん:2013/04/10(水) 22:15:42.21 ID:NWpDpEDb
え。データシートも見ずに組んでるの?
せめてデバイスの概略仕様だけでも把握しようよ。
360774ワット発電中さん:2013/04/11(木) 07:19:51.22 ID:i4mDHPPL
ぐぬぬ

でもRAMはあるのよねー
Megawizardよくわからぬ

ROM組んで合成してみる
361774ワット発電中さん:2013/04/11(木) 22:32:32.10 ID:gTikp3Sv
RAMで内容をコンフィグ時に初期化すれば良くね
362774ワット発電中さん:2013/04/12(金) 21:46:25.82 ID:dZDsvmBj
ワンタイムRAM?
Megawizardについてるっけ
363774ワット発電中さん:2013/04/15(月) 23:47:34.57 ID:7CJdlrcm
https://twitter.com/CWB13
NECのサイバーワークベンチなのか?
364774ワット発電中さん:2013/04/16(火) 07:20:53.24 ID:7r1YZEY6
あの会社
集団ストーカーとかで人が亡くなってるんだよな
社員は、みんな魂売ってる
365774ワット発電中さん:2013/04/17(水) 19:50:55.72 ID:PovPqCxp
VHDLのtype文でステートマシンの各状態を列挙してます。
このステートの状態に応じて接続するcomponent内の動作も変えたいんですが、
その場合はそのtypeのsignalをcomponentに直接接続する事ってできますか?
それとも、ステートに応じたstd_logic_vector等のsignalを作って接続する必要がありますか?
前者が可能な場合は記述方法を教えて下さい。
366774ワット発電中さん:2013/04/17(水) 20:20:31.56 ID:tk6Uksm2
signal作って接続すれ
列挙typeそのままって出来なくもないが、やめといた方が無難
367774ワット発電中さん:2013/04/17(水) 20:24:44.90 ID:PovPqCxp
package使えばいいんですね、自己解決しました。
…と思ったら。やめたほうがいいんですか? 理由教えて下さい。
368774ワット発電中さん:2013/04/18(木) 13:07:04.89 ID:vx7ytuHT
>>367
pakageでtypeを宣言すればやりたい事は出来る
ステートマシンの状態信号は合成の最適化でエンコードされるんだけど
状態信号が他のモジュールに接続されるとその最適化の妨げになる、
ような気がする
本当のところはどうか分からん
369774ワット発電中さん:2013/04/18(木) 15:38:01.61 ID:Vddj9MJ2
Xilinxのツールで試してみたら、状態に当たる信号をI/Oに引き出していても引き出してなくても
同じ最適化(状態を特定のエンコードへ変換)は行われているみたい。
外部に出ている信号は変換後からロジックで作られていた。

常にこうなるとは言えないけど、なんか無駄なことやってるような…

ステートはステート、信号は信号で分けたほうがいいかな。
370774ワット発電中さん:2013/04/18(木) 15:51:07.13 ID:KtuRvUJh
>369 状態に当たる信号をI/Oに引き出していても引き出してなくても

そらそうよ。ステートマシンから見たら
ステートに合わせて「適当にピンを上げ下げする」というお仕事の一つに過ぎないもの。

特別扱いして、その出力の手間を最小してやる義理はないっしょ。

本来の仕事向けのステートをあっちこっち引っぱりまわすラインの数とか遅延時間とかを
小さくするほうが優先になるのは自然。
371774ワット発電中さん:2013/04/18(木) 23:25:15.43 ID:g2KJzzaY
NEC工作員乙

https://twitter.com/CWB13
サイバーワークベンチだな
372774ワット発電中さん:2013/04/19(金) 02:11:40.86 ID:43xLSmdH
>>366は単にpackage使えばいいこと知らなかっただけだろw
もし最適化がファイル単位でしか掛からないと思ってるんだったらいつのロートルだ?
373774ワット発電中さん:2013/04/19(金) 09:04:29.44 ID:Tun3dxXZ
ファイル単位って…?
VHDLにはファイルの概念は無いと思うけどね
374774ワット発電中さん:2013/04/24(水) 12:55:38.02 ID:AmsFV4Vo
ModelSimでvsimコマンドの-doで指定するファイルで下記のようにすると信号を固定できます。

force -freeze /testbench/top/wire1 '1'

信号の値を取得するにはどのようにすればよいでしょうか。
イメージは下記のように使いたいと思っています。

if {/testbench/top/wire1 == 1} {
noforce /testbench/top/wire2
}
375774ワット発電中さん:2013/04/26(金) 08:33:15.64 ID:c9vOtMM+
そういうふうにテストベンチで書いたらだめなの?
Modelsimでしようとせずに
376774ワット発電中さん:2013/04/26(金) 10:34:46.62 ID:pWCEQLnJ
?
Quatus, Modelsimでテストベンチ実行させればいいだろ
377774ワット発電中さん:2013/05/02(木) 07:10:36.55 ID:hohf4zF+
>>376
verilogのテストベンチ記述内でforceしたり信号参照するって意味では
378774ワット発電中さん:2013/05/11(土) 11:15:43.45 ID:waomYnZo
ザイリンクスのISEは、今でも
ベリログを 一旦VHDLに変換してからコンパイルしてるでしょうか?
379774ワット発電中さん:2013/05/11(土) 14:18:52.79 ID:OpdMt0D5
ステートマシンの記述で、
http://www.mirai.ne.jp/~tmrkasai/workshop/vhdl/index2.html
ステートのsignalをIS_STATEだけにして、
センシビティリストがRESETとCLKのprocess文ひとつにして、
CLKの立ち上がりでIS_STATEに次のIS_STATEを代入するんじゃ
ダメなんでしょうか。理由を含めて教えて下さい。
380774ワット発電中さん:2013/05/11(土) 19:11:38.79 ID:S1pt4hr9
>>379
動けばそれでも良いんじゃない
回路の設計とらえるかソフトの設計とらえるの違いって気がする
参照先は回路設計としてとらえ>>379はソフト開発とらえているって感じ
そのステートマシンを回路図ベースの設計でやってみるのも良い
参照先のはVHDLを使い典型的なステートマシンの回路ブロック図を回路(組み合わせと順序回路)
にして目的のステートマシンを実現
381774ワット発電中さん:2013/05/11(土) 19:46:18.64 ID:OpdMt0D5
レス有り難うございます。
ということは、参照しましたページが少しだけ実際の回路に近い
抽象度の低い記述というだけで、各々の場合に最終的に合成される
回路の内容や規模、回路の信頼性などに差は出ないと考えて
大丈夫なのでしょうか(合成ツールにもよるのかもしれませんが)。
382774ワット発電中さん:2013/05/13(月) 11:00:36.04 ID:WGimcaGu
ほとんど無いと考えて良いよ
383774ワット発電中さん:2013/05/13(月) 20:44:29.70 ID:2AoMhB6P
>>381
回路なんて意識しないでいいよ
今のHDLでの開発はソフト開発と同じ。回路の内容や規模は開発ツールに任せる
ベテランで相当な実力あれば別だけど、
アホ設計者が回路を意識してHDLすると今の優秀な開発ツールが力を発揮できなくて、
設計者レベル相当の糞な回路になる。
開発ツールにステートマシンビルダー機能あれば、それ使え。自分でやるより
デバイスに合った良いものを作成してくれる。他に回路も同様、
で、もし無ければ自分で自己満足の糞回路をHDLする。
384774ワット発電中さん:2013/05/14(火) 09:10:10.10 ID:/tywi1vf
DFTとかECOとかケアしないならご勝手に
FPGAなら最先端プロセスかつプログラマブルなんで
気にしないでいいだろう

ところでFPGAに信頼性ってあるっけ?
385774ワット発電中さん:2013/05/14(火) 11:22:49.43 ID:RREuBIzB
がじぇるねの SAKURA 良いな。安いし高機能。無駄にメモリがでかいけど。
アルファプロジェクトの1万ほどするボード使ってたけど次からこっちにしよう。
しかしいつ終わるかもしれないサービス使って開発する気にはなれんな。
386774ワット発電中さん:2013/05/14(火) 18:14:19.48 ID:bEBmF2ZQ
>>384
>DFTとかECOとかケアしないならご勝手に

DFTて何?ecoと併記してるってことは discrete Fourier transform. のことじゃないだろーし
Drive Fitness Test?
Design For Test?
Density functional theory?
DuPont Fabros Technology?

いっぱいありすぎてどれかわからん
387774ワット発電中さん:2013/05/14(火) 19:55:37.72 ID:RREuBIzB
ごめん誤爆。今頃気づくのもすげえな。
いつの間にスレ変わってたんだろ。
388774ワット発電中さん:2013/05/14(火) 21:35:06.63 ID:/tywi1vf
>>386
ヒント:RTLでケアできる奴

しかしよくもまぁそんなに見つけてきたもんだ
尊敬する
389774ワット発電中さん:2013/05/15(水) 10:36:15.11 ID:6s0U9fTB
>>385 も明らかにルネサススレの誤爆っぽいし、
誤爆2連発とは珍しいな
390774ワット発電中さん:2013/05/15(水) 22:06:32.77 ID:sFKPsxWu
>>386でしらんやつ多いし
一個ずつ調べてみよう

携帯からだから調べてたらパケ死ぬが
391774ワット発電中さん:2013/05/18(土) 18:35:20.92 ID:yjCJUCi0
【論理力テスト】次の文章は正しいようで実は論理的に間違っています。どこがどうおかしいか貴方は説明できますか→「何度学校を変わってもいじめられるのは、いじめられる側に原因がある証拠だ」…答えは「感情自己責任論」で検索
392774ワット発電中さん:2013/05/18(土) 19:20:41.67 ID:CyOsmp55
>147
signaltapはFFにならない信号が上手く見れなかった気がする。
といっても、現在までのすべてのバージョン/石で確認したわけじゃないけど。
393774ワット発電中さん:2013/05/18(土) 20:10:25.84 ID:PoUo3/M2
何度学校を変わってもいじめられるのは、いじめられる側に原因がある可能性が高い

これで間違いないように思うが
394774ワット発電中さん:2013/05/18(土) 20:17:01.90 ID:PoUo3/M2
バーンテストでは何の問題もなく試験にパスするのに
1ヶ月使うと異なるメーカのメモリが次々こわれるのはMB側に原因がある可能性が高い

GA-7ZX 実際回収騒ぎになりました
395774ワット発電中さん:2013/05/18(土) 23:54:29.85 ID:CyOsmp55
>156
部品点数を減らしたいって希望があるので、自陣営のデバイスで大部分のことをできると言わざるを得ない
さすがにソフトコアCPUで全部ってのは無理があるから、X社もA社もまじめにハードコアCPUを積みだした。
(もともとATOMつきFPGAとかPowerPC入りFPGAとかあったけど)

>166
全部はないだろうけど、一部はあるかもしれない。
旧いプロセスのASICと新しいプロセスのFPGAなら性能はトントンで、ASICを新規に起こすことはどんどん難しくなってきている。
運よく既存のSoCで全機能を実現できりゃいいけど、どうしてもカスタムロジックを積まなきゃならないなら...
396774ワット発電中さん:2013/05/19(日) 02:17:47.77 ID:uBDczG/B
リコンフィグでコーデックごとに論理組み直すのってソニーがウォークマンで
やっていたような
詳細が公開されてないからどこまでちゃんとやってるかは知らんが
397774ワット発電中さん:2013/05/19(日) 04:56:47.52 ID:n73FFv4u
最新のFPGAってソフトだとPowerPCどれぐらいのクロックで動くの
398774ワット発電中さん:2013/05/19(日) 05:03:21.30 ID:n73FFv4u
ウォークマンてCPUじゃなくてFPGAでデコードやらせてんの?
いつの話し?今でしょ じゃないでしょ?
399774ワット発電中さん:2013/05/19(日) 05:19:41.24 ID:TaxzmBHR
>>398
FPGAにやらせるんじゃなくてSoC内のDSPじゃない? いくらでもソフトウェアで組み直しできるし。
400774ワット発電中さん:2013/05/19(日) 05:46:15.31 ID:uBDczG/B
>>398
wikiだが、
>当時現れた数少ない実用製品例をソニーが2002年から自社の携帯機器であるウォークマンやPSPシリーズに、動的再構成技術であるVME(Virtual Mobile Engine)として採用したが、その詳細は明かされていない。

これ
今使ってないってことはあんま良くなかったんだろう
401774ワット発電中さん:2013/05/19(日) 07:07:05.39 ID:L61YW1lp
リコンフィギュラブルなシステムって、
イマイチぱっとしないな。
カシオのデジカメも一時期使ってたけど
主流にはならなかった。
テンシリカも潰れたようなもんだし。
402774ワット発電中さん:2013/05/20(月) 13:08:37.10 ID:91ERESLM
離婚フィギュアLoveる

プログラマブルってのはどーちがうの?
403774ワット発電中さん:2013/05/20(月) 18:06:11.28 ID:ksg8VNjY
Xilinx VerilogHDLにおいて、
assign[N] = 1'b1;
のような記述はできないのでしょうか?
Nの部分を数字にすると、通るのですが、変数にするとエラーがでてしまいます。
404774ワット発電中さん:2013/05/20(月) 20:32:11.61 ID:ksg8VNjY
Xilinx EDX-002(Verilog)において2ケタのダイナミック点灯方式7セグLEDを用いたカウンターを制作中です。
Check Syntaxは通るのですが、以下のようなエラーが出て、ビットマップファイルが生成されません。
おそらくchatend(7セグに表示させる数字)が原因だと思うのですが、いまいち解決方法がわかりません。


ERROR:MapLib:661 - LUT3 symbol "Mmux_chatend_Result<0>1"
(output
signal=chatend<0>) has input signal "chat2<0>"
which will be trimmed. See the
trim report for details about why the input signal will become undriven.


また、ダイナミック点灯式なので、交互に7セグLEDを切り替えるのですが、処理を確認するために、切り替えのタイミングを極端に遅くし、
交互に点滅が行われているか実機で確認してみました。
しかし、片方が点灯している間、片方は消灯しているわけではなく、薄く光っている状態となっています。
これは正常なのでしょうか?


最後に以下の処理がどのような動作をするのか、あまり自信がありません
wire up = (shift_reg == 8'b00000000);
upにLEDをつなげてみて確認してみたのですが、
upはshift_regが8b'00000000となった場合にのみ、shift_regが代入されるという解釈であっていますか?

以下ソースコードです。
よろしければアドバイスいただけると助かります。
http://www.dotup.org/uploda/www.dotup.org4209651.txt
405774ワット発電中さん:2013/05/20(月) 21:20:02.94 ID:fbLPThNh
信号名はすごくわかりやすい
ただ回路記述は見難い・・・

upは一回しかでないの?
シミュレーションはした?
つか合成でエラーでて書き込み出来るのかな
406774ワット発電中さん:2013/05/20(月) 22:04:45.31 ID:vikhIhIp
>>404
wire up = (shift_reg == 8'b00000000);
== は演算子(演算をして結果を返す)
別の演算子の+を使った
clock_counter = (clock_counter + 1);
も理解できないよね
clock_counter = clock_counter + 1;
これを意味不明で使っているの?
407774ワット発電中さん:2013/05/20(月) 22:29:04.97 ID:e2evk9Eo
chatend じゃなくて、chat2 が変
408774ワット発電中さん:2013/05/21(火) 00:01:55.95 ID:u8pBi29x
chat2のトコ、always文のイベント式がposedgeじゃないからかな?

この書き方で続けるなら、chatが9になったら桁上げ信号を出す様にして
その信号でchat2を変化させる様にすれば良い
wire up2;
assign up2 = (chat == 4'd9);とか書いて、chat2の記述を
always @(posedge up2) beginにするとかだね

>>405
インデントがバラバラになってるのは仕方無いとして
クロック的信号が多くなるのはあまり好ましい記述では無いだろうねぇ
409774ワット発電中さん:2013/05/21(火) 02:19:36.78 ID:ajBepMZM
一時HDL書くのが面白かったんだが、
C#でパラレルプログラミングやってるほうがずっとたのしくなって
Qusestaとかいじるのがめちゃ苦痛になって
もうソフトだけでいっかとか思うようになった。アプリレベルならほぼC#で事足りる
みんなHDLどんな仕事でつかってんの?情報家電なんてもう仕事ないでしょ?
未だにHDLのニーズて高い?それはCPU+できあいの専用LSIとかじゃムリ?
410774ワット発電中さん:2013/05/21(火) 08:27:27.97 ID:UoWHg1Xh
>>409
技術者としてすごく尊敬。
HDL屋さんってマイコンとか別の環境に対する
ハングリー精神がなんつうかな・・・

いうならハードウェアはコストを極めれるので
生き残ってる
少量のアプリケーションにはマイコンとかFPGAのが良いかと


あとはギガヘルツ回路とか最先端はやっぱり・・・
(アナログ設計が多いが)
結構あるかも
411774ワット発電中さん:2013/05/21(火) 09:17:11.61 ID:OnbbziSA
>>404
chat, chat2で実現しているカウンタがへん(chat2は動作しない)。
まず、7セグ表示なんてしないで、
chat, chat2でalways @(posedge CLOCK_50M)を使い、入力信号upのパルスを
カウントする00-99カウントの十進カウンタ実現することからはじめたほうが良い。
十進カウンタはシミュレーションで動作確認する。

>>408
>>404を尊重するとそうなるけど、この程度の回路でそのやり方は止めたほうが良いと思う。
412774ワット発電中さん:2013/05/21(火) 20:20:36.49 ID:u8pBi29x
>>404
記述が読み難いのは、モジュール毎に分割して記述されてない面もあると思う
チャタリング対策部、カウンタ部、LED表示部にそれぞれまとめて記述して
それぞれにコメントを入れると読みやすくなる
moduleで分割するのも良い
413774ワット発電中さん:2013/05/21(火) 21:08:27.74 ID:HrLnX/49
あの程度でモジュール分割とかやめてくれ
414774ワット発電中さん:2013/05/21(火) 22:00:49.73 ID:u8pBi29x
>>413
慣れるにはこの程度ぐらいで練習した方が良いと思うのさ
分割しやすい感じだしね
415774ワット発電中さん:2013/05/22(水) 00:47:40.20 ID:bZx48j6N
分割するメリットの一つに再利用がある
7セグ用の自分の(評価ボードの)表示モジュールを作ってつかーさい


回答は一週間後ぐらいに
(想像で作るけど
416774ワット発電中さん:2013/05/22(水) 02:05:16.49 ID:1tda6sIN
>409
動画CODECとか。
enc/decを10ms未満で行ったりとかそこまで行かなくても実時間でenc/decしたりとかクロックリカバリしたりとかはまだHDLの方が楽。
放送用なので、できあいの石だとちょっとした機能不足が致命的になったりする。
(「仕様です」で突っぱねる力がないだけともいう)

できればDSP/GPUソリューションにもちょっとは触手を伸ばしたいんだけど...
417774ワット発電中さん:2013/05/22(水) 21:05:46.14 ID:bZx48j6N
>>416
すげー本職さんっぽい!
418774ワット発電中さん:2013/05/22(水) 21:54:29.95 ID:vRuJ35wx
触手があるってところが凄いです
419774ワット発電中さん:2013/05/23(木) 11:39:14.80 ID:IOJEkUlS
触能って奴か…
420774ワット発電中さん:2013/05/27(月) 22:08:10.87 ID:a/uQSr+U
規制掛かりすぎで家PCから書き込めないっっ!!
421774ワット発電中さん:2013/06/13(木) 00:07:21.81 ID:hHPnZp7R
符号付きビット加減算が、わかりません。
-107100-(-25500)とかを2進数、または、16進数で計算する方法教えてください。上は10進で書いてますが、符号付きビットのマイナスどうしの減算方法知りたい。
桁がちがったらビット拡張?とかいうのやるの?
422774ワット発電中さん:2013/06/13(木) 02:27:11.34 ID:7NJeEAB1
>>421
計算は符号無しでやって、結果を符号付きと解釈すればいいよ。
結果がオーパーフローしてなければ答は合ってる。

>桁がちがったらビット拡張?とかいうのやるの?
yes
423774ワット発電中さん:2013/06/13(木) 09:27:49.73 ID:6EiHp+Fb
VHDLは知らんが、Verilogの符号付き演算は後付けだから
使うと訳が分からなくなるよ。
混在すると符号なしで評価してくるし、
特に乗算は注意だな。
424sage:2013/06/13(木) 10:00:34.79 ID:AhrinLfE
ただビット演算がVerilogと関係するのか否かは・・・不明だ。

でもほかは何処で聞けばいいんだろう?
425sage:2013/06/13(木) 13:14:16.65 ID:PueyUaQi
>>421
VHDL87で「LPM_ADDSUB」と同等機能以上のIPコア作ったことがあるのでちょっとご説明致しましょう。

上記の場合、マイナスの値は2の補数に変換してそのまま計算すればよい。
その際、ビットの桁数をどちらか大きい方に合わせて計算する。
また、この場合、符号付減算となるので、桁数の小さい方のMSBを、
大きい方の桁数に合わせてコピーする。(符号無は0をコピー)
例)111101001-11011=111101001-111111011

           引く数のMSB'1'を大きい方の桁数分コピー

>>423
VHDLでは「std_logic_arith」パッケージと「std_logic_unsigned」を
ライブラリに追加し、必要にな時だけ'singed(A)'として符号付にして
計算すればOK。
426425:2013/06/13(木) 21:46:14.21 ID:yntM2XKu
×必要にな時だけ'singed(A)'として
○必要にな時だけ'singed(A)'というように、signed型にして

後から見返したらなんか文章が変だったw
矢印も位置違ったし、失礼
427774ワット発電中さん:2013/06/26(水) 16:05:09.37 ID:kAugzIqu
FPGAボードで学ぶ組み込みシステム開発入門(小林勇著)
の24時間時計の製作を現在製作中です。
下2ケタが分、上2ケタが時間を表す7セグLEDをダイナミック点灯方式を
用いて動作させたいです。
しかし、本の通りに書いたのですが、下3ケタしか表示されず、4ケタ目が表示されません。
なおかつ数字がすべて0となっているため、カウントされた値がLEDDISP(7セグを点灯させるモジュール)
に代入されていないと考えられます。
また、View RTL Schematicで回路を見てみるとEN1HZ(1秒を刻む変数)
がどこにもつながっておらず、秒数を数えるSECCNTにつながっていません。
このあたりも原因がわかりません

使用ボードはEDX-002で、Verilogを用いています。
よければアドバイスお願いします。

http://www7.gigafile.nu/v3/?9e83be7c689cab07f213690f95e25a28
http://www7.gigafile.nu/v3/?8fa0e9d45d39521866718b5f2e3aa532
http://www7.gigafile.nu/v3/?7cc1aac6bbec2ca9a1417476302e715d
http://www7.gigafile.nu/v3/?3def717a5023b75f478bbf25af35f64c
http://www7.gigafile.nu/v3/?e1eb245613c9ed7c55dc3caa58d79800
http://www7.gigafile.nu/v3/?efdb4593d17f84779dacca941bd30892
http://www7.gigafile.nu/v3/?aca1b3ff3bd53b8dfd0eabd9dfc21cba
http://www7.gigafile.nu/v3/?f26123bb0a1fa57821e8340ebe90c1be
428774ワット発電中さん:2013/06/26(水) 16:33:41.71 ID:dzLFqlg8
>427
とりあえず1つのファイルにまとめてupして。面倒過ぎて見る気にもならん。
429774ワット発電中さん:2013/06/26(水) 18:41:31.41 ID:jBcQ+lkB
VHDLで、文字列をASCIIコードに変換するにはどうしたらいいんでしょうか。
ソースでこんな風に書きたいです。
constant CHAR1 : std_logic_vector(7 downto 0) := code('A'); -- =X"41"
constant CHAR2 : std_logic_vector(7 downto 0) := code('B'); -- =X"42"
constant CHAR3 : std_logic_vector(7 downto 0) := code('C'); -- =X"43"
あるいは
constant CHAR : std_logic_vector(23 downto 0) := code("ABC"); -- =X"414243"
430774ワット発電中さん:2013/06/26(水) 21:20:39.96 ID:PUcogPYc
>>429
最初の3行みたいに一文字づつ代入したいんなら
Character型使えばいいんじゃねーの

最後の行みたいな文字列の場合はわからん
つーか普通VHDLで文字列扱うことはめったに無いと思うけど
431774ワット発電中さん:2013/06/27(木) 09:19:02.69 ID:EMMkkQmq
>VHDLで、文字列をASCIIコードに変換するにはどうしたらいいんでしょうか。
あきらめる
432>>427:2013/06/27(木) 12:23:36.07 ID:NVKYFdv1
>>428
失礼しました。
再度うpします
http://www.dotup.org/uploda/www.dotup.org4301776.txt
433774ワット発電中さん:2013/06/27(木) 12:30:36.50 ID:tWsBS4HS
21行目、EH1HZはEN1HZの間違いじゃないのかな
434774ワット発電中さん:2013/06/27(木) 23:21:27.24 ID:yUkiO10N
>427
Simはかけたのかい?
435774ワット発電中さん:2013/06/28(金) 08:54:59.98 ID:Z+PjAgzA
本題とはちがうんだけど、always で組み合わせ回路を書くときは
センシティビティリストに 「*」 書くのが普通なの?まじめに入力信号書くと漏れが
出たりするけど、合成に違いとか出ない?

でもちゃんと記述する方が扱う信号明確にできて、多すぎるなら分けるなりした方が
良さそうだと個人的には思うんだけど、古いのかな。
436774ワット発電中さん:2013/06/28(金) 09:20:46.62 ID:cKK8w0A9
漏れが出て結果が違うなら
それは記述が悪いんじゃね?

* が使えるようになったのは2000からだったような・・・

シミュレーションに時間がかかるとかあったけど、
今は解消されてるような感じ。
437sage:2013/06/28(金) 12:30:22.94 ID:NVNuExfQ
>>429
function文でstring型からstd_logic_vectorに変換する例を
作ってみたのでご参考にどーぞ

-- ASCII code to std_logic_vector convert function
function ascii_to_std_logic_vector(A:string) return std_logic_vector is
variable tmp_chr : character; -- Temporary extracted character from input string
variable str_length : integer; -- String length
variable std_pos : integer; -- Std_logic_vector insertion point by 8bit division
variable dec_pos : integer; -- Decremented std_pos
variable std_tmp : std_logic_vector(7 downto 0); -- Temporary converted std_logic_vector by 8bit
variable result : std_logic_vector(A'length*8-1 downto 0); -- Result
begin
-- String length
str_length := A'length;
-- Std_logic_vector conversion loop
asccnv_lp: for I in 1 to str_length loop
-- Extract A character from right to left
tmp_chr := A(I);
-- std_logic_vector insertion point
std_pos := str_length - I + 1;
dec_pos := std_pos - 1;
-- ASCII character to std_logic_vector decoder
case tmp_chr is
when NUL => std_tmp := "00000000";-- 0x00
when LF => std_tmp := "00001010";-- 0x0A
when CR => std_tmp := "00001101";-- 0x0D
when ' ' => std_tmp := "00100000";-- 0x20
when '"' => std_tmp := "00100010";-- 0x22
when 'A' => std_tmp := "01000001";-- 0x41
when 'B' => std_tmp := "01000010";-- 0x42
when 'C' => std_tmp := "01000011";-- 0x43
when 'D' => std_tmp := "01000100";-- 0x44
              ・
              ・
              ・

when others => std_tmp := "11111111";-- 0xFF
end case;
result(std_pos*8-1 downto dec_pos*8) := std_tmp;
end loop;
return result;
end function;
438774ワット発電中さん:2013/06/28(金) 15:52:37.54 ID:ODEM4GH0
>>435
よく考えて、合成に違いが出ると思うのか?
always * で済むならそれでいいじゃないか。
変更時に同じ事を2回書くのはバカのする事だ
自己満足したいならご自由にどうぞ

VHDLには * なんて素晴らしい仕様は無いんだぞっと
XSTさんはセンシティビティリストに抜けがあると、
「合成は仰せのままにするけど、Simで違いが出るかもしれんが良いか?」と警告出す
439774ワット発電中さん:2013/06/28(金) 16:48:04.84 ID:70ubK2WU
そこでSystemVerilogですよ
440774ワット発電中さん:2013/06/28(金) 18:37:21.64 ID:cKK8w0A9
XSTは、「ビット長が違うから切り捨てましたよ」って警告を
出したり出さなかったりするのをやめてくれ。
441774ワット発電中さん:2013/06/28(金) 20:52:50.44 ID:GLsavpWr
VHDL-2008はprocess(all)でいける
442774ワット発電中さん:2013/06/29(土) 10:16:26.35 ID:pUnFzdMQ
で、VHDL-2008はどこで使えるの?
443774ワット発電中さん:2013/06/29(土) 10:28:54.23 ID:ItxGh3DE
なんだかなー
VHDLを名乗ってるくせにそんな仕様でいいのかよっ、て感じ
444774ワット発電中さん:2013/07/02(火) NY:AN:NY.AN ID:iMbW9Jwb
常に進化する物が生き残ると進化論で

でもSEARCですらverilog-95以外の記述禁止とか
書いてあって・・・


ところでモジュールのなかにinout書く奴が慣れないなー
分ける派?入れる派?
445774ワット発電中さん:2013/07/02(火) NY:AN:NY.AN ID:1Qhlk0/v
SEARCってなに?

inoutは1個のモジュールでしか使わない信号ならinoutのままつないじゃうな
446774ワット発電中さん:2013/07/02(火) NY:AN:NY.AN ID:iMbW9Jwb
STARCでした○rz

モジュールの中に入れるとシンプルなんだけど
reg宣言が困る・・・
447774ワット発電中さん:2013/07/04(木) NY:AN:NY.AN ID:uSXeKcvK
>>446
 A <= B when C = '0' else D;
も全部プロセス文にいれなあかんのかな 可読性上げるなら
448774ワット発電中さん:2013/07/07(日) NY:AN:NY.AN ID:unRAkk1r
>>444

STARCって、日本国内で一線を外れた元技術者が集まって、あーだこーだとうるさいルールを作っている団体。

海外の技術者は、わざわざ日本のSTARCに合わせるのがバカバカしいって嘆いている。
日本の会社は、Verilog1995の文法に未だにこだわって社内ルールにしている所が多いそうだ。
その理由は、Verilog1995でなくVerrilog2001でソース書かれると、対応していない環境への
流用が利かないから困るだそうだ。


もちろん、STARCルールを細かく気にして慎重にソースコード書いていても、
日本の半導体メーカーは進化についていけなくてバッタバッタ潰れたので、結局は流用できませんが。
449774ワット発電中さん:2013/07/08(月) NY:AN:NY.AN ID:02sgzRfn
でも、何かあったときは、ひとまずSTARC見るじゃん。
過去体験の集大成として。そういう意味では、2冊持ってるよ、STARC。
450774ワット発電中さん:2013/07/08(月) NY:AN:NY.AN ID:X2qoEiar
STARC見る前に自分のコードを疑えよ。
451774ワット発電中さん:2013/07/08(月) NY:AN:NY.AN ID:yMWdXmlp
自分のコードが間違っていないか確認するためにまずはSTARCだっつってんだろ
452774ワット発電中さん:2013/07/09(火) NY:AN:NY.AN ID:dXYXqqdC
なんだかんだいって、あれには先人が合成で泣いた経験がつまってるからな。
453774ワット発電中さん:2013/07/09(火) NY:AN:NY.AN ID:3mQy4MOk
そうそう、みなさんSTARCの悪口を言ってばかりですが、
先人の知恵が入っていると思います。なぜこんなこと言うんだろう、と考えると、
よい勉強になります。休憩室に置いておきたい1冊。
454774ワット発電中さん:2013/07/09(火) NY:AN:NY.AN ID:CrNw9tDc
ASICやってたけど、日本の設計ルールとか変なとこあると思う
455774ワット発電中さん:2013/07/09(火) NY:AN:NY.AN ID:sZBsNCQ5
ここでSTARC1の1くらいから読み合わせしたいね

ダメだろうけど
456774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:U3atyN0R
読み合わせって、何すること?
457774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:YXgLKr4X
とりあえず一項読んだ後に

ここ可笑しいーとか
ここ意味わからねーとか
なにいってんだ?こいつとか
心配しすぎとか
ところで今日の昼のソバおいしかったねーとか
458774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:+3rjpnNl
OLじゃあるまいし、昼飯の話なんか会議でするかバカ
459774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:zP++SFkV
今晩どこ飲みに行く?
暑いしビヤガーデンとかいいよね・・・だろ。
OLじゃあるまいし。
460774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:JH/AGTyj
ダメだダメだ否定的に決め付けるのはどうかと思うぞ。
困難に挑戦してこそ、成長といものがあるんだろ?
無理だと思えるようなことにこそ、挑戦する価値があるんだよ。

さあ、みんなで OLを目指そうず!!(そこかよ
461774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:bjrZrqBk
何?OL殺そうってか!!!
テロ予告で通報しといたから首洗って待っとけ
462774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:t/52WdrQ
今時そんな優雅なOLいるか?
事務だけの腰掛けOLポジは派遣事務員が駆逐しただろう。
463774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:YXgLKr4X
なにか皆さんすごいノリすね。
おやじー替バリカタね
464774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:AOOzUwnO
おまいらどんだけOLに恨みがあるんだ?
そんなにいじめられたのか
465774ワット発電中さん:2013/07/10(水) NY:AN:NY.AN ID:JH/AGTyj
OLの乙女回路をFPGAで実装してくだしあ
466774ワット発電中さん:2013/07/11(木) NY:AN:NY.AN ID:tcbAkbbo
OLに置換して実刑受けました
467774ワット発電中さん:2013/07/11(木) NY:AN:NY.AN ID:o3JZJjsD
15年位前のアニメにそんなのあったな。
468774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:CWpLFLZq
教えてください。


♪ フルスクラッチで書き上げた、そのロジックで、あたい返信・・・・
というFPGAの歌がありますが、
この「フルスクラッチ」ってどういう意味なのでしょうか?
辞書で調べると、スクラッチとは、ひっかく、こするといういみなのですが。
469774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:gRMh1Y++
そんな歌があるんだ
470774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:Vr16AeKu
>>468
模型製作方法の「フルスクラッチビルド」

出来合のIPを使わずに自分でイチからRTLカキカキする事を、
模型全体の部品を素材から削り出しで自作する事になぞらえてると思われ。
471774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:0BhJOWT5
模型分野で使われてる用語だというのは知ってるけど、
それが「発祥」なのかなぁ?
472774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:CWpLFLZq
>>470
ありがとうございました。
なるほど「1から作る」というときに使われるみたいですね。
どうもありがとうございました。

でもなんで Scratch なんだろうか、そちらも興味があります。

どうもありがとうございました。
473774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:CWpLFLZq
>>469
↓ここで唄ってます。
http://www.nicovideo.jp/watch/sm4479207
474774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:o4bqPRgV
ステマ乙
475774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:gKB5JCzT
>472 なんで Scratch なんだろうか
競走でのスタートライン(一本棒)から。途中からでなく最初から。

だから「スクラッチから作る」と言うのであって
「スクラッチで作る」は本来誤用。
476774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:tNjEp/lp
慣用句だろ
477774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:HLs2+Jfp
「from scratch」という慣用句。
確か地面をひっかいて書いた線をスタートラインにするところから転じたんだと思った。
478774ワット発電中さん:2013/07/19(金) NY:AN:NY.AN ID:OOp1zCvW
>>472
1からじゃなく、ゼロから作れ
479774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:1KGZ7Tvd
>>478
どこの唯一神だよw
480774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:W9VIUPx5
よし、ではまずシリコンのインゴット引き上げから
481774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:twq3CAJM
採掘からやれよ
482774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:DQqOafQ2
てことは、インゴット引き上げる設備の加熱電源の設計からだな。
483774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:1KGZ7Tvd
珪素の鉱石つかったらゼロじゃないじゃん・・・真空から作らなきゃ!
484774ワット発電中さん:2013/07/20(土) NY:AN:NY.AN ID:THyTuBsD
シランはすぐ爆発するらしいよ。よく知らんけど。
485774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:bs9POeIm
絶対神かよ
486774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:37h4+vJC
真空は空間が無ければ存在できない
ビッグバンからだ
487774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:+XG+hldu
そろそろやめるか・・・
正直インゴット引っこ抜くところから言って
悪かったよ
488774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:OuBpSk+z
以前のISEには、回路図、言語、状態遷移図でエントリーできました。
状態遷移図だけで全部掛ける物でしょうか?
489774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:jDd+8Qle
>>488
Matlabの昨日にそんなのがあったな
490774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:WXhe+fYw
OLの膣内をFPGAで再現して疑似セクロスしたいのですが、どのように組んだらいいですか?
491774ワット発電中さん:2013/07/21(日) NY:AN:NY.AN ID:OuBpSk+z
まずは、てんがを買ってくることだね。
492774ワット発電中さん:2013/07/22(月) NY:AN:NY.AN ID:zca9wj0C
愛はRTLに積めな

回路がそれに答えてくれる
493774ワット発電中さん:2013/07/22(月) NY:AN:NY.AN ID:IQBZl/AP
このくだらない流れいつまで続けるつもり?
494774ワット発電中さん:2013/07/22(月) NY:AN:NY.AN ID:KMmqgqgu
あと500くらい
495774ワット発電中さん:2013/07/22(月) NY:AN:NY.AN ID:l3VYdura
クソスレ
496774ワット発電中さん:2013/07/23(火) NY:AN:NY.AN ID:54BM2dsS
まもなく折り返し地点を通過しようかという勢いであります。
497774ワット発電中さん:2013/07/23(火) NY:AN:NY.AN ID:3QVvrWUu
なぜか2032年問題を思い出した
498774ワット発電中さん:2013/07/23(火) NY:AN:NY.AN ID:hp0tWVkv
498ゲット
499774ワット発電中さん:2013/07/24(水) NY:AN:NY.AN ID:3JvpoVbZ
499だぜ
500774ワット発電中さん:2013/07/24(水) NY:AN:NY.AN ID:KJrNleeu
折り返しにだ
501774ワット発電中さん:2013/07/26(金) NY:AN:NY.AN ID:FvL2TJeD
毎晩1つがつ書き込もうかな。
そうすれば、1年と3.5ヶ月後には、新スレが立つ
502774ワット発電中さん:2013/07/27(土) NY:AN:NY.AN ID:tJNQC/3s
503
503774ワット発電中さん:2013/07/27(土) NY:AN:NY.AN ID:XtfppCs4
暇ならなんかRTL書いたらー?
504774ワット発電中さん:2013/07/28(日) NY:AN:NY.AN ID:aWIhRAG8
initial begin
$stop;
end
505774ワット発電中さん:2013/07/28(日) NY:AN:NY.AN ID:qkIptPkC
always @ ( posedge clock ) begin
  if( reset==H ) begin
  end else begin
  end
end
506774ワット発電中さん:2013/07/28(日) NY:AN:NY.AN ID:swWA6lEQ
begin と end の間に文がないとエラー
507774ワット発電中さん:2013/07/28(日) NY:AN:NY.AN ID:J2YG0tDB
Hとは何だろうか?
508774ワット発電中さん:2013/07/28(日) NY:AN:NY.AN ID:swWA6lEQ
(〃∇〃)
509774ワット発電中さん:2013/07/29(月) NY:AN:NY.AN ID:fxtqv+9C
STARCからのお願いです。

みなさん、Warningは、放置せず、必ず取り去って、
Error 0
Warning 0
にしましょう。
510774ワット発電中さん:2013/07/29(月) NY:AN:NY.AN ID:CQRoE4bF
通報しました
511774ワット発電中さん:2013/07/29(月) NY:AN:NY.AN ID:3n3pTQTj
Spyglassのワーニング全部って無理だろ
あっちを立てればこっちが立たずになるんだから
512774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:tIXFQygf
ワーニングって何?
513774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:0F3Jye9a
Warningのこと。
ウォーニングと同じ。
この読み方をスレの話題にするつもりだろうけど、日本ではどちらも通じます。

おわり。
514774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:tIXFQygf
ワーニングなんてものはこの世の中に存在しません
515774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:JjO0ewvf
どうせカタカナでは正確な表音はできない。
正確を期すなら毎回アルファベット表記するしかない。
516774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:g9wo5rkq
>>511
Policy 次第だろ
517774ワット発電中さん:2013/07/30(火) NY:AN:NY.AN ID:9vGeISVI
I2Cの読み方みたいな
518774ワット発電中さん:2013/08/02(金) NY:AN:NY.AN ID:kijuZIMS
ぬるぽ
519774ワット発電中さん:2013/08/02(金) NY:AN:NY.AN ID:jDhzg5kd
ワーニングホリデー
520774ワット発電中さん:2013/08/02(金) NY:AN:NY.AN ID:mRTo1rKV
HDLにもコンセプトを導入しないと駄目だよな
521774ワット発電中さん:2013/08/02(金) NY:AN:NY.AN ID:VyKUR+pm
ここはSystemCはのけ者?
522774ワット発電中さん:2013/08/02(金) NY:AN:NY.AN ID:VyKUR+pm
Xilinx のVivado SE 製品バージョンはSystemCの合成できるみたいだけど
だれか使った人いない?SystemCがまともなら何も無理してHDL使わなくてすむんだけど
523774ワット発電中さん:2013/08/04(日) NY:AN:NY.AN ID:2TkuwPzD
話題がないってことはまだ HDL に取って代わるほどじゃないってことでは?
524774ワット発電中さん:2013/08/04(日) NY:AN:NY.AN ID:mxkBUNbA
値段を考えると客が少ないんじゃないかなー。
高位合成ガチ勢はASICでも合成できるツールを使うだろうし。
525774ワット発電中さん:2013/08/04(日) NY:AN:NY.AN ID:SczSJvec
俺もそうおもた
専用合成ツールってのは値段が高くて一般に広まってない
フィッタが合成機能を持って、それが広く使えるようになった段階で
みんなの評価を知りたい
526774ワット発電中さん:2013/08/04(日) NY:AN:NY.AN ID:IQXJwNJ4
SystemCでちゃんと製品などを設計した経験あるのか?
SystemCでLEDチカチカすらできないのに、SystemCがあーだこーだじゃないよな
俺はSystemCさっぱりだけどな
SystemCでクロック分周してLEDチカチカ、どう記述するんだ?
527774ワット発電中さん:2013/08/05(月) NY:AN:NY.AN ID:fwdAw2XF
C++のテンプレートリだから、C++知ってればテンプレートライブラリとして仕様調べるだけで使えるけどな
528774ワット発電中さん:2013/08/05(月) NY:AN:NY.AN ID:RNbwAUtJ
日本語で
529774ワット発電中さん:2013/08/05(月) NY:AN:NY.AN ID:b5OK1FZ4
verilogでアナログっぽく書くのやめてくれー
トランスファゲート何段あるんだよぉー
530774ワット発電中さん:2013/08/05(月) NY:AN:NY.AN ID:SXi2X9lN
HDLは正常だったが
LDLが高かった
531774ワット発電中さん:2013/08/20(火) NY:AN:NY.AN ID:pnZijYBG
夏休みの宿題で書き込みが来そうな予感だが
過疎ってるので保守
532774ワット発電中さん:2013/08/23(金) NY:AN:NY.AN ID:iwvywfO3
夏厨ではないけど、大学の研究でFPGA(DE2)始めたので、初歩的な質問させて下しあ。
ひとまず、Verilog-HDLの文法は勉強して覚えることはできました。
文法だけ知ってても、行き当たりばったりで書くとスパゲッティ&バグだらけになったので、やはりまだ知識・経験不足です。
入門書(文法中心のもの)の次に読むべき資料・文献でおすすめがあれば教えて欲しいです。
皆さん、コーディングのマナーとか、開発の流れ、要件定義からのモジュール分割などのテクニックは
どういったもので習得していますか?
533774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:EIu+Be+u
>>532
STARC
534774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:iYGc5kRV
うちは社内ルールだな。
組み合わせ回路のreg/assign禁止とか、ポート名はi_* / o_ * にするとか。
前者は他社から変態呼ばわりされることもあるけど、バカがしでかすよりましかなーと思ってる。
535774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:iYGc5kRV
>534
reg/always禁止だ。assign禁止とかあったらひどすぎるw
536774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:AaDJX47G
バカがしでかすのを見つけるためのspyglassだろ
537774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:qe5EPSgp
お偉いさんを安心させるだけのツールだからな
538774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:jzycQM5K
VerirogやめてVHDLにすればいいのに
なぜかVerilog隆盛なんだよな。
最近の案件ほぼ全部Verilog。
539774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:8Sa+6EeA
俺のところは最近VHDL案件ばっかだぞ。
540774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:RrnokKjZ
自分のところは紙に回路図書いてからVerilogを書く人が多かったけど
これって普通なの?
541774ワット発電中さん:2013/08/25(日) NY:AN:NY.AN ID:iYGc5kRV
回路の種類やレベルによるかな。

ブロック図はだいたい隠し。
画像フィルタとか作る場合はどこで小数点以下何ビット保持するかを図に書いたりする。
542532:2013/08/25(日) NY:AN:NY.AN ID:qrJjXwyo
>>533
良さそうな資料ですね
検索かけたら図書館にあったので、今度借りて読んでみます
>>534
verilogは自分以外の人はやってないので、社内(研究室)ルールが無いんですよね。
今は資料を参考に自分なりのルールを作るしかなさそうです。
>>535
組み合わせ回路を意図的に作るときはそのルールでやってますけど、
未だにRTLの作法・セオリー(組み合わせ回路のフィードバックは好まれないとか、クロック周りの取り扱いとか)
を理解しきれてないです。
マイコンは8bitから32bitまで触ったのでデータシートと簡単な参考書さえあれば大抵いじれるんですけど、
HDLはマイコンのソフトウェアの感覚で書けないのでまだ慣れません。

VHDLについて
ほしい情報がVHDL記述の時あるので、そのうちVHDLも覚えたいですね。
現場で動くにはやっぱり両方できないと難しいんですかね?
543774ワット発電中さん:2013/08/26(月) NY:AN:NY.AN ID:g5U+D/pv
回路図からHDLに変換する、ってのはどうなんだろ。

回路図の方が動作がわかりやすい物があるのも事実で、ツールがHDLしか受け付けない
場合が多いのでHDLで書き直す、という理由ならわかる。
この場合、ドキュメントはHDLと一緒に回路図のまま残した方がわかりやすいね。

でも回路図からHDLだと、回路図で記述できる範囲の物しか作れない。
HDLって回路図記述では難しい抽象度の高い記述をするために生まれたんだよね。
544774ワット発電中さん:2013/08/26(月) NY:AN:NY.AN ID:dwqXVF4f
>>532
>皆さん、コーディングのマナーとか、開発の流れ、要件定義からのモジュール分割などのテクニックは
>どういったもので習得していますか?
開発の流れとか、要件定義からのモジュール分割とか、むつかしい事言ってるけど、
HDL書きは、体力というか、体で覚えるのが重要だと思います。
僕は、気に入った著者の本を何冊か買い込み、先頭ページから載っているソースというソースを
片っ端から全部入力しました。
1冊の本を3回くらい繰り返すと、自然とHDLの書き方というか 体裁というかが
わかってくるので、その後にVerilog文法を勉強しました。
545774ワット発電中さん:2013/08/27(火) NY:AN:NY.AN ID:J28Op+M0
ソフト屋上がりならCQの森岡さんの本一択だ
PDFしかないけど
546774ワット発電中さん:2013/08/27(火) NY:AN:NY.AN ID:xR5susse
547774ワット発電中さん:2013/08/28(水) NY:AN:NY.AN ID:7w3gchQZ
548774ワット発電中さん:2013/08/28(水) NY:AN:NY.AN ID:wbOG7UJ+
サービス停止後は閲覧できなくなるって
出版社がやーめたと言ったら、ただのバイナリファイルになるのか
怖くて買えないな
549774ワット発電中さん:2013/08/28(水) NY:AN:NY.AN ID:okmiAkVB
それは違うと思う
550774ワット発電中さん:2013/08/28(水) NY:AN:NY.AN ID:vqEFVLA2
スキャンしたPDFと書いてあるが検索出来るように透明テキストが入っているのかが知りたい
551774ワット発電中さん:2013/08/29(木) NY:AN:NY.AN ID:9yQie9ET
>>548
倒産する前に印刷汁
急げ!
552774ワット発電中さん:2013/09/01(日) 11:31:26.06 ID:vVNS2bgy
>>550
買ってみたが、検索・目次両方使えるから読みやすくなってた。
553774ワット発電中さん:2013/09/10(火) 00:39:03.14 ID:X8SgbCsH
初心者です。質問させてください
verilogで、ビット指定の添え字(インデックス)に16進数を使うことは出来ないんですか?
554774ワット発電中さん:2013/09/10(火) 00:51:38.10 ID:L8c6Zi9q
出来ますがなも
555774ワット発電中さん:2013/09/10(火) 03:30:38.31 ID:db4ygDmL
4'hC7 とかでいいんじゃないの?
556774ワット発電中さん:2013/09/10(火) 08:38:43.39 ID:KFsHAwfv
ビット幅足りてねえぞ
557774ワット発電中さん:2013/09/10(火) 08:46:22.51 ID:K6+LmutL
ち、ちょっと初心者君に気づいてもらおうと思って
わざと間違えただけっ


て言われたらどーすんのよ
558774ワット発電中さん:2013/09/10(火) 10:49:41.45 ID:LYwGtc2t
どうもしない
559553:2013/09/10(火) 14:13:37.57 ID:UJ+9DnGI
>>554-558
レスありがとうございます。
簡単なテストコードを書いたところ、うまく動きました。
なぜ元のコードがコンパイルできなかったかというと、原因を勘違いしていたためです(エラーコードの読み間違え・勘違い)

本来の原因は、操作対象がレジスタのビットではなく、レジスタ配列の各要素だったためのエラーでした。
下記のように、波括弧でレジスタ配列をずらして連結して循環シフトをやりたかったのですが、各要素ごとに代入文を書けと怒られますね・・・

reg [7:0] reg_hoge [31:0];
always @(posedge clock) begin
 reg_hoge<={reg_hoge[0], reg_hoge[31:1]};
end

各要素の代入文全てを書くとエラーは無くなったので、generate文を使おうと思ったのですが、
alwayの中では使えないようですし。
このような記述はできないのでしょうか?
また、コレ以外にエラーの出ないスマートな書き方はありますか?
560774ワット発電中さん:2013/09/11(水) 00:21:05.38 ID:Xs8BRGGX
reg [255:0] homo;

 homo <= { homo[7:0], homo[255:8] };
end
こんなんはイヤか?
561774ワット発電中さん:2013/09/11(水) 15:17:13.38 ID:LGGguYu/
>>560
なるほど
5ビットでアドレス作ってインクリメントするだけでは駄目なのかな?
562553:2013/09/12(木) 09:37:54.48 ID:cjRtOk4s
>>560
その方法は思いつきませんでした。
8bitレジスタとして使うとき、ちょっとかさばりますが良いと思います。
ちなみに下記のように記述しても、希望する動作・回路ができたので一応報告しておきます。
環境:QuartusII、DE2
reg [7:0] reg_shift [31:0];
reg [4:0] cnt;
always @(posedge clock, posedge reset) begin
 if(reset) begin
  for(i=0;i<32;i=i+1)
   reg_shift[i] <= 8'd0;
 end
 else begin
  for(i=0;i<31;i=i+1) begin
   reg_shift[i] <= reg_shift[i+1];
  end
  reg_shift[31] <= reg_shift[0];
 end
end
>>561
複数の配列要素を同時に読み書きしたいので、
アドレス+セレクタで対象を指定するのは難しそうです。
でも、小規模な配列であちこちにアクセスする用途ならいい案ですね。
ありがとうございます。
563774ワット発電中さん:2013/09/12(木) 16:04:34.71 ID:4yMOtu30
シミュならいいが、
回路の中にループとかの手順を書くな
564774ワット発電中さん:2013/09/12(木) 16:18:31.33 ID:YICRVmaJ
ループで生成なんて普通じゃん
565774ワット発電中さん:2013/09/12(木) 18:45:09.47 ID:ZacpKXFA
昔からやってる人はこういうの全然使わないね
まあ、ツールにいろいろ問題があったから仕方ないかもしれないけど

ASICの世界は知らんけど、今のFPGA用ツールでは全く問題無く合成してくれる
566774ワット発電中さん:2013/09/12(木) 20:33:48.59 ID:IhkIswqR
>>559-561
って発想の違いが出て面白いな
>>559 素直にリングバッファを実現
>>560 バレルシフタ
>>561 ソフトでのリングバッファを実現とおなじ(実はメモリブロックのあるFPGA向き?)
567774ワット発電中さん:2013/09/12(木) 21:17:33.60 ID:I1lDmglG
>>565
むしろ、ASIC向けの合成ツールのほうが進んでる。

こういう人は、generate も使わないんだろうな。
568774ワット発電中さん:2013/09/13(金) 00:06:50.57 ID:RIrZm0h9
合成ツールだけ対応しててもダメだろ
569774ワット発電中さん:2013/09/13(金) 08:30:04.91 ID:c5OqmzLv
Lint もカバレッジも対応してますが・・・
570774ワット発電中さん:2013/09/13(金) 21:51:23.68 ID:KkLiU7o9
ツールは対応してるけど
設計者側が対応していないんじゃね

社内ルールで禁止されてるとか
>563 みたいなこと言うレビュアーがいるとか
571774ワット発電中さん:2013/09/13(金) 23:10:22.19 ID:RIrZm0h9
>>569
等価検証は?ECOツール?大手になればなるほど内製ツールもあるけど?
572774ワット発電中さん:2013/09/14(土) 09:06:15.82 ID:mt8jR+Q5
ルネサスさん、書き込みご苦労様です
573774ワット発電中さん:2013/10/01(火) 09:28:14.54 ID:jt6nz5qh
うちはいまだに回路図で書いてるから保守性悪すぎ
574774ワット発電中さん:2013/10/01(火) 09:59:21.57 ID:H91NrtXb
トップ階層だけは回路図で書いて、モジュールはHDLで書いてみたい
575774ワット発電中さん:2013/10/01(火) 10:28:34.53 ID:Sf4TYj8l
それが一番いいよな
ブロック図相当のトップは絵図がいいと思う
FPGA Advantageとかの状態遷移図からのHDL生成とかはど?
使ってみたけどこれで十分じゃないかとオモタんだが?
576774ワット発電中さん:2013/10/01(火) 10:32:56.06 ID:Sf4TYj8l
FPGA Advantageは総合ツールで
HDL Designerだったな。
577774ワット発電中さん:2013/10/01(火) 15:23:58.82 ID:Ys/5yC2u
俺のところはモジュールのブロック図を描けって指導うけるんだよな
初めのころは単純なのまでブロック図描かされていたからな
578774ワット発電中さん:2013/10/01(火) 15:51:17.52 ID:CLrp8IQH
HDLで書くと、wireが どこに何箇所飛んでいくのか、
さっぱりわからないからね。CTRL+Fで探せと言われそうだけど、
回路図には負ける。
579774ワット発電中さん:2013/10/01(火) 17:37:14.95 ID:5qmc1eqV
ブロック図とタイミングチャートをちゃんと書いた方がいいよ。
実装なんて作業だけだから。
580774ワット発電中さん:2013/10/01(火) 18:18:21.91 ID:VJShLG79
>>579
そんな面倒なことは前もってしないで、コード書きながら脳内でなんとなく描いて
コード書きサイコーって陶酔って奴多いんじゃないか。
行き当たり場当たり設計手法が最強!
581774ワット発電中さん:2013/10/01(火) 18:52:22.72 ID:0AONoKo/
時代はスケマ
582774ワット発電中さん:2013/10/01(火) 21:09:22.11 ID:NCrUp9Gw
HDLで書いてRTL Viewerで確認。
スケマでもいいけど、ツールのバージョンが変わった時が恐い…。
583774ワット発電中さん:2013/10/01(火) 22:25:21.63 ID:Sf4TYj8l
結局HDL Designer 使ってる人少なそうだな。
状態遷移図きちんと書けば自然とHDLコードができるのは
花子やVisioよりいいと思うんだが
584774ワット発電中さん:2013/10/02(水) 15:10:31.48 ID:CiE3k2UJ
いろんなツールあるんだ。
自分はSynopsysだけだな。
585774ワット発電中さん:2013/10/02(水) 17:58:42.96 ID:q1a5L3OW
Cadenceも使ってあげてくださいな
586774ワット発電中さん:2013/10/02(水) 19:01:05.82 ID:CiE3k2UJ
>>585
シミュレータはVerilog-XL NC-Verilogだった。
後、Gate Ensembleを少々。

どこか就職できないかなあ。
587774ワット発電中さん:2013/10/02(水) 23:01:17.76 ID:CQUbPPgE
>>586
HDLできる奴の求人はたくさんあるだろ。売り手市場で高給転職ができる
588774ワット発電中さん:2013/10/03(木) 09:06:39.35 ID:YsuUg/t3
売り手?まじすか先輩!
589774ワット発電中さん:2013/10/03(木) 12:23:32.55 ID:yr5VfE/a
派遣頼むと、ソフトなら80くらいなのに
ハード屋だと120とかだかんなぁ
オレの倍以上貰ってんだな
590774ワット発電中さん:2013/10/03(木) 23:51:02.12 ID:YsuUg/t3
派遣の人月計算ならそんなもんすよ

雇ったほうが安いんですが
首が切れないので赤字回避出来ないんです。
591774ワット発電中さん:2013/10/04(金) 02:48:39.89 ID:ZN9ntNWh
教えてください。

XilinxのISE14で、HDLを書いて勉強中です。
CoreGenからDCMを作成して、使用すると、エラーが出ます。
内容を読むと、ucfに
PIN "UU1/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; を追加しなさいと出ます。
その通りにすると、確かにWarningに格下げされて、動きました。
このエラーの内容は、DCMの出力先が通常配線層でありclockの通るところじゃないよ。
というものみたいです。
これをまじめに対処するには、どのようにしたら良いのでしょうか? Warningを消したいということです。
DCMの出力にBUFGを挿入すれば良いのかと思いましたが、DCMの出力にはすでにBUGが入っています。

もう一つ質問があります。
DCMを入れた途端に「未使用の出力があるよ」とWarningが5個くらい出ます。
僕のせいではなくて、CoreGenが勝手に生成したプログラムに、
not_useみたいなwire信号があり、それが未接続だと言うのです。
このWarningを取る方法は、どのようにしたら良いのでしょうか?
僕のせいでWarningが出ているなら、努力して消したいと思いますが、
Xilinxの生成したものでWarningが出るのでは困ってしまって、ワンワンワワンです。
592774ワット発電中さん:2013/10/04(金) 08:14:12.10 ID:WQ+WcHQV
DCMを生成するときにバッファ挿入するかどうか指定できるよ
593774ワット発電中さん:2013/10/04(金) 09:51:13.14 ID:qB0sVh1J
FPGAスレとVerilog/VHDLスレが分かれているのに
このスレでのFPGAの質問の多さたるや
594774ワット発電中さん:2013/10/04(金) 19:05:37.83 ID:xjeTlyB6
>>593
そんな奴が普通の電子産業
>困ってしまって、ワンワンワワン
な奴いっぱいだからね
595774ワット発電中さん:2013/10/04(金) 22:41:29.19 ID:ZN9ntNWh
>>592
>DCMを生成するときにバッファ挿入するかどうか指定できるよ
ありがとうございます。
CoreGenのDCM生成画面でNoBufferにしてみました。
しかし、まだClock Dedicated Route = FALSEにしなさい、と出てしまいます。
このメッセージは、どういう時に出て、どうすれば消えるのでしょうか。

今、Xilinxのページを検索しているところです。
596774ワット発電中さん:2013/10/07(月) 01:53:34.00 ID:xRtK3WDk
16桁2行のLCD表示器を、Verilogでアクセスしようと思っています。
初期化まてはなんとか行ったのですが、実際の文字表示の段で困りました。

マイコンのように、処理のあちこちでLCDに表示文字を送りたいのですが、
出力がコンフリクトになるらしくて、うまくできません。
16×2行=32個のメモリを置き、LCD駆動側は、常に0〜31までを
LCDに出力し続けるのはできたのですが、各所から1つのメモリーに書き込むには
どのようにしたら良いのでしょうか?
マイコンのように、メモリーにバスをつないで、イネーブル信号でバス券を奪取して
書き込むという方法でしょうか?
597774ワット発電中さん:2013/10/07(月) 02:28:24.38 ID:E77xxxPg
アービタ入れるしかないんじゃね
598774ワット発電中さん:2013/10/07(月) 05:59:03.87 ID:frG/kUzg
優先順位付けるだけでいいと思う
599774ワット発電中さん:2013/10/08(火) 03:18:51.35 ID:mZIRb4q0
>優先順位付けるだけでいいと思う
すると、こんな感じでしょうか。
5番「書き込み開始だ!」
2番「書き込みしようかな」
5番「おっと、俺より優先の人が書き込んでる。おれは降りる」
2番「書き込み終わった終わった」
5番「2番の書き込み終わったけど、俺は再書き込みしない。だって2番の内容を消してしまうから」
600774ワット発電中さん:2013/10/08(火) 04:17:29.12 ID:KKywm4I6
根本が間違っている。
601774ワット発電中さん:2013/10/08(火) 09:18:57.67 ID:Lxda7h34
うまく表示できない原因を特定すべきじゃないの?

ほんとうにコンフリクトが原因なら、
一つのメモリの複数のアドレスに同時に書き込もうなんて無理だからアービタ必須。
メモリにアクセスするモジュールを一つだけ専用に用意する方が見通しがいい。
各所はそいつに表示依頼するという形式にする。

そもそも表示の変化が速すぎて何のことやらわからなくなってるだけなら、
一つ表示したらしばらく次の表示を禁止するしかない。
バッファを1段余分にかませれば時間的に間引くことは簡単。
602774ワット発電中さん:2013/10/08(火) 09:40:25.82 ID:po9KIFWe
うまく表示できないというか、そもそも合成できないでしょ
603774ワット発電中さん:2013/10/08(火) 10:11:47.94 ID:A6/z4QKo
まず16bitLCD表示器を愛さないとな
604774ワット発電中さん:2013/10/08(火) 10:14:19.23 ID:A6/z4QKo
16ビットじゃなかった・・・orz-3
605774ワット発電中さん:2013/10/08(火) 15:55:27.03 ID:WetAv+a4
表示を見るのはユーザーなんだから、ユーザーにどれを表示させるか選択させれば良いんだろ
どれを表示させるか選ぶセレクタを入れるだけで良いんじゃないのか
それとも、ランダムに表示したいのかな
606774ワット発電中さん:2013/10/08(火) 22:06:12.76 ID:1KfHmjhN
複数の処理が同じ「アドレス」に書き込んでるわけじゃないよね?
もし同じ「アドレス」に書き込んでたらわけわかんなくなってあたりまえ。それは設計が悪い。

たとえば時計と温度計を同時に表示するようなものを作るなら
メモリを2つに分けて時計は上の段の16バイト、温度計は下の段の16バイトに
書き込むようにすれば競合は起こらない
同時に表示させるアイテムが増えても考え方は同じ。8バイト×4に分割するとか。

つーか16×2くらいならわざわざメモリにせんでも8ビットレジスタ32個でいいんじゃ?
607774ワット発電中さん:2013/10/08(火) 22:13:48.91 ID:LSTUCYkH
>16×2行=32個のメモリを置き、
(中略)
>各所から1つのメモリーに書き込むには
>どのようにしたら良いのでしょうか?
608774ワット発電中さん:2013/10/08(火) 22:27:28.28 ID:1KfHmjhN
すみません私の読解力が足りませんでした
つまり>>596さんの定義は8ビットレジスタ1個が「メモリ一個」なんですね。

どんなUIを想定してるんだろう?
イベントA発生→タスクAが液晶に情報Aを表示
 :
(次のイベント発生まで表示は情報Aのまま)
 :
イベントB発生→タスクBが液晶に情報Bを表示
 :
(次のイベント発生まで表示は情報Bのまま)
 :

みたいな感じかな? それならタスクごとに32バイトのメモリを持って、
最後に起動したタスクのメモリ内容をMUXで選んで表示すればいいと思うけど

詳しい仕様がわからないからなんとも言えん
609774ワット発電中さん:2013/10/08(火) 23:03:34.48 ID:Lxda7h34
そうじゃねえよ
違うアドレスであれ、一つのRAMに同時にどうやってつっこむのよ
610774ワット発電中さん:2013/10/08(火) 23:07:47.72 ID:KKywm4I6
611774ワット発電中さん:2013/10/08(火) 23:09:56.09 ID:X/84Pb6b
この問題の真に完全なる回答を持っているが
テキストオンリーの2chで説明してあげることが私にはできない
612774ワット発電中さん:2013/10/08(火) 23:18:40.18 ID:1KfHmjhN
いやだからRAMを複数持って表示だけ切り替えれば?
って言ってるんだけど
613774ワット発電中さん:2013/10/08(火) 23:47:46.17 ID:Lxda7h34
>>611
図とか使わなくても、VerilogかVHDLで書いてくれたらそれでいいよ
614774ワット発電中さん:2013/10/09(水) 00:07:55.82 ID:wxyuy2Vr
キャラクタ液晶の場合はDDRAMアドレスの指定をしてデータを書くという
一連の動作の間バスを占有する必要があるから、FIFOを設けてLCDへの
出力は1箇所からやればいい。FIFO

バッファの内容を周期的にLCDに全部送るようにして、内部処理はバッファ
に書くだけという方法もある。
615774ワット発電中さん:2013/10/09(水) 03:35:36.97 ID:8bBkgxHb
でも、1つのバスを 取り合いになるんじゃないかな?
616774ワット発電中さん:2013/10/09(水) 10:17:35.15 ID:mIKXuEKA
>マイコンのように、処理のあちこちでLCDに表示文字を送りたいのですが、
根本的に設計思想が間違っているとしか言いようが無い。
617774ワット発電中さん:2013/10/09(水) 10:29:12.92 ID:K4DsBM+R
マイコンも理解してないなこりゃ
618774ワット発電中さん:2013/10/09(水) 10:36:36.22 ID:JIhD+7Rz
質問者が質問したまま放置すると、
こうして質問者をけなすだけで役に立たない連中が出てくる
619774ワット発電中さん:2013/10/09(水) 10:50:46.00 ID:fYPBq1U3
適当に考えれば書き込むクライアントごとにFIFOのバッファつけて
ラウンドロビンでFIFOを読み出して書くモジュールがLCDに書けばいいんじゃね
620774ワット発電中さん:2013/10/09(水) 10:55:34.54 ID:/0WwAdqt
もう、マイコン使っちゃいなYO!
621774ワット発電中さん:2013/10/09(水) 13:55:48.87 ID:HqjbuhHo
>>618
「これをこのままコピペしろ」という回答が得られず、
質問内容がよろしくないといわれた事を、
質問者への攻撃なのだと言い出す
日本語の不自由な奴がわいてくる。
622774ワット発電中さん:2013/10/09(水) 14:09:49.71 ID:1x/HwGHK
なんか解決策見つけたんでねーの?
623774ワット発電中さん:2013/10/10(木) 00:46:48.73 ID:97OzR7UM
いやいや、変な奴の多さにびびってひっこんだだけだよ
624774ワット発電中さん:2013/10/11(金) 23:33:08.25 ID:vxtpm4RI
まっ、質問者よりはまともだけどな。
625774ワット発電中さん:2013/10/13(日) 15:50:45.77 ID:+6JgGh5j
EDX-005CとADCのLTC1298を用いて電圧の変化をFPGAで読み取るような
プログラムを現在作っています。
http://www.dotup.org/uploda/www.dotup.org4577837.txt
※48行目は正しくは if( AD_cnt > 5 )begin です。

しかしながら
ERROR:HDLCompilers:26 - AD_convr.v line 48 unexpected token: '\201'
というエラーが出てしまいます。
48行目のif文の条件の定数を変えても出てしまいます。
またこの部分はコメントアウトすると次のようなエラーがでてしまいます。
ERROR:HDLCompilers:247 - AD_convr.v line 39 Reference to scalar wire 'DIN' is not a legal reg or variable lvalue

ERROR:HDLCompilers:106 - AD_convr.v line 39 Illegal left hand side of nonblocking assignment

ERROR:HDLCompilers:247 - AD_convr.v line 40 Reference to scalar wire 'CS' is not a legal reg or variable lvalue

ERROR:HDLCompilers:106 - AD_convr.v line 40 Illegal left hand side of nonblocking assignment

ERROR:HDLCompilers:247 - AD_convr.v line 41 Reference to scalar wire 'DIN' is not a legal reg or variable lvalue

ERROR:HDLCompilers:106 - AD_convr.v line 41 Illegal left hand side of nonblocking assignment

ERROR:HDLCompilers:247 - AD_convr.v line 42 Reference to scalar wire 'DIN' is not a legal reg or variable lvalue

ERROR:HDLCompilers:106 - AD_convr.v line 42 Illegal left hand side of nonblocking assignment

ERROR:HDLCompilers:247 - AD_convr.v line 43 Reference to scalar wire 'DIN' is not a legal reg or variable lvalue

ERROR:HDLCompilers:106 - AD_convr.v line 43 Illegal left hand side of nonblocking assignment

どなたか助言をお願いします
626774ワット発電中さん:2013/10/13(日) 16:00:40.63 ID:c4s6GJ9i
 
627774ワット発電中さん:2013/10/13(日) 16:30:51.81 ID:nz8WDCSy
>625
コメントの日本語コードを食えない方がいるようなきがする。
とりあえずコメントを全部消してみて再挑戦よろ。

それでうまくいったら、日本語のエンコーディングを変える検討をするとよいかと。
または、合成向けだけ日本語を削るスクリプトを作るとか。
628774ワット発電中さん:2013/10/13(日) 16:56:03.36 ID:+6JgGh5j
入出力はalwaysの外でassignして代入することでcheck syntax通りました。
しかしWARNINGでCLK(マスタークロック)を文中に書いてあるのに使用されていない
という風にエラーが出ます。
CLKに関するプログラムは以下の部分のみです。

parameter Pscale = 20'd600; // プリスケーラ //
wire PS_CLK = (cnt == Pscale);
// プリスケーラ作成 //

always @(posedge CLK)begin
if( Pscale )begin
cnt = 0;
end else begin
cnt = cnt +1;
end
end

マスタークロックからプリスケーラーを作っているだけのプログラムです。
どこかに間違いがあるでしょうか?
629774ワット発電中さん:2013/10/13(日) 18:05:42.79 ID:nz8WDCSy
> ERROR:HDLCompilers:26 - AD_convr.v line 48 unexpected token: '\201'
が問題だとしたらとりあえずそれは解決した方がいいと思うけど、
そうじゃなくてもこのコードだとシミュレーションでも不具合を見つけられそう。
外部のパラメータ制御にもよるけど、cntの値が変化する気がしない。
630774ワット発電中さん:2013/10/13(日) 18:12:21.60 ID:hXVeHS25
>>626の適切さに早く気付け
631774ワット発電中さん:2013/10/13(日) 18:45:03.01 ID:XuJBqS/t
そういうことか
632774ワット発電中さん:2013/10/13(日) 18:49:27.01 ID:x9aDTi+0
これは・・・ありがちなミス
633774ワット発電中さん:2013/10/13(日) 18:51:34.76 ID:oZXtLOzb
一回やると注意するよね
634774ワット発電中さん:2013/10/13(日) 19:04:54.67 ID:Ml5KIIG0
やっぱりそうですか。

関係ないけど内部クロック生成してるのは嫌だな。
635774ワット発電中さん:2013/10/13(日) 20:52:49.05 ID:kHdMv7wb
有難うございました。動きました。
636774ワット発電中さん:2013/10/13(日) 22:30:24.43 ID:z0K40DDW
全角スペースか?
637774ワット発電中さん:2013/10/13(日) 23:45:30.85 ID:hXVeHS25
Rictyフォントは全角スペースが見えるからいいよぉ
バイナリ配布してないから生成するのが環境づくりも含めて面倒だけどね
638774ワット発電中さん:2013/10/14(月) 00:45:31.90 ID:/DJ26Bqs
エディタの機能であるやん
639774ワット発電中さん:2013/10/14(月) 01:22:04.39 ID:5/TUz7cn
エディタ依存
640774ワット発電中さん:2013/10/14(月) 11:03:48.27 ID:P+g8Sl+l
Isimだーれもつかってねーの?
641774ワット発電中さん:2013/10/14(月) 11:55:29.16 ID:d2njYpJa
使ってるけど
642774ワット発電中さん:2013/10/14(月) 15:44:08.17 ID:Zgfx3c54
むしろ最近はIsim以外選択肢がないような
ModelSim無償版は無くなったよね。
有償版だとXiでも使えるんだろうか?
643774ワット発電中さん:2013/10/14(月) 15:58:21.99 ID:/DJ26Bqs
別にmodelsim導入すればよくね
644774ワット発電中さん:2013/10/14(月) 16:24:47.94 ID:s26ePWSa
silos 年間2万円は微妙
645774ワット発電中さん:2013/10/14(月) 19:09:48.29 ID:P+g8Sl+l
Xiと寺でSimがちがうのヤじゃない?
646774ワット発電中さん:2013/10/14(月) 19:22:18.46 ID:xrLwyzAI
ModelSim使えば統合できる
647774ワット発電中さん:2013/10/14(月) 20:50:56.60 ID:Zgfx3c54
>ModelSim使えば統合できる
だからそのModelSimの無償版が無くなったって話をしてるのに
有償版は知らん 俺趣味でFPGAやってるだけだから
648774ワット発電中さん:2013/10/14(月) 21:45:08.29 ID:xrLwyzAI
開発ツールも買えないならグダグダ言わずに使ってろよ
649774ワット発電中さん:2013/10/14(月) 22:58:04.25 ID:P+g8Sl+l
modelsim 300万円ぐらいしたと思うが
650774ワット発電中さん:2013/10/15(火) 00:34:14.45 ID:IJZrN04/
仕事で使ってるけど金出してくれん。
中小で社長の理解がないのはまだ良いんだが、ならやらすな。
二言目にはワシの頃はってあんた、デジタル設計したことないだろ。
簡単なアナログ基盤のパラメータ変更程度の設計しかした事ないくせに。
そう愚痴ったら先輩に叱られたよ。
「失礼な事をいうもんじゃない。第一あれは設計じゃなくて設定だ。」
651774ワット発電中さん:2013/10/15(火) 00:45:59.11 ID:MpHl/hs6
http://japan.xilinx.com/products/boards-and-kits/index.htm
ここらのボード買うと
Vivado Design Suite Edition フルライセンスとダウソロードケーブルもバンドルされてくるんだよな
Virtex7 は50万だし、除外して左評価キットがこの値段だったら高くないかな
Vivado単体だといくら?
652774ワット発電中さん:2013/10/15(火) 00:51:05.78 ID:MpHl/hs6
でもSystem Editionじゃないので高位合成できないのかショボーン
653774ワット発電中さん:2013/10/15(火) 08:37:13.70 ID:jCZbXZ29
Logic Editonは、30万円くらいだったような
654774ワット発電中さん:2013/10/15(火) 14:36:20.33 ID:dZapRWMj
デバイスロックされてるんでしょ?
655774ワット発電中さん:2013/10/28(月) 00:44:24.24 ID:pPS8sU0r
デバイスロックって何?
656774ワット発電中さん:2013/10/28(月) 01:02:13.29 ID:opksFSFP
ノードロックかな?
657774ワット発電中さん:2013/10/28(月) 08:07:26.96 ID:X/5vYjE2
* Vivado Design Suite: Design Edition (フルライセンス)
* ターゲット デバイスは Artix-7 XC7A200T FPGA にロック

フルライセンスだけど特定のデバイス用しか合成できないんじゃね?
658774ワット発電中さん:2013/10/28(月) 09:55:42.84 ID:Zezw1BdB
はるほど、使用可能デバイスが限定されているなことを、デバイスロックと言うんだね

初めてデバイスロックという言葉を聞いたんだけど、
この世界でちゃんと通用する言葉でしょうか?
他所で使うと笑われちゃうとか、ないですよね?
659774ワット発電中さん:2013/10/28(月) 12:46:09.64 ID:DsoyOWAX
限定されているのにフルライセンスって何か違和感あるよね。
なんていうか、俺の村では世界一、みたいな?
660774ワット発電中さん:2013/10/28(月) 18:30:09.42 ID:DLi1I2RY
ガンダムの各種改造完了してるのに
バルカンしか付いてないとか?
661774ワット発電中さん:2013/10/28(月) 20:16:20.89 ID:4CnL/a6V
機能はフルで対象デバイスは限定だから別に変じゃなくね
662774ワット発電中さん:2013/10/28(月) 22:59:52.63 ID:I277XW3o
>>660
いや、フル装備だけど、ザク相手にしか攻撃できないみたいな
663774ワット発電中さん:2013/10/31(木) 02:59:12.56 ID:u6C+pKjv
彼等の室内での心理状態、行動様態、気分の抑揚などは常に隣人の生活様態に左右、依拠され、
またそれら隣人の生活様態を自らの諸行動,諸動作の契機として、 あるいはスケジュール表や
時計かのごとくに借用しながらの生活を送る。
 http://rfi.a.la9.jp/hn203/k203/k.png
 http://rfi.a.la9.jp/hn203/k203/k203_1.png
 http://rfi.a.la9.jp/hn203/k203/k203_2.png
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13106142083
 
付きうごきの感知は 自己の動作のあと1、2秒遅れて床から伝わってくる「ピクッ」とするわずかな振動から確認することができる。
  
  = 付きうごきの3型 =
・通常の場合
・付きうごきに対して注意喚起をうながした後に逆恨みからその行為をより一層徹底、強力化してやり返してくるもの  〔付きかえし〕
・壁越しに注意をうながした時などに他の部屋の別の引きこもり者が自分のことを指摘されたのだと思い込みやり返してくるケース  〔勘違い型付きかえし〕
 (パチンコ屋などで「警察だ!」と叫べば身に覚えのある何人かがギョッとして逃げ出そうとすることと同様に)
 
この付きかえしは引きこもりニーホがその特質「何もすることがない」ということを最大の武器に異様な執着と異常な頻度で
及んで来るものであり、この状態にある引きこもりニーホのことをルーム・パパラッチと称する。
※ニーホ
http://c.2ch.net/test/-.YYI00/homealone/1229184473/254
 
猛烈な付き返しiにより部屋を退去せざるをえない状態を強要、脅迫する者をルーム・ストーカーと呼ぶ。
 
寝起きする住居であるから被害者はこれを避けることはできず、不愉快と時間、人生の浪費を強いられざるを得ない。
http://www.yamcha.jp/fnd/dsc/info.html
そこがSOHOなどの仕事場も兼ねる場所であるなら事態は絶望的である。
一般に管理会社、仲介業者などはこのことに無関心、無責任であり
日本人の標準的な暮らし振りとは自分たちの日常に起こっている出来事の半分のことにも盲目である。
http://rfi.a.la9.jp/hn203/kb/kb-main3.html
664774ワット発電中さん:2013/10/31(木) 08:03:12.40 ID:KuBBAQ4y
>>663
で、それってどこを縦読みするの?
665774ワット発電中さん:2013/11/01(金) 04:35:08.39 ID:1KlEVjDM
Verilogで、

reg [7:0] A,B,C;

C <= ( (A+B)>>1 ) + 8'h12;

というのは、動かないのでしょうか?
666774ワット発電中さん:2013/11/01(金) 08:29:40.10 ID:2auJj7v/
動く。Verilog の仕様どおりに。
667774ワット発電中さん:2013/11/01(金) 14:21:47.07 ID:E7tCNLZc
Verilogに、仕様書ってあるのでしょうか? STARC?
668774ワット発電中さん:2013/11/01(金) 15:18:51.88 ID:WpxDd+R1
IEEE 1800
669774ワット発電中さん:2013/11/01(金) 16:00:04.49 ID:aQmjPZgN
>>665
ちなみに、その記述は適切には動かないと書いてある。
(計算の途中で桁あふれするから)
IEEE Std 1364-2001 §4.4.2
670774ワット発電中さん:2013/11/02(土) 00:01:21.15 ID:srXxKNsQ
仕様通りに動くってのはおかしい
逆にきくが仕様通りに動かないものってあるのか?バグとか無しに
671774ワット発電中さん:2013/11/02(土) 00:12:09.10 ID:KHvEHCHM
VHDLとVerilogの使い分けってどうやってる?
シミュレーションかける時Verlogの方が楽に書けるからついつい全部Verilogで書いてるけど
良い使い分けとかあるなら知りたい。
672774ワット発電中さん:2013/11/02(土) 00:17:36.80 ID:InMGfcef
既存ファイルの修正以外でVHDL使うのはマゾだけでしょ
673774ワット発電中さん:2013/11/02(土) 09:24:41.14 ID:B0cJDLgl
>>670
仕様で決まってない部分があるだろ、たまに。
仕様書が間違ってる時もあるし。
674774ワット発電中さん:2013/11/02(土) 09:50:02.03 ID:PXSIonwv
おあえら「Verilogの」仕様どおりってとこちゃんと読めや
675774ワット発電中さん:2013/11/02(土) 12:20:06.16 ID:ecICTLls
IEEE Std 1364って、pdダウンロードでも 1500ドルもするけど、
みんな買ってるの?
676774ワット発電中さん:2013/11/03(日) 21:57:41.33 ID:dsqVslbf
闇でいくらでもロハでダウソできるだろ
677774ワット発電中さん:2013/11/04(月) 17:06:53.94 ID:6QhuXKfh
verilogで7セグLEDにダイナミック点灯で4桁の数字を出力するような回路を作っています。
数字を分割するためモジョロ演算子を使いたかったのですが、verilogでは使えないのでしょうか?
エラーが出てしまいました。
その次に除算でやろうと思いましたが、除算演算子も使うことができませんでした。

verilogでは"/"、"%"は使うことができないのですか?
678774ワット発電中さん:2013/11/04(月) 17:31:53.32 ID:/f4a7BU+
使えますよ。
/の実装は難しいと思いますが。
679774ワット発電中さん:2013/11/04(月) 17:57:36.61 ID:7Kb14RAy
>>677
四桁の数字はどんな形で持ってるかによるけど、除算は出来る限り避ける
680774ワット発電中さん:2013/11/04(月) 18:26:11.66 ID:FkJXQcNr
定数での除算は乗算でやる方法もあるけどな
剰余を求めるにはさらに乗算がいるしやっぱりいまいち
681774ワット発電中さん:2013/11/04(月) 20:40:08.25 ID:Q2yK37+p
直接の答えではないが…

俺が周波数カウンターを作ったときは、
16進->10進変換を避けるために
始めから10進カウンターを用意した

レシプロカル方式で割り算を避けられないケースは
CPUを導入した
682774ワット発電中さん:2013/11/05(火) 22:17:37.78 ID:iiFyi6dz
16進のままでは駄目なのか?

4桁なら12ビットだろうから割り算の回路作れば良い
683774ワット発電中さん:2013/11/05(火) 23:36:07.76 ID:iiFyi6dz
間違えた。
10で割るだけでは駄目だった。

12ビット出なく13ビットかな。
684774ワット発電中さん:2013/11/05(火) 23:40:49.41 ID:wLjG3ZDe
十進表記を卒業して十六進表示にすれば解決。
685774ワット発電中さん:2013/11/05(火) 23:44:13.90 ID:FkIHGUL1
DEC (PDP-11) 流の8進表示もおつ
686774ワット発電中さん:2013/11/06(水) 04:28:20.74 ID:sItEa4BE
256くらいまでの16進を、暗記している人って、いるのだろうか
687774ワット発電中さん:2013/11/06(水) 08:05:01.12 ID:uLSGUePS
脳内で16→10進数を毎回やるって事?
各桁の最大値だけパッと10進数ででてきたら十分だと思うけど。
688774ワット発電中さん:2013/11/06(水) 08:36:44.44 ID:ExBTb57+
エディタとかでガッとテーブル書いて
合成掛けたらどうなるかな

やっぱでかいかな
HEXをDECだと
689774ワット発電中さん:2013/11/06(水) 22:55:57.67 ID:MlbPBqfD
10bit1023ぐらいならテーブル合成でも楽勝じゃないかね。
690774ワット発電中さん:2013/11/07(木) 06:18:49.13 ID:SKxF0Do5
トレードオフ
691774ワット発電中さん:2013/11/07(木) 08:40:10.97 ID:bBqds+Dh
ハードオフ
692774ワット発電中さん:2013/11/07(木) 13:49:36.30 ID:crKU/SRl
ハードオフとオフハウスの違いがイマイチよくわからん
693774ワット発電中さん:2013/11/07(木) 15:33:07.42 ID:uSpeKQHr
レイオフ
694774ワット発電中さん:2013/11/07(木) 22:49:49.26 ID:qT7Qmiop
割り算作っても10ビット、7ビット、4ビットの減算器が4個ずつで
片方が定数だから割と小さくなると思う。
695774ワット発電中さん:2013/11/07(木) 23:19:53.99 ID:6hD9LWbU
何サイクルもかけていいなら、
それこそパタヘネにもある単純な引き戻し法を実装すれば、
加減算器1個とレジスタとMUXだけでできるだろ。
てか、表示用ならこれでよくね?
696774ワット発電中さん:2013/11/07(木) 23:27:38.42 ID:qT7Qmiop
>>695
そうなんだけど、クロックが分からないからベタにした。
697774ワット発電中さん:2013/11/07(木) 23:57:05.68 ID:Hhue6TOS
でも表示用にゆっくり加工して問題になるクロックなんてないよね、正直
698774ワット発電中さん:2013/11/08(金) 01:41:11.73 ID:P1T5Prt1
割り算なんかFPGAツールに付属してるIP使っておけばええやん。
699774ワット発電中さん:2013/11/08(金) 01:58:10.02 ID:aqkMhPS1
そこを手で書くのがこのスレのロマンなんだよ
ツールまかせならFPGAスレに行けばいい
まああそこでも推論誤爆で盛り上がってるが
700774ワット発電中さん:2013/11/08(金) 04:35:46.89 ID:Ng/gcyIH
引いて、引いて、引きまくり、引けなくなったら、1/10して、
引いて、引いて、引きまくり、引けなくなったら、1/10して、
延々繰り返す、でしょうか?
701774ワット発電中さん:2013/11/08(金) 06:18:57.75 ID:1NFmFt0S
そこでCPU論理実装ですよ。
702774ワット発電中さん:2013/11/08(金) 08:03:37.70 ID:+qfGP42v
>>700
1000で割った余りを100で割って余りを10で割る。
10で割った答えを10で割るを繰り返しても良いけど。
703774ワット発電中さん:2013/11/08(金) 08:52:19.81 ID:aqkMhPS1
>>700
頭冷やしてもっとよく考えろ
704774ワット発電中さん:2013/11/08(金) 09:36:56.37 ID:PMcCbt7e
10進4桁ってことは14bitで足りるから
ROMで持ってもたいしたことない。
705774ワット発電中さん:2013/11/08(金) 11:07:37.58 ID:KZOy/mpM
10で割るって、FPGAでできるの?
1 2 4 8 と、2の階乗しかできないと思っていた
706774ワット発電中さん:2013/11/08(金) 11:29:39.00 ID:1thgCghr
a/10 とか書いたらダメよ?
707774ワット発電中さん:2013/11/08(金) 12:03:10.98 ID:iukKrFC1
最近はその書き方でもツールが落とし込んでくれね?
708774ワット発電中さん:2013/11/08(金) 13:47:24.86 ID:hSRTc7e/
>>705
SIN/COSでもlogでもFPGAでできるさ。
709774ワット発電中さん:2013/11/08(金) 15:25:47.52 ID:+qfGP42v
>>705
割り算は小学校で習っただろ。
まだ教えてもらってなかったらスマソ
710774ワット発電中さん:2013/11/08(金) 16:54:56.23 ID:d4JVNIOa
>>700 が書いてるような、機械的に計算を進める方法は学校では教えてないだろ。
足し戻し法とか引きっ放し法とか。
711774ワット発電中さん:2013/11/08(金) 19:26:48.42 ID:Sn216EkD
>705
基本的な引き戻し法だと、除数のビット数だけ
レイテンシ(クロック数)必要になるけど普通に実現可能。

他の大抵の算術演算もにたようなアルゴリズムで作れる。
712774ワット発電中さん:2013/11/08(金) 19:46:44.83 ID:yCn3bT5v
桁数固定なら14ビットフルアダーで
1000をひたすら引く
100をひたすら引く
10をひたすら引く
で最大30クロックでもいいじゃん
713774ワット発電中さん:2013/11/08(金) 21:37:28.27 ID:fHJvKQGS
>>688
やってみた。
ソフトはQuartusU 12.1、FPGAはEP4CGX15BF14A7。
結果は Total logic elements 938 / 14,400 ( 7 % )
だって。今のFPGAなら結構何とかなるんじゃね?

HDLは↓こんな感じ。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity divtest is
port (
  a : in unsigned(13 downto 0);
  y : out unsigned(15 downto 0)
);
end divtest;

architecture Behavioral of divtest is
begin

process(a)
begin
  case a is
  when "00000000000000" => y <= X"0000";
  (中略)
  when "10011100001111" => y <= X"9999";
  when others => y <= X"FFFF";
  end case;
end process;

end Behavioral;
714774ワット発電中さん:2013/11/08(金) 22:16:32.83 ID:1thgCghr
>>713
ありがと〜
VHDLなのがしぶい

がotherは不定のほうがいいんでない?
715713:2013/11/08(金) 22:23:59.91 ID:fHJvKQGS
>がotherは不定のほうがいいんでない?

そこは実装する人の趣味でご自由に。
716774ワット発電中さん:2013/11/09(土) 00:30:55.87 ID:UrMfbd56
すごいな、入力が面倒臭そうだが
717774ワット発電中さん:2013/11/09(土) 00:37:28.32 ID:vLhTPVup
エクセルなりスクリプト駆使して書けばいい
718774ワット発電中さん:2013/11/09(土) 10:48:45.94 ID:JNEFVKLn
for使えばいいじゃん
719774ワット発電中さん:2013/11/09(土) 12:46:06.18 ID:1LWwW8aV
for文で除算テーブル記述するとか無茶言うなw

しかし思ったよりLE食わないね。
クロック同期にしてROM推論させたら
M9Kが32個必要になるはずだし。
720774ワット発電中さん:2013/11/09(土) 13:42:33.80 ID:I9VOjLs/
ROMを推論しない方が楽なんだろうな。
BCDの各ビットの真理値表を書いてみたら意外とシンプルっぽい。
人間はgenerate for辺りで楽して書いても、今の合成系は適宜圧縮してくれそうだ。
... 元が10bitではなく32bitだと結構複雑になりそうだけど。
721774ワット発電中さん:2013/11/09(土) 14:44:39.19 ID:/pyNp8+K
ちょっとだけテスト
722714:2013/11/09(土) 15:08:29.14 ID:/pyNp8+K
Verilogで書いたのになんか増えてる・・・なんでだろう?
なんでdefault不定のほうが多いんだ・・・

Flow Status Successful - Sat Nov 09 15:04:09 2013
Quartus II 64-Bit Version 12.1 Build 243 01/31/2013 SP 1 SJ Web Edition
Revision Name HEX2DEC
Top-level Entity Name HEX2DEC
Family Cyclone IV GX
Device EP4CGX15BF14A7
Timing Models Final
Total logic elements 963 / 14,400 ( 7 % )
Total combinational functions 963 / 14,400 ( 7 % )
Dedicated logic registers 0 / 14,400 ( 0 % )
Total registers 0
Total pins 30 / 81 ( 37 % )

以下RTL

module HEX2DEC(
HEX,
DEC1000,
DEC100,
DEC10,
DEC1
);

input [13:0] HEX;
output [3:0] DEC1000;
output [3:0] DEC100;
output [3:0] DEC10;
output [3:0] DEC1;

function [15:0] HEX_to_DEC;
input [13:0] HEX;
begin
casex(HEX)
14'd0: HEX_to_DEC = {4'd0,4'd0,4'd0,4'd0};
14'd1: HEX_to_DEC = {4'd0,4'd0,4'd0,4'd1};
14'd2: HEX_to_DEC = {4'd0,4'd0,4'd0,4'd2};

14'd9997: HEX_to_DEC = {4'd9,4'd9,4'd9,4'd7};
14'd9998: HEX_to_DEC = {4'd9,4'd9,4'd9,4'd8};
14'd9999: HEX_to_DEC = {4'd9,4'd9,4'd9,4'd9};
default: HEX_to_DEC = 16'hXXXX;
endcase
end
endfunction

assign {DEC1000,DEC100,DEC10,DEC1} = HEX_to_DEC(HEX);

endmodule
723774ワット発電中さん:2013/11/09(土) 15:59:08.54 ID:eKS5uEdL
32ビットだと人間が頭使うメリットあるだろうな。
724774ワット発電中さん:2013/11/09(土) 20:16:19.91 ID:Va6ukwXn
HDLとRTLの違いは何ですか?
725774ワット発電中さん:2013/11/09(土) 20:43:04.26 ID:Hrgv6iS+
ハードウェア記述言語とレジスタ転送レベルの違い
726774ワット発電中さん:2013/11/09(土) 23:01:22.32 ID:OdY4DGw1
トランジスタレベル
ゲートレベル
レジスタトランスファーレベル(RTL)
ビヘイビアレベル

回路の書き方には上記のように階層がある
下に行くほど抽象的な書き方
これらの書き方を記述する言語を総称して、ハードウェア記述言語(HDL)という
RTLは階層の1つ
727774ワット発電中さん:2013/11/11(月) 15:14:38.62 ID:cotWrsQO
>>722
うろ覚えだが、アルテラは不定値を0として扱う癖があったように思う。
なので不定値にしたから最適化されるとは必ずしも言えない。
728774ワット発電中さん:2013/11/11(月) 20:56:38.85 ID:6+RTZP/t
まじすか
明日やってみます
729774ワット発電中さん:2013/11/12(火) 03:49:51.63 ID:jHmaO6/Y
マジメな話、ALTERAとXILINXって、どちらが高性能なんでしょうか?
ツールはALTERAだけど、性能はXILINXと聞いたことがあります。
730774ワット発電中さん:2013/11/12(火) 04:13:44.28 ID:/BQn410D
FPGAスレでやれ
731774ワット発電中さん:2013/11/12(火) 07:31:14.53 ID:DthICL4c
>>713相当のVHDLを作ってコンパイルしたら、コンパイル時間が
Quartus v9.1SP2 → 30秒くらい
Quartus v12.1SP1 → 5分くらい
だった。なんでだろ?
732774ワット発電中さん:2013/11/12(火) 08:38:18.18 ID:zg2Xu8nl
メモリの問題?
スペック分からんが
733774ワット発電中さん:2013/11/12(火) 19:56:15.44 ID:zg2Xu8nl
デフォルトFFFFにしたら939になりました

1負けました!
734774ワット発電中さん:2013/11/12(火) 21:06:54.02 ID:MQWwfhfE
新しけりゃいいってわけじゃないみたいね。
ウチはノートパソコンで寺用のModelSimがVer 6.xとかは動いていたのに
最近の10.xを入れたら動かなかった。
メインのデスクトップパソコンでは動いているからいいんだけど。
735774ワット発電中さん:2013/11/12(火) 21:08:44.19 ID:2hkjxWuU
でもノートで移動しながら出来た方が便利だね。
環境は違うけど、デスクトップでしか動かなくて机周りに評価ボードやらオシロやら並べた時は気が狂うかと思った。
736774ワット発電中さん:2013/11/12(火) 21:23:33.76 ID:8EPeRX+N
古いバージョンとかUIが使いやすい。慣れてるから。
737774ワット発電中さん:2013/11/12(火) 23:10:48.19 ID:zg2Xu8nl
ise最近のいれたら
浦島太郎でした

動かせる気がしない・・・
738774ワット発電中さん:2013/11/13(水) 02:00:12.62 ID:Jjauob2c
iseってそんなにかわってるか?
739774ワット発電中さん:2013/11/13(水) 10:47:00.70 ID:eYS8Pcv9
それはISEじゃないでしょ?
ビバホームだかなんだかでしょうに
740774ワット発電中さん:2013/11/13(水) 10:52:08.22 ID:4s+w+BsV
>>698
割り算はハードでやるもんじゃなくニュートン法でソフトでやらせるのが正解だよ
741774ワット発電中さん:2013/11/13(水) 11:47:25.26 ID:mMmqtwI7
1クロックに1回演算が必要な場合もある。
742774ワット発電中さん:2013/11/13(水) 11:54:42.95 ID:4s+w+BsV
大小判断によって処理内容の変わる除算が1クロック演算できるてwww
まともにHWでやると、
演算結果に32bit精度必要な場合に、
32クロック要ってこと理解してるのか?
743774ワット発電中さん:2013/11/13(水) 12:05:15.85 ID:mMmqtwI7
パイプラインって知ってる?
744774ワット発電中さん:2013/11/13(水) 12:11:57.30 ID:pd1pkoOL
スループット1なら普通じゃね
745774ワット発電中さん:2013/11/13(水) 12:21:10.62 ID:0prIufm2
これだからソフト屋上がりは・・・
746774ワット発電中さん:2013/11/13(水) 12:21:39.92 ID:mMmqtwI7
細かいところはどうでもいいや。
言いたかったのは「〜が正解」なんてのは無いって事。
「〜の場合は〜が正解(適している)」ならあるかも知れないけど。
最初から正解を決めてると応用範囲が狭くなるよ。
747774ワット発電中さん:2013/11/13(水) 12:39:33.78 ID:cvzKXLIl
恥をかいて学習する
ってことかな

がんばろうっと
748774ワット発電中さん:2013/11/13(水) 15:43:37.76 ID:4s+w+BsV
>>743
パイプラインの乱れって知ってるか?
インテルCPU+コンパイラで除算をどう処理してるか一から勉強し直せ
749774ワット発電中さん:2013/11/13(水) 15:50:33.73 ID:4s+w+BsV
>>746
正解ってのは存在するね。工学の場合それはパッケージング、時代とともに変化するだけだ。
それを理解しないのは単なる無能。
除算において単精度フローティング以上の精度がほしいならテーブル参照するニュートン法の実装を考えることだな。
それが現時点の常識だ。
750774ワット発電中さん:2013/11/13(水) 16:08:41.47 ID:4s+w+BsV
>>ID:mMmqtwI7
>パイプラインって知ってる?

こいつ、除算の話をしてるときにパイプラインて。
そもそも除算がいったいどういう処理をしてるのかわかってないんだろうな。
現状のCPUやコンパイラがどういう処理を選択してるのかすら知らない
無知な上に学習能力もない情弱ときた。エンジニアとしては最低な部類
751774ワット発電中さん:2013/11/13(水) 19:13:27.71 ID:2MxR840O
高速な演算が要求されない分野で良かった^_^
752774ワット発電中さん:2013/11/13(水) 19:25:17.52 ID:yhREp+gK
またキチガイが湧いてるのか
753774ワット発電中さん:2013/11/13(水) 19:53:23.08 ID:Jjauob2c
除算器をパイプライン化すればレイテンシは32クロックでもスループットは1演算/1クロックにできるってことじゃね?
実用性はないだろうけどパイプライン化しなくても周波数下げれば1サイクルで終わるし
754774ワット発電中さん:2013/11/13(水) 20:35:19.73 ID:Tv135Fv5
対数とって引き算して、逆対数で戻せばいいのさ。
オペアンプでやったりしてたっけな、そういえば。
755774ワット発電中さん:2013/11/13(水) 21:01:50.94 ID:Jjauob2c
あ、radix4にすれば16サイクルで終わるか
パイプライン化ならradix2よりもリソース減るかな
756774ワット発電中さん:2013/11/13(水) 21:19:43.43 ID:0prIufm2
まじで、プロセッサとかコンパイラとかのソフト屋は勘弁
757774ワット発電中さん:2013/11/13(水) 21:36:55.80 ID:EO1eBT+W
クロックすらいらんだろ
コンパレータと減算器が32個づつあればいい
「コンパレータで比較→引けるなら減算器で減算」というのを32段並べれば済む
758774ワット発電中さん:2013/11/13(水) 22:46:12.48 ID:cvzKXLIl
なんかADCぽいっすね
759774ワット発電中さん:2013/11/13(水) 22:56:40.56 ID:GxCUmsuL
積和を1クロックは山ほどあったけど
除算を1クロックは今までの短いキャリアではなかったな。
760774ワット発電中さん:2013/11/13(水) 22:58:43.50 ID:bolageBb
クロック100Hzくらいかな
761774ワット発電中さん:2013/11/13(水) 23:00:31.39 ID:O0VE9q/l
メンドイしipでいいや
762774ワット発電中さん:2013/11/13(水) 23:24:34.97 ID:JnE8VomP
>>757
コンパレータの必要性が理解できない。
763774ワット発電中さん:2013/11/13(水) 23:37:38.19 ID:Jjauob2c
引きっぱなし法じゃなくて最初に比較する?
アダーだけでいいな
764774ワット発電中さん:2013/11/14(木) 06:46:59.91 ID:TvvTN8PN
除算が1クロックで出来たら暗号界は全滅
765774ワット発電中さん:2013/11/14(木) 07:13:43.68 ID:m6epWsr+
>>764
そりゃ、たとえば1024ビットの割り算をクロックレスで実行する回路は
サイズの問題で今のFPGAには入らないだろうし
仮に実現できてもロジックエレメントを何千段も通るから速度は相当遅くなるだろうけど

しかしクロックレスで割り算することは原理的には可能であることをまだ否定し続ける?

最初に「32ビットの割り算に32クロック必要」を笑われたのがそんなに悔しかった?
766774ワット発電中さん:2013/11/14(木) 07:40:55.86 ID:HWLdAM+R
不正アクセスするような輩はパスワード自体よりも、ユーザーネームを大量に手にいれて
度々アンケートが出てるよく使われてるパスワードで辞書攻撃する方が手っ取り早い気がするけど。
相手が誰でもいいならだけど。
767774ワット発電中さん:2013/11/14(木) 08:20:31.47 ID:vuzX7QuS
>>764
除算が今までの定数倍速くなったからって暗号全滅したりしない
暗号わかってる?
768774ワット発電中さん:2013/11/14(木) 09:00:57.40 ID:MplzRQ9F
>>764
少なくともAESやDESは割り算関係なくね?
769774ワット発電中さん:2013/11/14(木) 09:44:33.66 ID:ijw+Hs+x
>>764
知ったかすぎでしょ
770774ワット発電中さん:2013/11/14(木) 10:44:25.21 ID:Yjdjnhzu
スループットとレイテンシの区別もついてない奴がいるな
レイテンシ1サイクルは不可能だろうけど、スループット1サイクルは可能だろ

1サイクル1演算ってスループットの話だろ?
771774ワット発電中さん:2013/11/14(木) 12:31:03.36 ID:iIZV2XSY
うちのBBAのレイテンシが年々酷くなるんだけど、なんかのバグ?
772774ワット発電中さん:2013/11/14(木) 13:38:44.44 ID:1TrMQD1x
>>770
> レイテンシ1サイクルは不可能
なんで?
773774ワット発電中さん:2013/11/14(木) 13:43:47.82 ID:Yjdjnhzu
>>772
言い方が悪かった
不可能じゃないけど遅延が大きすぎて速度が出ないので通常使わない
774774ワット発電中さん:2013/11/14(木) 13:49:33.27 ID:1TrMQD1x
了解
775774ワット発電中さん:2013/11/14(木) 13:58:26.83 ID:mKVciYoG
>>765
ザイリンクスのツールに付属していたDivider Genで試して見た

メモリをSRT法のテーブルに使うHigh Radixオプションを使えば
32bit/32bitでも5サイクルで終わるみたい

これは極端にしても、普通Radix-4を使って16サイクルにしないか?
776774ワット発電中さん:2013/11/14(木) 19:03:06.38 ID:TvvTN8PN
基本演算でのブレークスルーが起これば世界が根底から変わる。
777774ワット発電中さん:2013/11/14(木) 19:11:01.13 ID:ijw+Hs+x
まだ知ったか続けんの?
778774ワット発電中さん:2013/11/14(木) 19:51:58.39 ID:UVmgwIvp
実際のロジック回路では作れるけど、
Verilog、VHDLでは基準不可能な回路って有るの?
779774ワット発電中さん:2013/11/14(木) 20:06:12.99 ID:8HoGvwf8
>778
register-transfer になってない回路は基本全滅だろう。
HCU04使ったアンプとかは書けない。
リングオシレータもだめな気がする。
780774ワット発電中さん:2013/11/14(木) 20:16:29.82 ID:1TrMQD1x
離散値を使うからディジタル回路とは言っていいけど、
「論理」回路とは言いにくくね?
781774ワット発電中さん:2013/11/14(木) 20:19:09.94 ID:mKVciYoG
非同期のRS-FFとかも無理そう
782774ワット発電中さん:2013/11/14(木) 20:51:15.32 ID:1TrMQD1x
なんで?
783774ワット発電中さん:2013/11/14(木) 20:59:05.74 ID:mKVciYoG
784774ワット発電中さん:2013/11/14(木) 21:03:10.21 ID:ijw+Hs+x
ロジックセル間の配線としては表現できるんじゃないかな
シミュレーションとか合成が上手く行くかはわからないけど
785774ワット発電中さん:2013/11/14(木) 21:29:58.15 ID:UhJQKvc2
HC14使った発振回路とか出来る気がしない。
バッファ使った遅延回路はLUTで置き換えできるけど
HDL記述だけでは無理かも。
786774ワット発電中さん:2013/11/14(木) 21:58:33.18 ID:HWLdAM+R
再現せんとあかんのか?
787774ワット発電中さん:2013/11/14(木) 22:11:11.10 ID:ySS6gxqi
遅延の モデリングは出来るだろ
788774ワット発電中さん:2013/11/14(木) 23:02:35.12 ID:jsSoGx9X
Verilog AMS ってあるけど、正直、そういうのはやめてほしい。
789774ワット発電中さん:2013/11/15(金) 08:14:39.02 ID:iD1ADS9E
手続き遅延やpath遅延で通常は充分なのだが…
790774ワット発電中さん:2013/11/15(金) 10:23:41.79 ID:OzHHgOlo
FFが入っていないフィードバックループは記述できるけど
ツール類が対応してないからエラーになるな
791774ワット発電中さん:2013/11/15(金) 10:48:26.76 ID:UqbB7UQa
合成もしてくれないの?
タイミング解析ができないだけじゃなくて?

今ツールが手元にないんであれだけど、
例えば、3入力多数決回路をモジュールで作って、
出力を入力の一本につなぐとかできない?
いわゆるC素子ってやつだけど。
792774ワット発電中さん:2013/11/15(金) 18:44:17.21 ID:kVLxrJlG
>>791
意味わからん
接続情報を記載せよ
793774ワット発電中さん:2013/11/15(金) 19:09:12.28 ID:OzHHgOlo
MullerのC素子のことじゃね

http://en.wikipedia.org/wiki/C-element

RS-FFの変形みたいな奴

XilinxのXSTとSynopsysのDCはフィードバックループを検出するとエラー扱いで止まった覚えが
Warningにして無理やりやらせる方法もあるのかもしれないけど、知らない
どちらにしても同期回路前提のツール類で非同期は無理がある気が
794774ワット発電中さん:2013/11/16(土) 00:30:05.24 ID:hH4FKy4M
書くだけなら書けるだろ、合成もできる
動くかどうかは運次第
795774ワット発電中さん:2013/11/16(土) 08:36:07.04 ID:nRGdXmid
いや合成できるかどうかはツールによるだろ
エラーではねる合成ツールもあったはず
796774ワット発電中さん:2013/11/16(土) 09:21:44.51 ID:z+LGArUJ
書ける。
0timeで発振しなければSimも通る。
合成は出来たが当然ワーニングで教えてくれる。
797774ワット発電中さん:2013/11/16(土) 10:05:58.23 ID:v5lspGDW
>>796
ソースきぼんぬ
798774ワット発電中さん:2013/11/16(土) 10:51:01.23 ID:hj98TtTo
latchとnandで構成できるのだから合成可能だろう
799774ワット発電中さん:2013/11/16(土) 11:28:35.55 ID:v5lspGDW
Quartusでリングオシレータ作ろうとした。
合成は通ったけどネットリストビュアーで見るとどう見ても発振しなさそうな回路に・・・

ttp://uploda.cc/img/img5286d707ec16d.png

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity aaa is
port (
  aout : out std_logic
);
end aaa;

architecture Behavioral of aaa is

signal a:std_logic;
signal b:std_logic;
signal c:std_logic;

begin

process(a,b,c)
begin
  a <= not c;
  b <= not a;
  c <= not b;
end process;

aout <= a;

end Behavioral;
800774ワット発電中さん:2013/11/16(土) 11:38:43.36 ID:hj98TtTo
>>799
そう言うのは、プリミティブセルを直置きするのが普通では?
801774ワット発電中さん:2013/11/16(土) 11:47:13.63 ID:v5lspGDW
>>800
HDLだけで何とかするって話じゃなかったっけ?
ウィザードとか使ってプリミティブセル置いたらもうHDLではない気がするけど
(そのへんの感覚は人によって違うのかもしれないけど)
802774ワット発電中さん:2013/11/16(土) 12:22:56.33 ID:t8eLIzTP
PLLとかwizard使わざるを得ないからなぁ。
メモリやFIFOくらいは何とかするけど。
803774ワット発電中さん:2013/11/16(土) 13:49:59.13 ID:hj98TtTo
>>801
HDLにはタイミング制約定義出来ないから遅延時間に意味のある回路は記述出来ないよ。
set_min_delay制約を与えて合成すればそれなりの回路が合成される。この場合タイミングはfrom/toで切断されるからエラーも起きない。
804774ワット発電中さん:2013/11/16(土) 18:58:26.81 ID:c+emuQ5n
>802
Xilinxはすべてプリミティブだけで作れたような…
ただ、デバイスメーカが供給してるライブラリ使った時点で
主旨が変わってる気がする。
805774ワット発電中さん:2013/11/16(土) 19:42:13.22 ID:k6HYsEVt
>>804
アルテラってできないの?
806774ワット発電中さん:2013/11/16(土) 20:58:15.45 ID:edkwBYo0
最近プリミティブな合体してないなぁ
807774ワット発電中さん:2013/11/17(日) 11:49:52.66 ID:SQ49a4Ss
>>796
Symplifyでエラーではねられた記憶があるんだが?
808774ワット発電中さん:2013/11/17(日) 19:30:23.07 ID:G0o5b0T/
このスレは、何が何でもHDLで記述する事が主旨なのか
809774ワット発電中さん:2013/11/17(日) 19:32:06.30 ID:xEulWKFV
>>808
いや、最近の流れは>>778が発端
810774ワット発電中さん:2013/11/17(日) 20:08:24.58 ID:x4MxShqk
うごかねぇ回路はタダの・・・だ
811774ワット発電中さん:2013/11/17(日) 20:22:30.94 ID:G0o5b0T/
>>809
その意味なら、作成可能な論理回路のうち論理合成で生成できない回路は
山ほどあるけど、HDLで記述できない回路は無いと言えるね。

PLLとかはアナログ回路だからね。
812774ワット発電中さん:2013/11/17(日) 20:42:27.92 ID:xEulWKFV
>>811
君が無能だってのはわかった
813774ワット発電中さん:2013/11/17(日) 21:41:36.99 ID:brQFnhA8
812が無能だってのはわかった
814774ワット発電中さん:2013/11/17(日) 21:58:40.48 ID:/zxUzkfx
そこでDLLですよ
815774ワット発電中さん:2013/11/18(月) 01:25:06.73 ID:/PATEu6A
早く、HDLで食っていけるようになりたいのですが、
みなさんは何年くらいで一人前になりましたか?
816774ワット発電中さん:2013/11/18(月) 07:14:55.38 ID:js/33lOb
>その意味なら、作成可能な論理回路のうち論理合成で生成できない回路は
>山ほどあるけど、HDLで記述できない回路は無いと言えるね。

記述できても合成できなかったら意味ないのに何言ってるんだろう・・・
817774ワット発電中さん:2013/11/18(月) 07:31:32.91 ID:bRzzxbHR
シミュレーションモデルとしては価値はあると思うけど
818774ワット発電中さん:2013/11/18(月) 11:11:20.98 ID:DCWPBiAr
XilinxはSpartan-3A向けのPicoBlazeのサンプルで
LUTをループさせるリングオシレータ使ってた
MaximのSHA-1暗号ICの制御で動作タイミングに適当なジッタを意図的に
入れるためだったと思う
819774ワット発電中さん:2013/11/18(月) 12:26:13.23 ID:I2He9i3L
>>815
HDLで食ってる奴なんかいるのかな?
それってCADで食っていくって言ってるようなもんだよ。
設計の一部としてHDLがあるだけ。
820774ワット発電中さん:2013/11/18(月) 12:30:10.00 ID:QbxhMqJa
論理合成できなかったら意味がないってことはないんじゃないの?
HDLってハードウェアを抽象化して記述することが目的のものであって、論理合成とは関係ないという認識なんだけど
821774ワット発電中さん:2013/11/18(月) 13:18:58.21 ID:DCWPBiAr
ペンタゴンに納める仕事しかしないならそれで良いんだろうけど、
少なくとも俺の仕事はHDLを使って動くFPGAデザインを作る事だからな

>HDLってハードウェアを抽象化して記述することが目的
実際これだけが目的でHDL使ってる人なんているのか?
822774ワット発電中さん:2013/11/18(月) 19:51:28.42 ID:6Ckl8XGX
>>821
回路の抽象化は20年ぐらい前の話ですね。
懐かしい。
823774ワット発電中さん:2013/11/18(月) 21:37:02.55 ID:4CGhjicZ
>>821
ASICのプリミティブのライブラリ屋さんとか、検証・シミュレーションモデル屋さん
とかが相当するのでは?
824774ワット発電中さん:2013/11/19(火) 02:11:39.45 ID:5zYnchNK
多分絶対数で行ったら、回路記述をしてる人よりそういうモデル作成の人と
検証する人のほうが多いんだろうね
825774ワット発電中さん:2013/11/19(火) 19:27:41.23 ID:1XrCFHM2
monitorって信号がminitorになってて一日潰したった!
826774ワット発電中さん:2013/11/19(火) 19:43:10.40 ID:fp1yAtrK
長いのはいかん
monにしとけ
827774ワット発電中さん:2013/11/19(火) 21:01:21.92 ID:3qzm2bE9
monitorは前に$付いたら別の意味になるし
そう言う予約語は使わないのがいいとかすたーくでゆってた
828774ワット発電中さん:2013/11/19(火) 21:19:36.22 ID:UH312y5l
>>827
そうだな、気をつけるわ
まあ、原因わかってスッキリしたからよかった。
829774ワット発電中さん:2013/11/21(木) 08:54:46.61 ID:w8shrPxL
最近したミスは・・・

レジスタ増やしたときに
アドレスがもう1bit必要になってて
レジスタのリードライトくらいのシミュレーションを無事通過し

合成ツールに同じ意味のレジスタなので消すね
って言われて気づいた
830774ワット発電中さん:2013/11/22(金) 00:47:44.23 ID:mZcuLua3
>>829

合成の前にLintツールでつぶせよ。

その程度なら verilatorのLintモードでも検出できるんじゃね?
831774ワット発電中さん:2013/11/22(金) 19:07:59.20 ID:FuJjqUjp
みなさんどうやってその辺りの知識を身につけたんですか?
うちは小さなメーカでFPGAを導入しようって話になって、試作レベルではちょいちょい書くようになったのですが
情報の入手が難しいのが悩みどころです。
832774ワット発電中さん:2013/11/22(金) 20:15:59.15 ID:mIDlC0+j
>>831
参考に出来るのはSTARC設計スタイルガイドと、バッドノウハウを蓄積 した社内文書位だった。後は、師匠に教えを乞う事になる。
色々と失敗しないと身に付かないと思う。
833774ワット発電中さん:2013/11/22(金) 20:38:53.18 ID:MkrIXUly
会社で…
90年代初頭からFPGA使ってるから、ノウハウが蓄積されている
(元々自社でLSIを作ってたのも技術的アドバンテージが結構大きい)
FPGAベンダの技術の人が会社に来てくれるから疑問があったら聞ける
あと、ツールがバージョンアップしたら説明してくれる(最近だとXilinxのVivadoとか使い方のデモしてくれた)

確実なのはAlteraとかXilinxに聞くことだわね
ベンダの人と懇意にしとくと色々と情報が入ってくるしサポートしてくれるよ
834774ワット発電中さん:2013/11/22(金) 21:21:40.24 ID:FuJjqUjp
やっぱり社内ノウハウか。
糞中小は商社からして冷たいからなぁ(泣)
835774ワット発電中さん:2013/11/22(金) 21:25:20.62 ID:RxcW7oJ8
今もあるのか分からないけどSynopsysのHDL Compilerの本
Synopsysを導入したからもらった。
836774ワット発電中さん:2013/11/22(金) 22:59:17.75 ID:Zdkv8Rxg
OPENCOREを使いこなせ!
837774ワット発電中さん:2013/11/24(日) 00:47:51.45 ID:S+N/UrFh
その苦労わかるわ
中小だから商社に舐められる
838774ワット発電中さん:2013/11/24(日) 03:37:54.07 ID:UpMEGBTG
だいたいFPGA関連の人たちって、上から45目線。嫌い。
839774ワット発電中さん:2013/11/24(日) 03:40:43.28 ID:bCuPuGL0
被害妄想
840774ワット発電中さん:2013/11/24(日) 11:11:01.72 ID:rJ11cCSZ
>だいたいFPGA関連の人たちって、上から45目線。嫌い。
別にFPGA屋に限ったことじゃない
ソフト屋も高周波屋も相手が自分より下と見ると急に居丈高になる
技術屋は全部そうなんじゃないかな。
841774ワット発電中さん:2013/11/24(日) 13:34:21.13 ID:UpMEGBTG
でも、その中でもFPGA屋は顕著だと思う。

「FPGAでやれば簡単なのに」とか
「あ〜、マイコンだと、そうするしかないよね」とか。

最高にムッとするのが、
半田付けも、オシロの使い方もできないのに「ハード設計やっています」とか言う。
842774ワット発電中さん:2013/11/24(日) 14:48:17.53 ID:xbLI9NO7
半田付けできて、オシロ使いこなせる人が、効率的な回路を設計できるかは別問題
843774ワット発電中さん:2013/11/24(日) 16:51:08.86 ID:NG41BaO6
はんだ付けとオシロがハード設計とは思えない
844774ワット発電中さん:2013/11/24(日) 17:16:08.13 ID:8qvZwCAs
>>841
それただ単に付き合ってる所が低レベルなだけ
845774ワット発電中さん:2013/11/24(日) 17:20:59.57 ID:KgMz5fLA
アナログとデジタルという棲み分けなら
オシロ云々だけど

ハードと言う以上はスルーレートくらいはケアできないと
だめじゃない?

負荷0?
846774ワット発電中さん:2013/11/24(日) 17:23:31.81 ID:3yqqCJ1g
FPGA扱って10年くらいだけど、そんな態度は一部の人じゃないかと思う。
ソフトだと数行で済むんだろうなって考えさせられることなんてしょっちゅうだし。

ちなみにFPGAだけしか扱えないわけじゃないんだからね!
半田付け普通にするし機構図面書くし検証用のソフトくらいなら作れる。
たまたま仕事の中心がFPGAになっただけ。
847774ワット発電中さん:2013/11/24(日) 17:27:18.29 ID:9EchQmMO
ほんと、ソフト屋とハード屋は仲悪いな。
848774ワット発電中さん:2013/11/24(日) 17:36:37.97 ID:NzyYWNXt
面白いのがハードは任せろって鼻息荒かった連中が簡単な記述のルールが覚えられなくて
ソフト(FPGA)は信用ならんとか言ってる所。
849774ワット発電中さん:2013/11/24(日) 21:10:16.22 ID:E8h8/zDi
デジタルはソフトの仕事。
850774ワット発電中さん:2013/11/24(日) 23:04:53.58 ID:S+N/UrFh
ソフトハードを内包出来るのがFPGAなのに
851774ワット発電中さん:2013/11/25(月) 01:32:14.43 ID:jOMecDLS
mcSをメールで送ってくる。
しばらくすると、請求書送ってくる。
実機で動作確認するのは、発注したこちら。
おかしくないか?

オシロで波形が出るのん確認するまでやるのがお前の仕事だ。
852774ワット発電中さん:2013/11/25(月) 01:42:51.03 ID:mdUYHxix
そんなもん契約次第だろう
条件に入れてないならお前が悪い
853774ワット発電中さん:2013/11/25(月) 02:44:54.19 ID:RR7YhysF
>>852
そういうふうだから、上から目線って言われるんじゃないの?
854774ワット発電中さん:2013/11/25(月) 09:11:42.53 ID:5Eiful4S
>「FPGAでやれば簡単なのに」とか
FPGAを使うことが最適解の場合はなんて言えばいいんだろう? 何も言わないほうがいいのかな。

上から目線とかむかっとくるとか、気持ちはわかるけど、それを抑えて本質にこだわって最善を
尽くすのがエンジニアじゃないの?

もちろん他人の神経を不必要に逆なでするのは良くないけどね。
855774ワット発電中さん:2013/11/25(月) 09:15:45.14 ID:F+6iggxf
>>853
>オシロで波形が出るのん確認するまでやるのがお前の仕事だ。
これは?
856774ワット発電中さん:2013/11/25(月) 09:18:58.92 ID:Sq/Q23hM
>FPGAを使うことが最適解の場合はなんて言えばいいんだろう?

最適解なんてものが存在するのかどうかも解らない。
857774ワット発電中さん:2013/11/25(月) 19:42:33.73 ID:PVLwVfQe
現在ギターの信号を入力させ周波数を7セグに表示させるものを作っています。
以下がソースコードです
http://www.dotup.org/uploda/www.dotup.org4689772.txt

現在以下のようなエラーが出ます。

WARNING:Xst:1291 - FF/Latch <DATA_R_10> is unconnected in block <ADconvert>.

WARNING:Xst:1291 - FF/Latch <AD_DATA_11> is unconnected in block <ADconvert>.



ERROR:Xst:415 - Synthesis failed
CPU : 1.39 / 1.51 s |
Elapsed : 2.00 / 2.00 s

WARNING:Xst:1710 - FF/Latch <Hz_cnt_13> (without init value) is constant in block <Hz_count>.

WARNING:Xst:1710 - FF/Latch <Hz_DATA_13> (without init value) is constant in block <Hz_count>.

WARNING:Xst:1710 - FF/Latch <Hz_cnt_0> (without init value) is constant in block <Hz_count>.

WARNING:Xst:1710 - FF/Latch <Hz_DATA_0> (without init value) is constant in block <Hz_count>.
以下Hz_cnt_1~12 Hz_DATA_1~12 AD_DATA_0~9 DATA_R0~9まで

Hz_cntはHz_DATAに代入するあたりで不具合がでるんじゃないかと思えますが、
ADconvertの方はまったくわかりません
どなたかアドバイスお願いします
858774ワット発電中さん:2013/11/25(月) 20:00:01.85 ID:KnKePvsy
12'd5000 があやしいね
859774ワット発電中さん:2013/11/25(月) 22:46:10.96 ID:lJSSWMtj
なんか>>858の言い回しがじわじわ来る


ところでギターの信号ってなんだろう?
どんなデバイスなのだろうか
860>>857:2013/11/25(月) 23:18:50.84 ID:wI7YBl+K
>>858
それは現在適当な値を入れてます
信号の基準(?)となる値を後で入れるつもりです

>>859
ギターの信号は通常のサイン波と思ってもらってかまわないです
LTC1298というADCにギターの信号を入れて、12bitの出力をFPGAに入力させてます
ここでいう12bitの値はSDATAからAD_DATAに入れてます
Hz_cnt関数では周波数をカウントしてます。
まず入力信号は0と1の短刑波に変換します。
信号が1周期繰り返すごとにHz_cntという変数に1を入れていきます。
n秒置きにHz_cntの値をHz_DATAに入れて7セグに出力するというシステムです。
861774ワット発電中さん:2013/11/25(月) 23:21:31.90 ID:/U8flYAz
>>860
いやだから、5000は12ビットなのかと。
862774ワット発電中さん:2013/11/25(月) 23:25:03.06 ID:/U8flYAz
矩形波
短刑波
863774ワット発電中さん:2013/11/25(月) 23:25:13.80 ID:1i+4NbTb
ADCは他でも使うの?
使わないんだったら検波回路でも組んで最初から矩形波で入力したらいいのに。
864774ワット発電中さん:2013/11/25(月) 23:32:07.85 ID:wI7YBl+K
>>861
あ、13ビットですね・・・・・・

>>863
予定では周波数カウンタができたらカラオケのリバーブのような機能もつけようと考えてます。
なのでADコンバータは必須です。
仮に周波数カウンタのみだったらプログラムでパルスに変えるより検波回路でやったほうがいいのでしょうか?
865774ワット発電中さん:2013/11/25(月) 23:49:32.80 ID:/U8flYAz
>>864
13ビットとわかって、何か修正して進展したのか?
parameterのとこだけ12を13にしておしまいなら、
ハード設計に向いてない無能だぞ
866774ワット発電中さん:2013/11/26(火) 00:14:39.25 ID:VAsU8/Gj
いやADCが12である以上
13にしては・・・

でも面白そうなことしてるよね
よい酒の肴
867774ワット発電中さん:2013/11/26(火) 08:28:51.00 ID:NrG9w2kp
>>864
ギターの音の波形見た?
FFTしたほうがいいんじやない?
868774ワット発電中さん:2013/11/26(火) 17:40:33.52 ID:PqCbGIPS
>>866
>面白そうなことしてるよね
俺もそう思う。カラオケのリバーブってなんか作る楽しみってのを感じる
869774ワット発電中さん:2013/11/26(火) 22:13:04.47 ID:VAsU8/Gj
オーディオ
無線
パワエレ

3大巨塔っす
870774ワット発電中さん:2013/11/26(火) 23:02:37.35 ID:3h1kcyrQ
高調波も相当混じってるんだがな。
とりあえず周波数カウントが出来れば、チューナとして使える。

でもハードオフのジャンク箱で700円ぐらいのギターエフェクタの沢山有るオマケ機能の
1つに過ぎない。ってかベリンガーで良ければ、新品保証付きエフェクタが1980円だよ。
871774ワット発電中さん:2013/11/28(木) 23:23:20.35 ID:4S11uiAc
前に出てきたMullerのC素子だけど、
the following signals form a combinatorial loop
って警告は出たけど、ISEでちゃんと合成できたよ。
非同期回路も合成しようと思えばできる。
報告まで。
872774ワット発電中さん:2013/11/29(金) 09:04:17.11 ID:gCYa9dw3
そんなの話題にでてたっけ?
非同期式回路をFPGAでなんてのは5年以上前から何度も論文投稿されてるけど
873774ワット発電中さん:2013/11/29(金) 18:43:08.05 ID:kblbKq4T
わざわざ非同期にするのはなんで?
874774ワット発電中さん:2013/11/29(金) 19:45:03.73 ID:3gmFMmTG
>>873
低電力化。クロックが無いからね。
875774ワット発電中さん:2013/11/29(金) 20:27:33.02 ID:D7fhP+Ih
ノイズとか異様に弱そう
876774ワット発電中さん:2013/11/29(金) 23:20:18.40 ID:6vamssHK
信号強度で動きが変わるのはどうなんだろ?
ゲートサイズいじれないとちょっと気持ち悪い。
877774ワット発電中さん:2013/11/29(金) 23:43:34.64 ID:A3xhPSpE
非同期のARM996HSよりも新しい同期設計のM系の方がスペックの消費電力が小さいような
HSって量産化したのかな
878774ワット発電中さん:2013/11/30(土) 20:37:42.87 ID:PNw45uVr
みんながどんなもの設計してるか知らないけど結構消費電力とか気にするものなのか。
うちは制御対象が10kVA下回る事ないから、制御部の消費電力なんて電源の選定以外出来にした事ないわ。
879774ワット発電中さん:2013/11/30(土) 21:03:19.39 ID:UZ4t43cX
携帯向けとかは気に使う。
据え置き向けはあまり気を使わないw
880774ワット発電中さん:2013/11/30(土) 23:37:17.71 ID:Yoe2VOmQ
FPGAって何もしなくても結構電力食うからな。
消費電力気にする分野だとあまり使われないと思う。
881774ワット発電中さん:2013/12/01(日) 00:40:15.92 ID:6kTjWdN3
>>878>>879もFPGAに限定して無いんだけどね。
CPLDとか、もしかしたらゲートアレイかもしれない。
882774ワット発電中さん:2013/12/01(日) 02:23:40.02 ID:hmCu/rFI
>>880
CoolRunnerは、全然電気喰わないよ。
9500シリーズは、ダーダーに電気喰う。DC(0Hz)で300mAとか。信じられない。
何が嬉しいのか、XC9500。
CoolRunner2は、2.5Vなので使いにくい。
CoolRunner2(XPLA3)は、3.3Vができて、電気も食わなくて、最高です。
なんで廃盤に追いやったのか、まったくわからない。
883774ワット発電中さん:2013/12/01(日) 10:01:48.97 ID:pdNsScdp
3.3vくらいが丁度いいのだけど
消費電力は絶対に不利になるよねー

中にレギュレータ入れるのもまた面倒
884774ワット発電中さん:2013/12/07(土) 18:44:45.06 ID:Poensi/h
verilogってなんで入力ポートに初期値を設定できないの?
そのせいで、あちこちで使用しているモジュールに入力ポートを追加したいときに面倒なことになる。

SystemVerilogになっても改善されることはなく、とても不思議なのだが。
885774ワット発電中さん:2013/12/07(土) 18:59:17.57 ID:9Co7Mic6
インスタンスにして固定するなり
シミュレーションならregで初期値入れるなりすればいいんじゃない?

それともプルアップかプルダウンしたいの?
886774ワット発電中さん:2013/12/07(土) 20:27:25.94 ID:p+wuwPmv
>>884
入力portは必ずドライブするはずだから、なぜ初期値を設定する必要があるかわからない。
入力portをのドライバより、弱い信号強度で定数値をassignすれば?
887774ワット発電中さん:2013/12/07(土) 23:29:14.02 ID:34hrljUv
インスタンスするときに、記述していないポートにデフォルト値を与えたい、って事だよね。
VHDLだと
port (
a : in std_logic;
b : in std_logic := '0'
);

port map (
a => a
);
ってインスタンスすると、記述していないbはデフォルトで'0'になる。
後から追加した入力ポートにデフォルト値を与えておいて、すでにインスタンスされているモジュールは
追加したポートを記述しなくても影響が無いようにしたい。
という理解で良いかな?

便利そうだけど、個人的な感覚としては、最初からそう設計したならとにかく、後からパッチ的に
ポート追加してデフォルトの動作を期待する、というのはちょっと気持ち悪いかな〜
「入力ポートが未接続だぞ!」ってエラー出してくれた方が安心なので、VHDLでもこの記述は使ってない。
888774ワット発電中さん:2013/12/08(日) 18:28:13.34 ID:ZnmD6/8O
>>884
だからSystemCに急速移行してるんだよ
889774ワット発電中さん:2013/12/08(日) 20:52:53.38 ID:+wmEzAS9
890774ワット発電中さん:2013/12/08(日) 20:59:30.64 ID:2VlU8eUS
SystemCに急速移行なんかしてるか?
遙かにSystemVerilogの方が多いと思うが
891774ワット発電中さん:2013/12/08(日) 21:05:15.44 ID:j4rReG0g
>>888
EDSフェアにもsystemC関係ほとんどなくなってたし、
高位合成はダメだでしたってことになってきてるみたいよ。
892774ワット発電中さん:2013/12/08(日) 21:11:23.00 ID:2VlU8eUS
SystemC == オートルータ ?
893774ワット発電中さん:2013/12/08(日) 23:00:55.09 ID:G4+oQHtg
>884
できない。
面倒なら、
旧モジュールは残して、機能追加した新しいモジュールとして使うとか
似た機能の存在が許せないなら、旧モジュール名で新モジュールをwrappingして使うとか
894774ワット発電中さん:2013/12/08(日) 23:04:32.95 ID:G4+oQHtg
あ、追加ポートがインスタンス毎の固定値だったなら
ポートじゃなくてパラメータで宣言するといい。
895884:2013/12/09(月) 22:16:42.54 ID:aNrI93OC
>>887
そうそう、そういうことです。
入力未接続の時も不満があって、私の使ったことのあるツールは皆エラー出ません。
これも多分言語の仕様なのでしょうが…

>>893
やっぱりそうなりますよね。

>>885 >>894
たとえば、ほかでも使われているあるモジュールにclk_enを追加して再利用したい、というような場合です。

プルアップは私も試したことあるのですが、うまくいかなかったですね。
当方FPGA使用しているのですがたしか合成の時に無視されたと思います。
896774ワット発電中さん:2013/12/09(月) 23:16:59.24 ID:10lDrdia
パラメータがOKなら、
パラメータによってポートの値を使うか固定値を使うか選べば?
897774ワット発電中さん:2013/12/10(火) 02:45:02.12 ID:7HWZatay
ザイリンクスのIPがそんなやり方だったな
898774ワット発電中さん:2013/12/11(水) 22:40:22.54 ID:ZldMj10h
作る場合は良いけど使い回す時に作った人が気の利いた設計してなかったら泣くね
899884:2013/12/11(水) 22:44:12.96 ID:Rqhb5rTv
>>896
確かに実現できるけど、煩雑だなぁ

今日たまたまAlteraのIP見てたら
input tri0 hoge; // default 0
input tri1 moge; // default 1
といった記述で実装してた。

試してみたらQuartusではこの方法でコンパイルできたけど、ISEではエラーになったよ。
900774ワット発電中さん:2013/12/12(木) 19:28:04.21 ID:9TRbamez
>>899
俺様拡張あるからな
Xi、Alでお互いに使いまわす時大変だよな

Cコンパイラーではコンパイラ識別マクロ(__GNUC__、_MSC_VERとか)あって、
それを使って各社のコンパイラの俺様拡張部を記述するんだけど、HDLコンパイラー
でもこれあるのか? あるなら、Xi、Alのコンパイラ識別マクロは何?
901774ワット発電中さん:2013/12/12(木) 20:32:15.73 ID:uM9xN50L
XILINX_ISIM とか XILINX_SIMULATOR とか MODEL_TECH っていうのはあるらしい。
XSTの predfined macro で調べても、同じような質問があるだけ。
902774ワット発電中さん:2013/12/17(火) 09:17:43.83 ID:DRi51ZrR
Verilogにて、1モジュールの記述量はどれくらいが適当?

Javaみたいな感覚で1機能1モジュールで再利用しやすい単位でモジュール分割して
たくさんのモジュール作ったら、怒られたよ。
1モジュール100行とか200行くらいの。

まとめろ、って指示があったので、つなげて3000行くらいのモジュールにしたら、ニッコリされたよ。
もちろん、再利用は絶対不可能な塊りとなったお。
903774ワット発電中さん:2013/12/17(火) 09:24:22.99 ID:t0y5ShJA
モジュール数十個でまとめろってどこの糞コンパイラだよ
904774ワット発電中さん:2013/12/17(火) 10:42:48.66 ID:QoSbcLcq
どうせ再利用なんてしないよ
905774ワット発電中さん:2013/12/17(火) 12:38:04.33 ID:iRv4Nhpr
再利用とか効率化とかしないように尽力する上司もいるからな。
技術の内容は誰にでもは分からないけど、時間がかかってるのは誰にでもわかる。
熟慮してもボーッとしてても分からないけど、汗かけば誰からも頑張っているように見える。
906774ワット発電中さん:2013/12/17(火) 13:39:02.67 ID:QoSbcLcq
TTLを並べたボードを何ヶ月もかかってデバッグしてた仕事が
シミュレーションで30分で終わったとしても
もらえる給料は30分分だ!
907774ワット発電中さん:2013/12/17(火) 14:19:00.96 ID:a4jzs334
>>906
派遣ですか?
908774ワット発電中さん:2013/12/18(水) 20:30:14.49 ID:00PM1amr
>>903

モジュールの分割単位が小さいと、モジュールのポート記述部の分だけ冗長になるから、
合成後の回路のサイズとかスピードが悪くなる。
だから、なるべくモジュールに分割しないで、A0用紙1枚の回路図を書く感覚で記述しろ。
って、年長者は言っていたなあ。

Flatten? なにそれ?
一つのmoduleにまとめないとコンパイラさんが消化できなくて、おかしな回路を吐き出すぞ。
909774ワット発電中さん:2013/12/22(日) 22:35:20.83 ID:DA7PeHCC
単純ミスを防ぐために心掛けてる事ってある?
910774ワット発電中さん:2013/12/23(月) 00:25:29.97 ID:ejgly5jk
ラッチを作らないですむように、組み合わせ回路にalwaysを使わないとか。
今だとalways_comb でいいけど。
911774ワット発電中さん:2013/12/23(月) 09:21:07.44 ID:q64i/f58
>>909
人に書かせて手を入れる。
逆も。
効率的なやり方とかがあれば、それを案として伝えるけど、そう組むように指示はしない。
こういう作業に関しては本当に1+1=2じゃない。
912774ワット発電中さん:2013/12/23(月) 20:06:33.51 ID:a+ryevPB
>>911
> こういう作業に関しては本当に1+1=2じゃない。

たしかに。
単純な成果物の量だけ見ると、 1+1 <<2 だから、上司は嫌がるけど
品質は 1+1>>2 だよね。
913774ワット発電中さん:2013/12/23(月) 20:31:06.08 ID:bgEipdJ0
1+1を2ビット左にシフトする
914774ワット発電中さん:2013/12/24(火) 00:06:01.66 ID:ePLI5vNh
単純ミスを防ぐためには、
>>912 みたいな記述をしないことだ。

1+1<<2 じゃなくて、きちんと括弧をつけて (1+1)<<2 が望ましい。
915774ワット発電中さん:2013/12/24(火) 00:07:51.52 ID:fmRqQKdG
数学記号だったら≪を使った方が
916774ワット発電中さん:2013/12/25(水) 01:23:38.87 ID:K5k4laTq
括弧は執拗なくらい書いてるな。
掛け算でも括弧。
917774ワット発電中さん:2013/12/28(土) 11:08:39.63 ID:YGe8yxBP
1+2*3= パッと見、9と思ってしまう俺は、アホ?
918774ワット発電中さん:2013/12/28(土) 13:33:03.26 ID:JetN1yog
そうだな
919774ワット発電中さん:2013/12/28(土) 14:22:52.27 ID:Uj6SpPhI
>>917
プログラマの心理として

1+2*3の並びなら
(1+2)*3を計算したい時が多いかな

本当に1+2*3としたい時は
2*3+1と書くだろうな
920774ワット発電中さん:2013/12/28(土) 16:20:27.72 ID:KIUev2kI
a*a+b*b みたいな書き方なら多いんじゃないか?
921774ワット発電中さん:2013/12/28(土) 16:38:57.65 ID:W58uxnCs
たいていはそんな演算式を1クロック内で収めようとしない。
922774ワット発電中さん:2013/12/28(土) 17:12:27.74 ID:zYiksy6u
>>917
確定だろ。間違いなく池沼レベル

>>919
>本当に1+2*3としたい時は
>2*3+1と書くだろうな
はぁ?
923774ワット発電中さん:2013/12/28(土) 19:29:11.71 ID:lvs9N0VY
>>921
どんなプロセス使ってるんだよ?
924774ワット発電中さん:2013/12/29(日) 16:12:11.33 ID:jj8hp3Eq
合成やP&R後にセトアプエラ出る可能性を恐れたら
電力や面積が増えてでも分割するのは仕方ない。
鬼の首を取ったように騒ぎ立てるからな。
925774ワット発電中さん:2013/12/29(日) 22:45:24.49 ID:tdLMa4Lp
iMPACTでダウンロードケーブルで読み出せないように書き込めるの?
926774ワット発電中さん:2013/12/30(月) 11:38:39.85 ID:tdcafvRm
+1*23
って書けばよい(どやっ
927774ワット発電中さん:2013/12/30(月) 12:13:25.75 ID:uK3uNiq4
FPGAで、PICマイコンは作れますか?
928774ワット発電中さん:2013/12/30(月) 12:26:40.95 ID:f2umUDd8
929774ワット発電中さん:2013/12/30(月) 13:12:28.62 ID:9+xf/NsG
>>926
1 2 3 * +
930774ワット発電中さん:2013/12/31(火) 11:12:49.22 ID:Ol/GRtoI
トラ技で作る記事あったねなつかしい
931774ワット発電中さん:2014/01/09(木) 17:50:22.12 ID:3Ty4sx0M
FPGAをつかってエフェクターのディレイをつくっています
http://www.youtube.com/watch?v=fVxoNzcRO1I

現在、AD変換したのをDA変換して出力する部分までは作ることができました。
そこで、FPGAに大量のレジスタを作って信号を遅延させようと考えていました。
しかし、論理合成にかなり時間がかかってしまうのと、回路規模が大規模になってしまうので
外部メモリを使用しようと思います。
しかし、外部メモリは初めて扱うので、どれを使うのが適切かわかりません。
どのようなRAMを買えばいいのでしょうか?
なるべく扱いやすいものが望ましいです。
信号は11bitでサンプリング周波数は約100kHzです。
最大1.5秒ほど遅延させたいので、11bit*100k * 1.5 で2Mbit程度のデータを格納できるものがいいです。
932774ワット発電中さん:2014/01/10(金) 01:26:00.64 ID:ABeC3TO8
評価キットの類を使うならそれについてるSRAM/DRAMを使ってもいいし、ターゲットFPGAによっては内蔵RAMでカバーしきれるかもしれない。
やはり順当なのはDDRかなー。
DDRの場合は何かしらのコントローラが必要になるから、その組み込みがだるいならQDR SRAMか。
933774ワット発電中さん:2014/01/10(金) 01:49:37.39 ID:vdpvXpTg
934774ワット発電中さん:2014/01/10(金) 02:46:53.30 ID:DA5TPMR7
DDRのコントローラって、IPはあるのでしょうか?
それとも、苦労して自作でしょうか
935774ワット発電中さん:2014/01/10(金) 02:48:23.24 ID:V6sBNAo/
IPがある
936774ワット発電中さん:2014/01/10(金) 08:13:35.46 ID:ulhMluwy
マイコンを使ってみて



言っちゃダメか
しかし11bitのadか
12bitのしか知らないなぁ
937774ワット発電中さん:2014/01/10(金) 12:13:35.58 ID:SdGDQheq
>>933
なにそれ、遅いし高いし

http://akizukidenshi.com/catalog/g/gI-02165/
938774ワット発電中さん:2014/01/10(金) 12:16:09.15 ID:SdGDQheq
8bit アクセス限定なのかな?
939774ワット発電中さん:2014/01/11(土) 20:53:54.97 ID:BfgxoUfd
素人な質問ですまないけど、気になってて…教えてください:

CPUのTLB(仮想記憶のアドレス変換のキャッシュ)のエントリに、今実行してる命令のオペランドのアドレスが入ってるか探そうとすると、
TLBの全エントリと比較しないといけないけど、逐一やってると遅いだろうし、力技で全エントリに比較回路積んでor取るのも回路量が凄そうだし、
どうやってるのでしょう?何か上手い工夫あり?
940774ワット発電中さん:2014/01/12(日) 09:57:31.75 ID:3dGv7KEJ
キャッシュと同じでセットアソシエイティブで最適化すればいいのでは?
でもキャッシュよりはきついか
941774ワット発電中さん:2014/01/12(日) 12:49:28.16 ID:J9vS9Z/p
TLBは普通のキャッシュほどエントリいらないので、
エントリ数が少なければ全部に比較回路入れるケースもあるよ。
Core i7だと4-way set associativeだったかな。
942774ワット発電中さん:2014/01/12(日) 13:03:05.79 ID:tJji7dcR
一致見るだけならセレクタと大して変わらないんじゃないの
943774ワット発電中さん:2014/01/12(日) 13:33:34.72 ID:rnb+wHuV
944774ワット発電中さん:2014/01/12(日) 14:14:20.98 ID:IC0pv414
>>939
メモリ上のアドレス変換テーブルをそのままキャッシュするTLBもあるけれど、
変換した結果をちょっとだけ(16個とか8個だけ)専用レジスタに入れといて
一致しなかったら例外割り込みかけてソフトウェアで変換テーブル引きなおすって方式も多く使われてる
上位アドレスはあまり変化しないので、その程度でも実用になる
この手の方式の場合、比較数が少なければ、全部に一致検出回路入れちゃうのもアリ

なので、そこら辺の実装は考え方次第〜
945939:2014/01/12(日) 15:21:45.89 ID:PhnKYz2t
みなさんレスどうもです。

知りたかったのはTLBの仕組みではなく、>>943氏の146にある図の「一致」と書いてある所の回路構成はどうなってるの?
全部比較してたら比較器の山になりそうだなあ、と言う点なのですが

まあしかし、驚く様な方法が何かあるってわけでもなさそうですね。
946774ワット発電中さん:2014/01/12(日) 15:50:01.58 ID:LFrnyTR8
947774ワット発電中さん:2014/01/13(月) 16:04:05.92 ID:rAPvjDbc
ある寺は昔、CAMを載っけてたね
948774ワット発電中さん:2014/01/13(月) 16:10:42.69 ID:u3/Plfwl
ふとスレチかとおもったけど
CPU設計の類でココより詳しいスレってあるのかな
949774ワット発電中さん:2014/01/13(月) 19:02:41.32 ID:reACX8MK
昔はアーキテクチャスレとかあったような気がしたけどな
950774ワット発電中さん:2014/01/14(火) 23:36:53.56 ID:ETRYJOOk
技術屋ならCPU創るだろ?
http://uni.2ch.net/test/read.cgi/denki/1072113898/

【CISC】CPUアーキテクチャと論理合成方法【RISC】
http://uni.2ch.net/test/read.cgi/denki/1072167624/
951774ワット発電中さん:2014/01/16(木) 00:32:37.83 ID:iI0h/M/5
>403
何の目的でそう書きたいのかわからないけど、generate / genverでいいならそれは使えると思うよ。
952774ワット発電中さん:2014/01/17(金) 01:38:36.39 ID:cTrPIvQ7
>945
これなんかは比較的わかりやすいかな。
プリチャージして、比較線を"00"から"01"や"10"に変えると、
一致したラインはHのままで、不一致のラインはLに落ちる。
ttps://www.pagiamtzis.com/cam/camintro/
953774ワット発電中さん:2014/01/22(水) 13:03:14.88 ID:ce++n6S4
954774ワット発電中さん:2014/01/22(水) 21:00:17.15 ID:X7EcwJH9
>>953
倒産とかビビラせんなや

この話かい

ルネサス、5400人削減へ…整理解雇検討も
ttp://www.yomiuri.co.jp/atmoney/news/20140121-OYT1T01637.htm?from=ylist
955774ワット発電中さん:2014/02/05(水) 05:45:41.49 ID:TTOsObVI
HDLに未来はありますか?
956774ワット発電中さん:2014/02/05(水) 21:18:20.56 ID:KRE23Nqj
HDL書くだけのやつに未来はない
957774ワット発電中さん:2014/02/05(水) 21:24:59.49 ID:Fm84MAm+
うむ、シミュレーションもしろ
958774ワット発電中さん:2014/02/06(木) 17:46:42.01 ID:fgL1xB7J
これからはC言語設計
959774ワット発電中さん:2014/02/06(木) 20:46:42.09 ID:juwI/tS8
と言われ続けて20年
960774ワット発電中さん:2014/02/06(木) 21:29:06.63 ID:fgL1xB7J
そろそろフリーのツールが出てもいい頃だよな
961774ワット発電中さん:2014/02/06(木) 22:00:47.45 ID:juwI/tS8
システムCならシミュレータはフリーだろ。
波形とか見れるのか知らんが・・・
962774ワット発電中さん:2014/02/06(木) 23:18:33.76 ID:XZRF60Vw
HDLがどうのとかじゃなく回路設計全般食ってけねぇ
963774ワット発電中さん:2014/02/08(土) 01:39:05.82 ID:OURmDi4q
>>962
回路もアートワークもソフトも実装も全部自分で出来る人が必要(キリッ ってのが世の要望かと。
無論一人分の給料で(年収で算出だから)残業代なし、必要とあらば何日でも残業する事を暗に要求される。

というブラックな仕事なら幾らでもあるよ?
964774ワット発電中さん:2014/02/08(土) 05:00:25.94 ID:L4KAS2rW
こういう香具師は暇な時も給料出てることには文句言わないんだよな
965774ワット発電中さん:2014/02/08(土) 06:21:43.29 ID:LWQd82gw
暇な時なんてあるんかね?
963みたいな事を要求されたら。
966774ワット発電中さん:2014/02/13(木) 13:06:11.39 ID:Q7I6KMZD
言われてみると、確かに暇がないわ。
967774ワット発電中さん:2014/02/27(木) 17:31:48.90 ID:nph3hjVa
いつの間にかISEじゃなくてVIVADOになってるー?
968774ワット発電中さん:2014/02/27(木) 18:27:13.43 ID:PtAAz/7w
スレ違いね
ちなみにVivadoは7シリーズ以降しか使えないよ
969774ワット発電中さん:2014/03/01(土) 01:59:26.61 ID:LfZx0xsF
>>968
Xilinxは、なんでVivadoでSpartanシリーズを捨てたんでしょう。

Spartanの性能で十分に仕事になるし、
Spartanをサポートしていないのでは、Vivadoを使おうという気は起きない。

Spartanシリーズ好きなんだけど。
970774ワット発電中さん:2014/03/01(土) 10:03:57.76 ID:MQMLtJai
サポートに聞けよ
971774ワット発電中さん:2014/03/02(日) 00:47:06.89 ID:mkedsJq+
開発チームがバラバラだからな
戦略統一性にかける
やりたい事優先になりやすい
972774ワット発電中さん:2014/03/02(日) 18:45:43.92 ID:dUA3iqNj
VivadoでSpartanをサポートしても利益が出ないからでしょ
973774ワット発電中さん:2014/03/02(日) 23:44:36.64 ID:iY7dbpje
そもそもSpartan自体がオワコンだし
974774ワット発電中さん:2014/03/04(火) 01:01:53.55 ID:lGWOET4n
オワコンって・・・終わったコン・・・・なんだ???

さすがにSpartan-3は終わってほしい。未だに指定される事があるけど。
975774ワット発電中さん:2014/03/04(火) 08:32:29.51 ID:53rM8B7b
Spartanいいじゃん。3ANとか素敵。
976774ワット発電中さん:2014/03/04(火) 09:35:46.50 ID:4/NVLluh
flash内蔵が標準になってほしい
977774ワット発電中さん:2014/03/04(火) 10:20:18.09 ID:ZeVBbPl6
3ANだけでやめちゃったって事は、ベンダーには旨みが無いんだろうね
978774ワット発電中さん:2014/03/05(水) 21:15:47.59 ID:i1/p+kWn
>>971
Spartan6なんて時代に合わないのを出すぐらいだからな
979774ワット発電中さん:2014/03/06(木) 16:42:41.27 ID:sOpHVFq3
【Verilog】 記述言語で論理設計Project13 【VHDL】
http://uni.2ch.net/test/read.cgi/denki/1394091422/

     _,,,
    _/::o・ァ
  ∈ミ;;∧,ノ∧    ,,,,,   ,,,,,
    ( ´・ω・) ,,,,(o・e・),(。・e・),,     新スレです
     /ヽ○==(。・e・)(。・e・)(o・e・)     仲良くつかってね。
    /  ||_彡,,, ノ彡,,, ノ彡,,, ノ
    し' ̄(_)) ̄ ̄ ̄(_)) ̄(_))  ガラガラ
980774ワット発電中さん:2014/03/08(土) 19:34:27.42 ID:V1ISCksZ
もうジスレの季節か
今回はおそかたね
981774ワット発電中さん
>>978
どのへんが時代に合わないの?