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

このエントリーをはてなブックマークに追加
1774ワット発電中さん
HDLの処理系も、それを実際に動かすシミュレータ・評価基板も
安価で入手できるようになってきました。

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

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

前スレ
【Verilog】記述言語で論理設計 Project7【VHDL】
http://science6.2ch.net/test/read.cgi/denki/1222899759/
参考情報

FPGA
QuickLogic http://www.quicklogic.co.jp/
30日間無料だと思った。ワンタイムだけどね・・・

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

Verilogシミュレーター(無料)
Icarus http://icarus.com/
 説明 http://ryusai.hp.infoseek.co.jp/icarus.htm
http://www.ice.gunma-ct.ac.jp/~kimsyn/verilog/FreeSim/iverilog/iverilog.html
IVI http://ivi.sourceforge.net/
 説明 http://www.kumikomi.net/article/explanation/2005/10icarus/01.html

VCDフォーマットの波形表示(無料)
GTKWave http://www.cs.manchester.ac.uk/apt/projects/tools/gtkwave/
 説明 http://ryusai.hp.infoseek.co.jp/gtkwave.htm
http://www.is.kyusan-u.ac.jp/cgi-bin/is-admin/wiki.cgi/CAD?page=GTKWave
21:2009/01/31(土) 18:08:40 ID:91TsDTyZ
関連スレ
【FPGA/CPLDスレ】 XILINX/ALTERA/Lattice/Actel 09@電気・電子
http://science6.2ch.net/test/read.cgi/denki/1221925121/

暇だからVHDLでも書こうかな@プログラム
http://pc11.2ch.net/test/read.cgi/tech/1043858153/

フリーのツール(情報追加よろしく!)
ALTERA Quartus II Web Edition http://www.altera.co.jp/
XILINX ISE WebPack http://www.xilinx.co.jp/

評価基板とか(追加情報よろしく!)
Spartan-3 Starter Kit http://www.xilinx.co.jp/products/spartan3e/s3eboards.htm
CQ出版のシリーズ http://www.cqpub.co.jp/eda/

雑誌
Design Wave Magazine(DWM) http://www.cqpub.co.jp/dwm/
※基板が付録で付いている号はバックナンバー希少になりがち
Interface http://www.cqpub.co.jp/interface/
31:2009/01/31(土) 18:09:44 ID:91TsDTyZ
新スレ立ってないのに埋めるのは愚者のやること
気をつけよう
4774ワット発電中さん:2009/01/31(土) 21:03:28 ID:LYxGnrmC
                          刀、           , ヘ
                  /´ ̄`ヽ /: : : \_____/: : : : ヽ、
              ,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : }
               /: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : /
     ,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/
    /: :.,.-ァ: : : |: : : : : : : : :    :\: : : : :: : : :ヽ  \   /: : : :/
    ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i  / /: : : : :/
     /: :     ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/  /: : : : :/         、
.    /: : /  . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : |  /: : : : :/            |\
   /: : ィ: : : : :.i: : |   \!___/ ヽ:: : : : : : :\|:.:.:.:/:!  ,': : : : /              |: : \
   / / !: : : : :.ト‐|-    ヽ    \: : : : : l::::__:' :/  i: : : : :{              |: : : :.ヽ
   l/   |: : :!: : .l: :|            \: : : l´r. Y   {: : : : :丶_______.ノ: : : : : :}
      l: : :l: : :ト、|         、___,ィ ヽ: :| ゝ ノ    '.: : : : : : : : : : : : : : : : : : : : : : /
      |: : :ト、: |: :ヽ ___,彡     ´ ̄´   ヽl-‐'     \: : : : : : : : : : : : : : : : : : イ
        !: :从ヽ!ヽ.ハ=≠' , ///// ///u /           ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      V  ヽ|    }///  r‐'⌒ヽ  イ〉、
              ヽ、______ー‐‐' ィ´ /:/:7rt‐---、       こ、これは>>1乙じゃなくて
                  ィ幵ノ ./:/:./:.! !: : : : :!`ヽ     ポニーテールなんだから
              r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\   変な勘違いしないでよね!
               /: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
5774ワット発電中さん:2009/01/31(土) 21:06:30 ID:bqi3mWiH
>>1
(゚д゚ )乙 これは乙じゃなくてポニーテールなんたらかんたら
6774ワット発電中さん:2009/02/01(日) 02:00:55 ID:85ymCS9s
>>1

次スレ立てずに前スレ埋めたやつ氏ね
7 ◆YMO/ALTERA :2009/02/01(日) 08:28:56 ID:2OMIQxAE BE:998948693-2BP(1111)
イチオツ

そろそろ基板遊びに復帰したい。
社内無職になりそうだ
しね!
8!omikuji:2009/02/01(日) 22:16:42 ID:tmlDWEjO
!omikuji
9774ワット発電中さん:2009/02/01(日) 22:25:20 ID:tmlDWEjO
前スレキャッシュ
ttp://unkar.jp/read/science6.2ch.net/denki/1222899759/1231601303/

denki:電気・電子[レス削除]
264 :住人のスルー度が上がった:09/01/24 21:22
削除対象アドレス:
http://science6.2ch.net/test/read.cgi/denki/1222899759/308-313
http://science6.2ch.net/test/read.cgi/denki/1222899759/383-385
http://science6.2ch.net/test/read.cgi/denki/1222899759/387-396
http://science6.2ch.net/test/read.cgi/denki/1222899759/443
http://science6.2ch.net/test/read.cgi/denki/1222899759/496
http://science6.2ch.net/test/read.cgi/denki/1222899759/509
http://science6.2ch.net/test/read.cgi/denki/1222899759/667
http://science6.2ch.net/test/read.cgi/denki/1222899759/691
http://science6.2ch.net/test/read.cgi/denki/1222899759/697
http://science6.2ch.net/test/read.cgi/denki/1222899759/716
http://science6.2ch.net/test/read.cgi/denki/1222899759/748-750
http://science6.2ch.net/test/read.cgi/denki/1222899759/752-754
http://science6.2ch.net/test/read.cgi/denki/1222899759/757-758
http://science6.2ch.net/test/read.cgi/denki/1222899759/774
削除理由・詳細・その他:
連続投稿・コピー&ペースト
265 :住人のスルー度が上がった:09/01/24 21:31
削除対象アドレス:
http://science6.2ch.net/test/read.cgi/denki/1222899759/22-23
http://science6.2ch.net/test/read.cgi/denki/1222899759/33
http://science6.2ch.net/test/read.cgi/denki/1222899759/50-52
http://science6.2ch.net/test/read.cgi/denki/1222899759/65-67
http://science6.2ch.net/test/read.cgi/denki/1222899759/76
http://science6.2ch.net/test/read.cgi/denki/1222899759/82
http://science6.2ch.net/test/read.cgi/denki/1222899759/111
http://science6.2ch.net/test/read.cgi/denki/1222899759/135
http://science6.2ch.net/test/read.cgi/denki/1222899759/138-140
http://science6.2ch.net/test/read.cgi/denki/1222899759/149
削除理由・詳細・その他:
連続投稿・コピー&ペースト
10774ワット発電中さん:2009/02/01(日) 22:26:41 ID:tmlDWEjO
>>1 O2

次スレ立てずに前スレ埋めたやつ氏ね
11774ワット発電中さん:2009/02/04(水) 17:50:52 ID:jvfuASvN
VHDLでarrayの初期値の設定ってどう書きますか?
type TypeArea is array (9 downto 0) of std_logic_vector(7 downto 0);
signal ram : TypeArea := ?????;
12774ワット発電中さん:2009/02/04(水) 23:40:28 ID:qdmI2cPL
なるほど
ありがとうございました
13774ワット発電中さん:2009/02/16(月) 13:40:35 ID:lHi1fNtU

XilinxのFPGAのDSPコアを使って、LPFを作りたいです。
例えば、1KHzの8次LPFを、FIRやIIRで作ったとして、
係数の値はそのままで、DSPへのクロック周波数(FPGAのメインクロック)を、
2倍にするとLPFのカットオフ周波数も2倍、
1/2倍にするとLPFのカットオフ周波数も1/2倍、
とかになるのでしょうか?

14774ワット発電中さん:2009/02/16(月) 14:59:46 ID:pmlsbrOI
>>13
DSPの周波数を変えるって事はサンプリング周波数を変えるって事で良いのかな?
それだとsin 1kHzを48kHzでサンプリングするのと、sin 2kHzを96kHzでサンプリングしたものは
DSPから見て違うかどうか考えてみたら?
15774ワット発電中さん:2009/02/16(月) 17:34:19 ID:lHi1fNtU
>>14
ありがとうございます。

なるほど、その通りですね。
そうですよねぇ、何かわかったような気がします。なるほどぉ。
ありがとうございました。
16774ワット発電中さん:2009/02/17(火) 22:48:49 ID:6syCA3jZ
ハードで直接LPF作れば小さくて早いのに・・・orz
17774ワット発電中さん:2009/02/18(水) 12:30:45 ID:ml9l9ftP
>>16
13は、カットオフ周波数をデジタル設定したいのだと予想。
18774ワット発電中さん:2009/02/18(水) 23:27:49 ID:JZDtRQ8c
つ「デジタルポテンショメータ」
あ、いや、いろいろ言われそうだからひっこめよう・・・
19774ワット発電中さん:2009/02/18(水) 23:50:27 ID:y4E3RUgp
クロックを555で作ればいいのだ。
周波数は、デジタルポテンショメータで制御。
20774ワット発電中さん:2009/02/19(木) 04:26:48 ID:i0E6nYpL
大きな一つのレジスタ(例えば1000bit)を作って、
アドレスでデータ入出力を制御したいのですが、
効率よく書くにはどうすればいいのでしょうか。

レジスタの宣言の仕方と、モジュールの入出力は変えたくないです。

我流でやってきたつけなのか、スマートに書く書き方が分からないorz

レジスタの大きさやアドレスの幅は条件によって変わるから、
最終的に俺がとった方法が、条件にあったソースをはき出すソフトをVCで作るという。

大きな条件を指定するとひたすら長いソースができるので、なんか格好悪く感じて……

----- ソース -----

module memory(
   input CLK ,
   input [6:0] ADDR ,
   input [9:0] DAT_IN ,
   output [9:0] DAT_OUT
);

reg [999:0] REG;

always @( posedge CLK ) begin
   case(ADDR)
      7'h00: REG[9:0] = DAT_IN;
      7'h01: REG[19:10] = DAT_IN;
      7'h02: REG[29:20] = DAT_IN;
      7'h03: REG[39:30] = DAT_IN;
      〜〜〜省略〜〜〜
      7'h63: REG[999:990] = DAT_IN;
      default: begin end
   endcase
end

function [9:0] OUT_REG;
   input [999:0] REG;
   input [6:0] ADDR;
   case(ADDR)
      7'h00: OUT_REG = REG[9:0];
      7'h01: OUT_REG = REG[19:10];
      7'h02: OUT_REG = REG[29:20];
      7'h03: OUT_REG = REG[39:30];
      〜〜〜省略〜〜〜
      7'h63: OUT_REG = REG[999:990];
      default: begin end
   endcase
endfunction

assign DAT_OUT = OUT_REG( REG, ADDR);

endmodule
21774ワット発電中さん:2009/02/19(木) 16:57:48 ID:gt940yI6
REG[ADDR*10+9:ADDR*10]<=DAT_IN;
22774ワット発電中さん:2009/02/19(木) 20:59:58 ID:i0E6nYpL
>>21
それだと

ADDR is not a constant

って怒られるんですよね。。。
QuartusII v8.1です。
23774ワット発電中さん:2009/02/19(木) 22:59:37 ID:YxFHkdcH
そんなでっかいレジスタ作っちゃった時点でスマートじゃないとしか・・・
24774ワット発電中さん:2009/02/19(木) 23:05:18 ID:+UY9UIxE
reg [9:0] REG [0:99];
REG[ADDR] <= DAT_IN;
2520:2009/02/20(金) 00:54:33 ID:Tb6Co0MY
>>23-24
うーん、確かにそれができると良いのですが。

>>20には書いてませんでしたが、作ったレジスタを全て一気に
別のモジュールにアウトプットするという豪快な回路なので、
REGはいくらでかくても一つのレジスタにしたいんですよねえ。

つまり、受け取る方も豪快なんですけど。(input [999:0] REG_IN)
単純なのにソースは長くなるのが悲しい。

実物に近く書くとこんな感じです。


module memory(
   input CLK ,
   input [6:0] ADDR ,
   input [9:0] DAT_IN ,
   output [9:0] DAT_OUT ,
   outpu [999:0] REG_OUT
);

reg [999:0] REG;

assign REG_OUT = REG;

always @( posedge CLK ) begin

〜〜〜以下略〜〜〜
26774ワット発電中さん:2009/02/20(金) 01:00:38 ID:IGerlIeZ
普通に(レジスタビット長/入出力ビット長)個のレジスタアレイ(メモリ)じゃいかんのか?
2720:2009/02/20(金) 01:33:09 ID:Tb6Co0MY
reg [999:0] REG;

こんなレジスタを作って、
入出力は10bit単位ですけど、
内部では15bitシフトとか16bitシフトとか、
あまりきりのよくないことをしたいわけです。

REG <= { REG[999:15] , {15{1'b0}} };
REG <= { {16{1'b0}} , REG[999-16:0] };

そういう場合、

reg [9:0] REG [99:0];

のように宣言しても同じようなことはできるのでしょうか?
1000bitバスでoutputすることもできるのでしょうか?

あー、レジスタを前者、wireを後者のように宣言して繋ぐことはできるのだろうか。

眠くて何書いてるか分からなくなってきた。
28774ワット発電中さん:2009/02/20(金) 05:04:53 ID:eDjTuNlc
スマートになるわけではないけど、別の書き方。
reg [9:0] REG [0:99] ;
REG[ADDR] <= DAT_IN ;
DAT_OUT = REG[ADDR] ;
REG_OUT = {REG[99],REG[98], ....(略) , REG[1],REG[0]} ;
REG_SHIFT_OUT = { REG_OUT[999:15] , {15{1'b0}} } ;
29774ワット発電中さん:2009/02/21(土) 19:52:52 ID:s4VFFEDU
functionを使って乗算器を作りたいのですがうまくいきません;;
一応自分で作ってみたのですがわけのわからない値が出てしまいます。。。
根本的にやり方間違っているのでしょうか・・・?

function [7:0] multi;
input [3:0] x;
input [3:0] y;
integer i;

begin
for(i=0;i<4;i=i+1)begin
multi = multi + (x[i]==1)?y>>i:0;
end
end
endfunction
30774ワット発電中さん:2009/02/21(土) 19:59:53 ID:s4VFFEDU
あ・・・シフト演算逆ですよね
すみません
31774ワット発電中さん:2009/02/21(土) 20:55:05 ID:kCtI+Q83
function [7:0] multi;
input [3:0] x;
input [3:0] y;

begin
multi = x*y;
endfunction



・・・ごめん
32774ワット発電中さん:2009/02/21(土) 21:19:46 ID:s4VFFEDU
*はもう使いすぎて乗算器が足りなくなってしまったのですTT
いろいろ調べたら&の使い方間違ってますね
やりなおします・・・
33774ワット発電中さん:2009/02/21(土) 21:49:41 ID:s4VFFEDU
すみません、自己解決しましたm(_ _;)m
34774ワット発電中さん:2009/02/26(木) 01:26:04 ID:uGv2cxBH
聞いたんだから解決したらその方法を書くべきかと
35774ワット発電中さん:2009/03/01(日) 11:52:58 ID:FFyhXXyF
>>20
亀レスでスマソ。
QuartusIIってVerilog 2001に対応している?
対応してたら REG[ ADDR +: 10 ] と書けるよ。
切り出すスライスの幅(今の場合は10bit)は定数でないといけないけど
開始位置は変数が使える。
36774ワット発電中さん:2009/03/01(日) 13:21:52 ID:j1Qh1bnw
QuartusはVerilog2001とかSystemVerilogを選ぶ選択肢があったよ
完全に対応してるのかは、知らないけど・・・

ISEもあるのかな?ISEは色々なところに設定がちりばめられていてよく分からない(使ってないしw
37774ワット発電中さん:2009/03/01(日) 16:47:45 ID:5moOXFv1
ISEも対応してるな
どの程度かは知らないけど
38774ワット発電中さん:2009/03/02(月) 03:04:44 ID:cHMF7xy1
>>35のREG[ADDR+:10]というのは、どのような動作でしょうか。
たぶん、REG[ ADDR+ : 10 ]という部分分けでいいですよね?


39774ワット発電中さん:2009/03/02(月) 04:10:00 ID:QXNE6zrf
>REG[ADDR+:10]
この書き方合成できたっけ?
40774ワット発電中さん:2009/03/02(月) 07:24:46 ID:JOVwZNet
>>38
違う、違う。
+: という演算子。ADDRを開始位置にしてインデックスを増加させた10ビット
つまりADDRからADDR+9までを切り出しくれる。
同様に -: というものもある。この場合は、ADDRからADDR-9まで。

>>39
合成するような記述に使った事はないので、合成可能かどうかは分からない。
アドレスデコーダーを生成するだけなので合成できるような気はするけど。
41774ワット発電中さん:2009/03/02(月) 08:09:15 ID:JOVwZNet
と思ったけど、ビット幅が2のべきじゃないと割り算が必要になるから無理かな?
42774ワット発電中さん:2009/03/02(月) 14:08:45 ID:cHMF7xy1
>>38です。

>>40
ありがとうございます。なるほど、便利そうですね。
もう少し教えてください。

 REG[ ADDR+: 10 ] だと、 範囲を示す「:」がなくなってしまうように思うのですが、
それは違いますでしょうか?

 REG[ 24 : 10 ] → REGの24bit目から10bit目 なので

 REG[ ADDR+: : 10 ] や、

 REG[ ADDR+ : 10 ] なら、わかるような気がするんです。

43774ワット発電中さん:2009/03/02(月) 16:45:44 ID:WaUfAkIT
ごめん。何を言いたいのか分からん。
配列から一部を取り出すのに、
「ここからここまで」と指定する方法、と
「ここから何個」と指定する方法
の2つがあって、それぞれに別々の表記法がある
というだけの話なんだけど。

表記法が気に入らないという話なら、こんなところでなく
IEEEへ提案してね。
ちなみに1364は1800に統合されたから、提案するんだったら
1800だよ。
44774ワット発電中さん:2009/03/02(月) 17:22:28 ID:wcnhp7x3
あなたは日本のモンローですよ
僕はそう思います
45774ワット発電中さん:2009/03/02(月) 23:08:30 ID:3EevpmMk
それは飯島愛のことか?
46sage:2009/03/03(火) 03:30:52 ID:se2bPRsO
過労で倒れて職場から離れて数年、
以前は、
VHDLかVerilogで記述、
Synopsys製で論理合成
CADENCE製でレイアウト
だったんですけど、

今は変わってきているんでしょうか?

47774ワット発電中さん:2009/03/03(火) 08:09:52 ID:n1szKiix
>>46
ターゲットの規模やデバイスに依存するから
一概にこうだって話はないよ
あえて言えば、進化してるのは検証ツール
設計・記述・合成ツールは昔から変わってない感じ
48774ワット発電中さん:2009/03/03(火) 09:27:54 ID:3q3jXATx
>>46
復帰するんですか?
49sage:2009/03/03(火) 14:23:34 ID:se2bPRsO
>>47
検証とは例えば、思い出せるのは
論理機能検証には(MentoerGraphicsのModelsimで)テストカバレッジとか、
非同期検証(Synopsys製Formality?とか)、
静的タイミング検証(Synopsys製PrimeTimeとか)
動的タイミング検証(Synopsys製VCSとか)、
他にもやってたような・・・

省エネ設計にはCTS手前でのプリミティブレベルのゲーテッドクロックと
論理合成時のゲーテッドクロック化

今だとフィジカル合成が主流なんでしょうか。
(論理合成でスピードを速めに設定すると面積増加→レイアウトの配置配線には遅延増加傾向、
ターゲットスピード+小マージンで設定すると、レイアウトでは論理の再合成ができないので、
論理が多段になっていると、人力での配置や駆動力アップしてもスピードが満たさない。そうすると
RTL論理合成に戻るとか、設計見直しとかして苦労もしていたのですが)

テスト設計にはSCAN、BIST、を
(最近はSCANパタンのキャプチャー(?)で
FFを一斉に動かすので電圧降下でスピードが落ちて良品を不良品判定する
歩留まり低下が問題だとか・・・)
(パタンの量を短くするだとか)

いろいろはメーカーのサイトをまわって情報収集していますが、
SynplicityがSynopsysに買収されたんですね。

>>48
今は実家で療養をしていて復帰を望んでいるんですが、
復帰して職務に身体が耐えられるのか自信がもてない状況です。

そもそもこの不景気では求人はないかもしれませんが。






50sage:2009/03/05(木) 02:42:36 ID:mqd/yfyK
まずはリハビリとして加算回路をシミュレーションしてみようかな。
modelsimが無料で使えそうですし。

51sage:2009/03/06(金) 00:16:18 ID:vKF5l8qk
8bit加算器をVerilogでコーディングして、
ISEで論理合成、マッピングまでできた。

Modelsimでのシミュレーションは30試用版(無料じゃなかった)の
問い合わせ中でまだダウンロードできなかった。

次はどんな回路にしようかな。
候補 FIFO UART
52774ワット発電中さん:2009/03/06(金) 09:23:50 ID:kUveAwG2
>>49
> 復帰して職務に身体が耐えられるのか自信がもてない状況です。

えーと、スレ違いな内容になってきましたが、
ぶっ倒れるまで働かせる会社か、ぶっ倒れるまで働くあなたがおかしいと思います。
私も何度か激務は経験しておりますが、私を含めぶっ倒れた人なぞ見たことありません。
復帰するのであればその辺に注意を要するのではないかと老婆心ながら思います。
53774ワット発電中さん:2009/03/06(金) 16:30:25 ID:ziyext7p
数年もかかるってことは、精神を病んでしまったんだろうね。
向いてないんだよ。無理に戻らない方がいい。
世の中には食い扶ちはいくらでもある。これしかない、と思うから逝っちゃう。

戻ったら死ぬかもよ。マジで。
54sage:2009/03/06(金) 17:05:03 ID:vKF5l8qk
>52
>ぶっ倒れるまで働かせる会社か、ぶっ倒れるまで働くあなたがおかしいと思います。

まったくその通りなんです。
状況を上手く説明できませんが、自分は働く気満々で、
私は派遣社員なんですが、作業分担する権限が小さいけれど、
(当たり前ですけど)最終的な品質責任はあって、その部署
でまだノウハウが溜まっていない行程もあるのに、客先への納期も
決められている。後工程になって、人を入れようにもプロジェクト
特有の知識拾得に数週間。見積もりの甘さ。最終責任者は業務範囲が
広すぎて細部まで把握しきれない。それぞれの人が自分の作業で
いっぱいいっぱいになりコミュニケーション不足になりがちになる。
上位の意志決定に必要な情報があつまる仕組みが明示されていない。
責任意識や危機意識の違い、責任範囲の動機付け不十分に曖昧、
その立場が初めてで経験不足(最終責任者になった人も含め)。

など、すべての会社で良くあることかと思いますが、
自分のことで言えば能力が足りなかったということです。
コミュニケーション不足、自己管理不十分、身体のアラーム信号にも
気が付かなくなっていました。
(仕事ができてる人からしたら「なっとらん」とお叱りを受けそうですが)

組織力ってなんですかね? どんな社会の/企業の/組織の体制がいいんですかね?
個人が必要な能力って・・・

スレ違いですいません。
55sage:2009/03/06(金) 17:27:53 ID:vKF5l8qk
>53
>数年もかかるってことは、精神を病んでしまったんだろうね。
自分の診断は、不眠症と頭痛とうつ状態でした。
うつ病というと精神的なものだという認識だと思いますが、
自分の経験では、もっとこう・・・風邪だったら熱があって怠くて
やる気が起きない、頭が痛い、吐き気がするとか。経験したことが
あると思いますが、そんな感じにどちらかといえば近いんじゃないかと
思います。実際、吐き気や立ちくらみ、食欲の低下、目がちかちかする、
音楽を聴くのがいやになる、人と話をしたくなくなる。など
自分はありました。

ただし、治療には精神的なところもあって、「大丈夫だよ無理するな」と言われれば、
切り離されたような気持ちになったり、「そんな人はいっぱいる、がんばれ」と
言われれば、この状態を共感して欲しいのにと思ったりします。
医者も本人じゃないとわからないと言いますが、きちんと診てもらえてる
と思えば安心したりもします。
衣食住などで回りの支えが大切なきがします。
自分はなにも考えずにのんびり過ごすことから始めました。それから3年です。

>向いてないんだよ。無理に戻らない方がいい。
まだ迷っています。仕事内容は自分に合っていると思ってるんですけど・・・。

スレ違いですいません。慣れてないもんで長文ですいません。
56774ワット発電中さん:2009/03/06(金) 19:11:21 ID:OQejqCQq
鬱からの回復
好きなことをやれ
まわりにそれを理解してもらえ
休んでも良いが怠けるな
57774ワット発電中さん:2009/03/06(金) 20:47:34 ID:z64eB78d
山へでも篭もったら? 1週間ぐらい。食料は3日分ぐらいだけ持って。
58sage:2009/03/06(金) 21:59:00 ID:vKF5l8qk
>56
そうですね。
今はそれが出来てる状態かも。(ただし、お金が・・・)

人それぞれで、病状の回復状況によって、対処も
違ってくると思うので、難しいところもあると思いますが。

そして、なってみて初めて予防の意識が芽生えました。
59sage:2009/03/06(金) 22:14:25 ID:vKF5l8qk
>>57
え!っと思いましたが、案外・・・いけるような気もしてきました。(その当時では無理と思うでしょうけど)
風邪をひきながら富士山に登ったことがあるんですが、ダメだと思いながらでも以外と登れるんですよ。
(でももしかしたら、山を登ることで興奮して、身体のアラームを無視しちゃってるかも)

あと、うつ病の時、むしろ風邪をひいて一日中眠った後ほうが、身体が楽になった気がしたんです。
身体が一生懸命直そうとするんですかね。
薬よりも風邪を利用するっていう治療アプローチもあってもいいんじゃないでしょうか。
(担当の先生には言ってませんが。)

60sage:2009/03/07(土) 17:19:43 ID:lzf0eOUf
メンターグラフィックスのModelsim30日間試用版は分け合って(企業向けなので)ダウンロード
出来ませんでしたので、
ですのでALTERAのQuartusU Web EditionとそれにつけられるModelsim-Alteraで
シミュレーションしました。

参考 ttp://www.altera.co.jp/products/software/quartus-ii/web-edition/qts-we-index.html

VHDLとVerilogの混在でやってみたところ、このModelsimは混在をサポートしていませんでした。

テストベンチとRTLソースをVHDLで8bit加算器をコーディングしてようやくシミュレーション出来ました。
QuartusUでのインプリメンテーションもできったぽいです。
(今はVHDLとVerilogどっちが主流なんだろう? Verilogになってきてるようにも感じるし)

次は少し休んでからFIFOに挑戦します。




61sage:2009/03/07(土) 17:44:04 ID:lzf0eOUf
あれもこれもだと何もできなくなりますが、
主流はVHDLでもVerilogでもなくC言語になりつつあるということなのでしょうか。

62774ワット発電中さん:2009/03/07(土) 19:18:27 ID:N+xKHvbi
気象予報士って13歳でも受かるんだな
63774ワット発電中さん:2009/03/07(土) 19:22:01 ID:aNcsUjCq
>>61
Cはまだまだ主流とかそんなレベルでもないでしょ、VHDLとVerilogは国やプラットフォームなどで違ったりするので
別にどちらが主流とかわかんない、そんなに違う物でもないし。
64774ワット発電中さん:2009/03/07(土) 19:33:57 ID:X0ggDscM
>>61
当然C言語が、主流になりつつはあります。
実際大規模な所で使っているところもありますし、早く出すことが重要ですからね。
もう時間の問題なのでしょうね。

ちなみに私は、シミュレーションが早いのでVerilog派です。
65774ワット発電中さん:2009/03/07(土) 21:33:04 ID:nNLq1MFu
Verilog派でつ。
ソフトの仕事ではCでつ。
Cでハードを書くという感覚がイマイチつかめんな…
クロックの概念をどうやって盛り込むのかわかりやすく教えてくれ…
66774ワット発電中さん:2009/03/07(土) 21:45:31 ID:X0ggDscM
>>65
クロックの概念なんて無しに、動作だけ作れるんだよ!
ハードを作る?何を言ってるの?
LSIのソフトを作るのさ!
67774ワット発電中さん:2009/03/07(土) 22:47:48 ID:t9e7Fb/K
>>64
Cが主流になるんなら、Cで書けよ。
シミュレーションも早いぞ。

LSIのソフトっていうのは、SoCのファームのことだろ。

クロックの概念がなかったら、どうやって外部とインターフェースするんだよ。
SD-RAMコントローラとかどうすんだよ。
TLMでは書けても合成できないぞ。
ソフト屋はすっこんろ。
68774ワット発電中さん:2009/03/07(土) 23:01:46 ID:cksc3eWR
Cから動作合成かけて、Verilog HDLのRTLが出力できるので、
外部インターフェイスを使ったシミュレーションは簡単にできた。

動作合成ツールのコンパイルオプションで「回路規模優先」とか「最速希望」とか
言う感覚は、C言語コンパイラのそれと同じで笑った。

でも、C言語コンパイラのそれと同じで、所詮はツールが頑張るレベルの最適化。職人芸には負ける。
Windows上で走っていたソースのアルゴリズム系の落とし込みは、思った以上に簡単に出来て怖かった。

そんなのちゃんと動かないと思ったら、FPGA上であっさり走った(汗)
69774ワット発電中さん:2009/03/07(土) 23:09:26 ID:nNLq1MFu
「最速希望」を選ぶと動作可能な周波数が上がるの?
消費するクロック数が減るの?
7068:2009/03/07(土) 23:20:34 ID:cksc3eWR
>>69

どちらか選べた。
FPGAのシリーズ名を指定すると、レイアウトする領域や
配置すべきLUTの制約も指定できた(怖)

レイアウトまでした上で、こちらが指定した制約条件内に収まらなかった場合
指定した回数、頑張って動作合成からリトライして、所用クロック数と最大遅延時間、回路規模の
レポートをヘッペっと出力してくれた。
71774ワット発電中さん:2009/03/07(土) 23:27:51 ID:sx+Y1kT1
なんつーか、Cで機能モデリングするといきなり回路吐き出してくれるかんじ?
72774ワット発電中さん:2009/03/07(土) 23:35:00 ID:yVxfYHJ6
なんて言うツール?
言語はSystemC?
73774ワット発電中さん:2009/03/07(土) 23:40:44 ID:nNLq1MFu
>>70
なんかそれ凄いな。
今手動でCからVerilogに落とし込んでるけどその過程が結構しんどい。
でもツールでそんなん出来ちゃったら漏れの仕事ソフト屋だけで十分になっちゃうんだけどw…orz
7468:2009/03/07(土) 23:44:32 ID:cksc3eWR
具体的なツール名は、ここで書くとマズイかも知れないのでごめんなさい。
SystemCではありません。ANSI C言語ベースです。

Cでstaticに静的に宣言された変数は、デフォルトでは動作合成後もネットリスト上にちゃんと残っていた。
AUTO変数は、動作合成後に残らない場合もありました。

配列宣言すると、配列容量によってFFなのか、メモリ(例えばデュアルポートSRAM)なのか
使い分けてくれたりもしました。
7568:2009/03/07(土) 23:57:39 ID:cksc3eWR
>>73

細かい所でまだ融通は効きませんが、用途によっては十分実用になるのでは・・・と感じています。
正直「食わず嫌い」でした。

C上での演算過程を、printfでファイルに落としておき、C言語コンパイラでの出力結果と
動作合成後の出力結果とを簡単にコンペアできたので、アルゴリズの動作検証が楽でした。
76774ワット発電中さん:2009/03/08(日) 00:06:02 ID:ATGAafTE
これが本当ならすばらしいことなのだが、
ANSI Cベースで設計できるという言葉に何度となく騙されたからね。
にわかには信じがたい。
77sage:2009/03/08(日) 01:29:57 ID:4xy8zfdF
>>70
>FPGAのシリーズ名を指定すると、レイアウトする領域や
>配置すべきLUTの制約も指定できた(怖)

Cソースの中に、プリミティブレベルのブラックボックスの記述ができて、
さらにCソースの中に配置制約も記述できるということですか。(クロックのIOBUFとか)

動作合成後にはverilogと例えばUCF(Xilinxだったら。の制約ファイルとか)を
出力してツールへ受け渡すのでしょうか。


よく分かりませんが、C言語とVerilog混在はできるのでしょうか。
TOPはVerilogで下位階層はC言語とか。
78sage:2009/03/08(日) 01:38:41 ID:4xy8zfdF
そうすれば、
例えばあるソフトウエアを頻繁に使用するものを、(各個別で)
PCにある「そうゆうボード」に頻繁に使用するソフトウエアをハードかして
スピードアップして使用するという流れもあり得そうな気がしてきますが。

ハード化対応ソフトウエアみたいな。



79sage:2009/03/08(日) 01:43:48 ID:4xy8zfdF
↑78 よく考えたら的はずれな気がしてきた。
80sage:2009/03/08(日) 02:03:28 ID:4xy8zfdF
STAで複数クロックがあって、非同期、同期とか複雑なとき、ある程度機能が分かっていないと、
検証用の制約を作れないと思うのですが、C言語主流だとどうなるんだろうか。
テスト設計とか、・・・・・・そんなこと大した問題はないですかね。
非同期信号の同期化とか・・・、ゲーテッドクロックの技術があるから
1つのクロックでも消費電力は抑えられるのかな。





8168:2009/03/08(日) 02:17:35 ID:yc8RcNNs
>>77

Cソースの中に直接配置制約までは記述する事はできなかったと思います。
Cソース内の各関数レベルで、動作合成ツールに手動で別途指示する事は可能でした。
pragma で動作合成ツールにツール依存のパラメータを指示する形です。

動作合成後は、Verilog 2001/2005/VHDLの出力を選択可能でした。
また、論理合成ツール向けに制約条件を渡せます。

直接ではありませんが、CとVerilogの混在は可能です。
動作合成したRTLを基に、再度論理合成を行った後、Verilog HDLシミュレータを使って
ゲートシミュレーションしてました。その際トップ階層は、Verilogで自分で記述しました。
82sage:2009/03/08(日) 02:17:44 ID:4xy8zfdF
よくよく考えると、動作合成の時点で配置配線後のスピードを遅延モデルかなにかで
計算して、FF何段?にするか決めるとかってすごいですね。
83774ワット発電中さん:2009/03/08(日) 02:29:50 ID:p9HC249w
一度でいいからそのツール使ってみたい…展示会みたいなところに出てたりしない?
84sage:2009/03/08(日) 02:36:43 ID:4xy8zfdF
>>1
InterfaceとDesignWaveでC言語設計の特集みたいだから
買ってみようかな。

参考
ttp://www.cqpub.co.jp/dwm/Contents/dwm0136i.htm
ttp://www.cqpub.co.jp/interface/


85sage:2009/03/08(日) 03:05:10 ID:4xy8zfdF
>>81
どうもありがとうございます。なんとなくイメージできました。
そういえば、Modelsimを探していたところ、
SystemC、VHDL、Verilogの混在シミュレーションに
対応していると記載されてました。
(シミュレーション時間(実行時間)がますます長くなりそう・・・)

ネット検索してみるといくつかの企業でC言語設計ツールを作っているみたいですね。
C言語設計ツールも日本企業のツールが主流になってくれればいいのですが、
何が問題なのか、言語(英語)が問題なのか、技術的に劣っているのか、
・・・今主流のツールで日本企業のものはあるのだろうか・・・。
86774ワット発電中さん:2009/03/09(月) 00:17:02 ID:kfC9D0m+
>>85
>C言語設計ツールも日本企業のツールが主流になってくれればいいのですが、
>何が問題なのか、言語(英語)が問題なのか、技術的に劣っているのか、
>・・・今主流のツールで日本企業のものはあるのだろうか・・・。

金を出す側の人間の問題だと思う
87774ワット発電中さん:2009/03/09(月) 01:50:37 ID:CvLrMX/i
C言語系は微妙だなー。
三軍共同でヘリのパイロットを養成をしようとしたが
結局のところ想定する運用が違いすぎて
挫折した某国になる気がする。
88sage:2009/03/09(月) 18:47:39 ID:nsputor5
>>86
>金を出す側の人間の問題だと思う

このままだと、今使っているツールから囲い込まれていくと
思います。
その方が今のユーザー(金を出す側)もなにかと便利だったり、
経済的だったりするので、自然にそうなるということか・・・。


あと、
同期回路ではなく、非同期回路が今後の注目されることはないですか。

89774ワット発電中さん:2009/03/09(月) 21:30:07 ID:Qz6lxj/C
http://www.c-to-verilog.com/
このサイトでCからverilogの変換ができる。
90774ワット発電中さん:2009/03/09(月) 22:47:21 ID:zltJtqYS
>>88
非同期回路のほうが回路も小さくなるし、消費電力も小さい。
だが、設計が難しい。ってか、どうやるんだろう?

非同期のARMコアが発表されてたよね。
91774ワット発電中さん:2009/03/09(月) 23:21:29 ID:22CpZZUl
>>90
結局ハンドシェイク部がでかくなって、あんまりメリット無いとかも聞いたことある。
設計より、検証やテストが難しくなるんじゃないのかな?
92sage:2009/03/10(火) 14:57:44 ID:8UsM+qzp
独り言の脱線で申し訳ありませんが、
学校教育も同期式のような感じがするんです。
時間内に1クラス全員にあることを教える。生徒のやる気とか
もあると思うんですけど、理解できなかった生徒は、その後も
なかなかついていけなくなると思うんです。

クラスを小さく分割して非同期にその小クラス(生徒)に合わせた
教育がいいんじゃないかなと思うんです。
93sage:2009/03/10(火) 15:42:45 ID:8UsM+qzp
また、脱線してすいませんが、
回路規模や配線の混雑からみてFFにリセットがない方が良いと思うんです。
必要なところはしょうがありませんが、
設計の利便性のための冗長回路ってあると思うんです。

94sage:2009/03/10(火) 16:26:10 ID:8UsM+qzp
>>89
>このサイトでCからverilogの変換ができる。
どうもありがとうございます。
なんとなくサンプルを利用してSUM=A+Bの加算器を
出力させようと思ったんですが、

unsigned int sum(unsigned int A, unsigned int B) {
unsigned int sum=0;
sum = A + B ;
return sum;
}

動作合成の制約がまずいのか100行ちかくのVerilogが出力されました。

動作合成で出力されたRTLを、RTLを追って機能を理解するのは
難しいと感じました。

95sage:2009/03/10(火) 17:57:37 ID:8UsM+qzp
>>90,91
非同期回路の設計をしたことがありませんので、
イメージがなかなかわきませんが、
消費電力とか、チップの大規模化に有利、などありそうですね。

たしか、自分が担当したチップでクロック系の消費電力が全体の30%
くらいあったと思うし。(記憶が定かではありませんが)

でも、91さん指摘の設計、検証、テスト設計などが難しそうですし、
メタステーブルとかは素子が壊れることもありるとのことなので、
故障率が上がるんでしょうかね。



96774ワット発電中さん:2009/03/10(火) 19:12:11 ID:bFrWAOtw
故障率がかね上がるんでありるしょう
97774ワット発電中さん:2009/03/16(月) 23:33:22 ID:L9Nw5+Zb
お尻がやわらかい
98774ワット発電中さん:2009/03/17(火) 03:11:44 ID:jZU6CZqg
非同期回路の話ならコチラへどーぞ

非同期式ディジタル回路ってど〜よ?
http://science6.2ch.net/test/read.cgi/denki/1101395104/
99774ワット発電中さん:2009/03/19(木) 00:45:06 ID:LefEF4Pa
c==>rtl変換は、既にいくつかあるよ。
が、使いものになるのは聞いたことが無い。
多ビットの四則演算でフィードバックなし程度なら、
問題ないだろうが。。

それに、c==>rtl変換の結果が正しいかどうか、
を検証する手間が増えるわけで。
100774ワット発電中さん:2009/03/19(木) 01:02:54 ID:vLiduXWx
関数型言語とかで書いたらHDLに落としやすいのかな。
101774ワット発電中さん:2009/03/19(木) 01:38:41 ID:fnz/kIHs
いっそLispで・・・
102774ワット発電中さん:2009/03/19(木) 03:18:57 ID:KKdvoHEr
あなた〜、CommonLispにする?
Schemeにする?
そ・れ・と・も〜、EDIF?
103 ◆YMO/ALTERA :2009/03/19(木) 09:41:58 ID:C3G+e5Mn BE:591970728-2BP(1111)
いっそのこと、
FPGAにも、GPUアーキテクチャにも、
メイニコアプロセッサにも対応可能な処理系を
誰かに開発してほしい。マジ。
104774ワット発電中さん:2009/03/22(日) 14:36:19 ID:t8psKFfW
VHDL初心者です。ちょっとVariableの初期化に関して教えてください。

process〜begin間のvariableでPARITY_X を'0'に初期化しましたが、
なぜか出力は'X'のままです。
begin〜end process間で'0'に初期化したら期待値どうりの値になりました。

variableで変数宣言する際の初期化は、
わざわざbegin〜end process間で行わないといけないのですか?



architecture PARITY_4 of PARITY_4 is
begin
process (IN_PARITY)
variable PARITY_X : std_logic := '0';
begin
-- PARITY_X := '0';
for T in 0 to 3 loop
PARITY_X := PARITY_X xor IN_PARITY(T);
end loop;
OUT_PARITY <= PARITY_X;
end process;
end PARITY_4;
105774ワット発電中さん:2009/03/22(日) 22:41:40 ID:PLB/ynys
>>104
入力シグナルを初期化してないからじゃないか?
具体的にいうとt=0の時のIN_PARITYの値が"XXXX"だとか


一回でも入力にXを食わせたらその後のPARITY_XはずっとXになるように読める
106774ワット発電中さん:2009/03/22(日) 23:09:17 ID:t8psKFfW
>>105
返答ありがとうございます。

>>IN_PARITYの値が"XXXX"だとか
=>IN_PARITYの入力に"X"が無いテストパターンでシミュレーションした結果、
  駄目でした。


問題はIN_PARITYではなく、
PARITY_Xの初期化の仕方に問題があるのかなぁと考えています。

variable PARITY_X : std_logic := '0'; と記述したので
PARITY_Xが初期化されたと思ったのですが駄目でした。

文法的には間違いないと思うのですが・・・
107774ワット発電中さん:2009/03/23(月) 00:46:22 ID:fHsMnGZI
Verilogの入門書読んでいてグレイコードって出てきたんだけど、
これって何のために使うの?
グレイコードってカウンターを読むときのタイミングの問題の為に使うって認識でいいの?
(値の変化を極力へらすためのカウンタ?)
108774ワット発電中さん:2009/03/23(月) 01:17:34 ID:rHHYoIb8
同時に複数ビットが動く時「同時」と言ってもそれぞれに微妙な時間差が
あると言うのがツボ
あとは自分の頭でよーく考えるように
109774ワット発電中さん:2009/03/23(月) 01:26:24 ID:tQ02Y9zf
グレイコードが何に使われてるか考えるとわかりやすい。
絶対値型のロータリーエンコーダとか。
すごーくゆっくり回転させたとき値の変わり目付近でどうなるか。
110774ワット発電中さん:2009/03/23(月) 01:28:36 ID:ys4HHq6g

・いわゆるヒゲが出ない

・前後の差分が最小
111774ワット発電中さん:2009/03/23(月) 01:43:29 ID:rHHYoIb8
まぁ、色々あるのよ。一度に1ビットしか変わらないメリットというものがね
112774ワット発電中さん:2009/03/23(月) 06:39:24 ID:0PJecAfX
>>106はもしかして Cの局所変数の初期化と同様だと勘違いしている?

void func(void) {
 int var = 1;
 ....
 ....
 ....
}
だったら呼ばれるたびに varが1になるけれども
VHDLで variable var : std_logic := '0' と書いても
T=0のときが '0'だというだけで、その後値が書き換えられることはないよ

void func(void) {
 static int var = 1;
に近い
113774ワット発電中さん:2009/03/23(月) 08:10:47 ID:rHHYoIb8
>106ってどういう回路に落ちるんだろうねって考えてしまう
114774ワット発電中さん:2009/03/23(月) 08:42:22 ID:0PJecAfX
>>113
合成するつもりないんじゃない?
つーか合成できないだろコレ。

ビヘイビアモデルを作るための部品だかライブラリもどきのつもり?
115774ワット発電中さん:2009/03/23(月) 10:00:48 ID:bJXslFTA
>>107
いつでも動くのは1ビットのみだから、消費電力(電流)がカウント値によらず一定になるだぜ。
電源ラインの電圧降下(全ビット0->1時)とかが軽減されたり、電流のピーク値が押さえられて
ノイズが少なくなったり。

...って、そんなシビアな設計してたのは何十年も前のことだよな。
116774ワット発電中さん:2009/03/23(月) 10:07:55 ID:0PJecAfX
非同期FIFOのカウンタでは定番 > グレイコードカウンタ
117774ワット発電中さん:2009/03/23(月) 22:55:20 ID:OBC7jvAr
>>107
74シリーズのICでシーケンス組んでた時には重宝したが、最近は全く気にしない。
後ろにDFF付いてたら不要だろ。
118774ワット発電中さん:2009/03/24(火) 19:15:45 ID:OXo0NcS3
Verilogの記述方法で教えてください。

//`define mode
parameter mode 0

`ifdef mode==0

モード1記述

`else

モード2記述

`endif

上位階層から回路動作を変更したいので、
defineではなくparameterを使いたいのですが何か方法ないでしょうか?
119774ワット発電中さん:2009/03/24(火) 20:14:21 ID:PSFPY6Mx
parameter でいいんじゃない?
下位階層への渡し方が分からないの?
120774ワット発電中さん:2009/03/25(水) 14:49:19 ID:lE/fWE7x
parameterはcaseで使うイメージがあるなー



`ifdefはコンパイル時に決定するものだから
ちゃんとした分岐を書かないと上位から選択は出来ないように思う。
121774ワット発電中さん:2009/03/26(木) 02:53:57 ID:q0b01/UJ
>>118
modeっていう名前の入力ポートを作って普通に if 文じゃだめなの?
122774ワット発電中さん:2009/03/27(金) 06:37:50 ID:bMzmneOm
defparam
123774ワット発電中さん:2009/03/28(土) 00:45:39 ID:thvi6CN0
初心者です。質問させて下さい。

verilogでFIRフィルタをFPGAに実装したいと考えています。
回路規模を少なくするための工夫(コードの記述方法等)には
どのようなものがあるのでしょうか?

また、書籍等で回路規模を少なくする工夫について
書かれたものがあれば紹介頂けないでしょうか。
124774ワット発電中さん:2009/03/28(土) 00:55:52 ID:wxhGiQVH
デジタルフィルタは回路のほとんどの部分が乗算と加算だと思います。
フィルタの仕様にもよりますが、データのサンプリング周波数より
高い周波数のクロックで動作させて、一つの乗算と加算回路で
演算を繰り返すような工夫が良いのではないでしょうか。
(コードの記述方法と言うより回路構成の工夫ですね)
125123:2009/03/28(土) 01:05:14 ID:thvi6CN0
ご回答ありがとうございます。

フィルタ部の処理遅延クロック数と回路規模とのトレードオフという
ような理解でいいでしょうか?
大変参考になりました。
126774ワット発電中さん:2009/03/28(土) 01:21:20 ID:wxhGiQVH
通常のDSPで実現するデジタルフィルタのようなことをするって意味です。

遅延部分はメモリ(バッファ)で実現して、そこから一つづつデータを取り出しては
演算して結果をまたメモリに戻す。その繰り返しを行うことで演算(乗算、加算)を
行う回路を1つですます感じです。

遅延部分の段数が増えるとそれに伴い(サンプリング周波数に対して)動作クロックを
高くする必要がでてきます。
127774ワット発電中さん:2009/03/28(土) 09:18:32 ID:mCJUGg4i
>>125
基本的にはそうなんだが、
速度を落とさず、回路規模を縮小させるのが、
技術者の腕の見せ所で、それがスキルレベル。
どうすればいいかなんてのは、
ケースバイケースで、一概には言えない。
ただ、共通しているのは、無駄を省くということだけ。
128123:2009/03/28(土) 12:45:19 ID:cI0v2zMS
>>127
ありがとうございます。

そこら辺のスキルが書いてある書籍等は何かないでしょうか?
それとも習うより慣れろで色々やってみて覚えていくものなのでしょうか?
129774ワット発電中さん:2009/03/28(土) 15:23:07 ID:rNDOSzVc
要求処理速度によるが、遅くても良ければFPGAで実装するより
CPU処理の方が安価って事も多々あるし。やっぱりケースバイケースじゃないかな。
回路的なアプローチで規模を縮小するより、誤差とのバランスで計算理論の方を弄れないか
とか検討する方が有益だと思うけど・・・ 既にHDLスキルではないがな。
130774ワット発電中さん:2009/03/28(土) 21:51:50 ID:8LxKjeys
>>128
インターフェースの昔の記事で、同じ処理をいろいろな回路構成でやってみて
処理速度と回路規模を比較するってのがあったような気がしたな。
131774ワット発電中さん:2009/03/29(日) 15:16:03 ID:/YavgiR2

すみません、便乗で質問せてください。

FIRなどのデジタルフィルタにはDSPチップで、
>>124のように1つの積和を複数回回して行います。
しかし、最近のFPGAではDSPが入っています。しかも500個とか入っています。

もし仮に、300タップのFIRを作成するときのシステムclock周波数は、
FPGA内の300個のDSPを使用する方が、DSPチップで複数回回して行うよりも、
clock周波数が低くなると思うのですが、
この考えは、違っているでしょうか?
132774ワット発電中さん:2009/03/29(日) 17:10:56 ID:6m+1YtMh
133774ワット発電中さん:2009/03/29(日) 21:55:34 ID:Y5J0rMCS
>>131
300並列できるかは、アーキ次第だが、基本はあってる。

ただ、1/300クロックにできるというより、
同一クロックなら300倍高速に動作するという表現の方が多そうではある。
134774ワット発電中さん:2009/03/29(日) 23:17:08 ID:/YavgiR2
>>133
ありがとうございます。
>同一クロックなら300倍高速に動作するという表現の方が多そうではある。
そうですね。的確な表現だと思います。

>300並列できるかは、アーキ次第だが、
そうなんですか。ということは、384個入っているからといって300タップの
FIRが作れる、と安易には考えない方が良いのでしょうか?
4chの96タップFIRで使用する、といように設計されているのでしょうか。
135774ワット発電中さん:2009/03/30(月) 00:00:31 ID:FJima1/w
>>134
ぱっと考えたところでは、300タップの乗算は1cycleで出来るけど、300タップの加算は1cycleで出来るのかとかじゃないかな?
136774ワット発電中さん:2009/03/30(月) 03:57:53 ID:AfFnsYsP
>>135
ありがとうございます。
そうですね。足し算に時間がかかるかもしれませんね。
log300/log2=8.22ですので、9段の遅延がどれだけか、ということですか。
加算器1段の遅延って、どのくらいあるんでしょう。
16bit同士の足し算なので、相当な数のゲートをくぐる・・・・。
137774ワット発電中さん:2009/03/30(月) 08:09:10 ID:AbCWLFwb
いまどきはゲート遅延より配線遅延の方がでかいから
ゲート通過数だけで見積もってもダメよ
138774ワット発電中さん:2009/03/30(月) 10:21:33 ID:Gg3wz1RM
45nm乙
139774ワット発電中さん:2009/03/30(月) 10:22:14 ID:miOOSI+S
32nmZ
140774ワット発電中さん:2009/04/01(水) 07:05:44 ID:cUp+DzYT
よくわからなくて、想像で書き込みますが、(15タップをどこかでみたようなという経験しかないです。)


同じ乗算器とFFを使えるように、係数とデータの流れを制御するのはどうでしょうか。

それと、同じ係数があるところは乗算結果を保存して置いて、
同じデータと同じ係数だったら同じ結果になるとので、同じ回路は必要がないように思えるので、
タイミング良く(シフトするなど)保存したデータを加算の方へ出力したらどうでしょうか。

あと、無視できるビットがあるのなら切り捨てる(まるめ?)とか。

・・・だめそうですね。独り言です。





141arisa_7k3vey ◆QaHT6HayjI :2009/04/01(水) 15:09:03 ID:PVV/DPbG
>>128
デジタル信号処理による通信システム設計 CQ出版社
Interface 2009年1月号

これ以上に書かれている書籍があったら、逆に教えてほしい
142arisa_7k3vey ◆QaHT6HayjI :2009/04/01(水) 15:14:16 ID:PVV/DPbG
東京エレクトロンがやってる、無料セミナ
 Virtex4による高性能FIRフィルタ設計実践
あたりにいくと、よくわかって、”勉強には”なると思うよ。
143774ワット発電中さん:2009/04/01(水) 15:57:55 ID:dg3HNtkL
144774ワット発電中さん:2009/04/01(水) 16:04:37 ID:3ZqjP6Yj
>>143
おまえさ。Amazonで検索ヒットしない本は存在しないのかよ。
http://www.cqpub.co.jp/hanbai/books/30/30911.htm
145774ワット発電中さん:2009/04/01(水) 16:30:45 ID:r1TtOL0O
>>143さんはちょっとしたtyぽもゆるせないお尻の小さいな人ですか?
ディジタルで検索すれば良いと思うのです。
146774ワット発電中さん:2009/04/01(水) 18:05:53 ID:dg3HNtkL
>>144

おまえ馬鹿だろ。なぁ。
タイトルを間違えてるだろが糞野郎。
ちゃんと調べてみろアホ

>デジタル信号処理による通信システム設計 CQ出版社

147774ワット発電中さん:2009/04/01(水) 18:39:19 ID:zMaD6DdM
>>145 の後で >>146 か・・・
148774ワット発電中さん:2009/04/01(水) 19:07:44 ID:dg3HNtkL
>>147
ん?ID変えて何言いたいんだ糞う゛ぉけ
149774ワット発電中さん:2009/04/01(水) 21:21:39 ID:tgkuhQp7
dg3HNtkL 透明あぼんしますた。
150774ワット発電中さん:2009/04/01(水) 21:42:17 ID:PVV/DPbG
・・・ワロタ

すまんね。実際の本みて、手打ちしたんだわ。
151774ワット発電中さん:2009/04/02(木) 07:26:59 ID:sD22/Ecj
>>146 のようなゆとりは、VHDLでFIRフィルタくむ前に、74シリーズICで掛け算回路をくんだ方がいいと思うよ。
フルトランジスタとか、リレーとか言わないからw
152774ワット発電中さん:2009/04/02(木) 17:19:08 ID:0Ei4UIK8
除く前田
153774ワット発電中さん:2009/04/02(木) 19:25:31 ID:fRRCSWbA
前田氏のリレー式計算機って、足し算が失敗して、あと何もできないんだよなw
154774ワット発電中さん:2009/04/03(金) 06:35:20 ID:wjNfVU6o
FIRフィルタで例えば
データ16bit、300タップ(9bit)をアドレスにして
ROMにあらかじめ乗算結果を入れておいて出すようにすれば
乗算器300個よりも回路がちいさくならないかなぁ。


155774ワット発電中さん:2009/04/03(金) 07:13:50 ID:/BCamZun
乗数可変の乗算器を乗数固定の乗算器に変えるだけだろ、それ。
156774ワット発電中さん:2009/04/03(金) 12:29:23 ID:HpQWc7Qc
係数固定なら乗算器は必要としない。
157774ワット発電中さん:2009/04/03(金) 13:26:18 ID:iao91JB8
>>156
係数列を与えると、シフタと加算機をハードコーディングしてくれるマクロを作って(ry
158774ワット発電中さん:2009/04/03(金) 13:49:47 ID:HpQWc7Qc
>>157
こういうのなら有りまっせ。旦那。
ttp://wwwold.ecs.tuwien.ac.at/mitarbeiter/petertu/mcmgen/
159774ワット発電中さん:2009/04/05(日) 17:03:53 ID:noRX5SH6
すれ違いですいませんが、たとえばの話ですが、
自分が開発に携わった製品が
人を不幸にしてしまう事があるとしたら、
責任はあるのでしょうか?
責任を想像して製品をつくっているのか?と思ったりもします。

例えば、顔認証が進んで、過去に保存された画像からでも
画像検索すれば取り出せるとしたら、

過去のふれられたくない画像もあったりすると
思うので、

設計者の技術者倫理というか





160774ワット発電中さん:2009/04/05(日) 17:16:30 ID:lDM/Yv1v
っ□ >反ルネサス
161774ワット発電中さん:2009/04/05(日) 18:22:00 ID:lr7+y7iP
>>159
ケースバイケース。
倫理的、法律的、企業的、個人的、など、すべて。
162774ワット発電中さん:2009/04/05(日) 21:34:27 ID:OdmlDySn
>>158
あるのかよ!(w
つか、かけ算を適当にばらすって、確かに手作業でやりたくないな。

フィルタも作ってくれるとは
http://spiral.net/hardware/filter.html
163774ワット発電中さん:2009/04/05(日) 21:47:57 ID:8ptwI4i2
>>159

責任の有無と、責任を感じるかどうかは、別けて議論話した方が良いと思うけど。


例が顔認証なので、プライバシーの話をするけど、おきそうな問題は

出来る限り回避する仕組みにするよ。

顔認証で、顔写真をデータベース化するなんて、普通しないし。

指紋認証だって同じ。指紋が流出するなんて、ありえねえから。


長い目で見れば

問題があるもの = 売れないもの

だから、考えて作らんとね
164774ワット発電中さん:2009/04/05(日) 22:27:47 ID:Yb5hmrgC
>>163
普通しないとかあり得ないじゃなくて、悪意を持ってやろうとしたら出来る事に対して責任があるかどうかじゃないのか?
165774ワット発電中さん:2009/04/05(日) 23:07:36 ID:8ptwI4i2
>>164

考える限りのトラブルは回避するという責任はあるが、
それでも起きた問題に対して、無限責任は無いだろ。
パソコンだって悪意もって、人に殴りつけたら死んじゃうぞ?

ちなみに、顔認証や指紋認証に関しては
特徴抽出データのみを管理するから、
データが漏れても個人の特定や悪用は出来ないんだよ。
そのくらいは考えてるよ、ってことね。
166774ワット発電中さん:2009/04/06(月) 20:45:49 ID:tVaWV/np
設計したブロックにバグがあると、たいがい、ソフトで何とかしろってことになる。
で、ソフト屋が不幸になる。いつものことだけど。
167774ワット発電中さん:2009/04/06(月) 21:30:37 ID:tHMrN8NW
FIRフィルタで小さくしたければ
係数の項が等間隔で0が入るように
係数を最適化すればええよ
168774ワット発電中さん:2009/04/06(月) 21:31:19 ID:9wPqgRzP
で、DSPで計算すると。
169774ワット発電中さん:2009/04/07(火) 02:03:08 ID:Bqn8sZiU
DSPだと、どうしても、タップ数==ループ回数分のクロック食うがな
170159:2009/04/07(火) 02:14:43 ID:z60OrHgg
顔認証の件は、例えばの話で、いろいろ有益な使い方が
あると思っています。

ですが、
インターネットには沢山の画像があり、
人は画像で個人を区別できます。
それが将来、コンピュータが検索で画像をもとに同じ人の画像を
見つけられるようになるとしたら、
怖いなぁと思ったことがあるので例に挙げてみました。

ニュースで流れる事件事故で、もうすこし考えが行き届いていたら
起きなかったのではと思うことがあるので、責任ってなんだろうと。

仕事場では短期的な価値観で動いている気がして、
責任・・もしくは必要性をどの様に、どうやって
考えていけばいいのか、それが導かれる現場は
どこにあるのかと考えたりもしていて。
171774ワット発電中さん:2009/04/07(火) 07:58:17 ID:umUeWXga
車輪が発明されたから交通事故が起きてる・・・・とかな
言い出したらきりが無い
172774ワット発電中さん:2009/04/08(水) 02:12:23 ID:WPgkQqSx
>>123
> また、書籍等で回路規模を少なくする工夫について
> 書かれたものがあれば紹介頂けないでしょうか。

ttp://www.cqpub.co.jp/hanbai/books/33/33951.htm
ttp://www.cqpub.co.jp/hanbai/books/36/36171.htm
173774ワット発電中さん:2009/04/08(水) 02:27:16 ID:OnFgL3mK
> FIRフィルタで小さくしたければ
> 係数の項が等間隔で0が入るように
> 係数を最適化すればええよ

詳しく!
係数が0の部分の乗算が省けるから小さくなるってこと?
174774ワット発電中さん:2009/04/08(水) 13:18:36 ID:jcqRoAZd
ここまで来ると、もうこれは本じゃないね
http://shop.cqpub.co.jp/detail/435/
175774ワット発電中さん:2009/04/08(水) 13:20:55 ID:uXjwJXDJ
キットで本ではないと思いますけど
中身も薄い取説とボードくらいですし
176774ワット発電中さん:2009/04/09(木) 18:25:06 ID:kjFUBKJd
ソフト屋ですが人手不足でVHDLやる事になりました
勉強にお勧めな日本語サイト教えて下さい
177774ワット発電中さん:2009/04/09(木) 18:53:33 ID:kjFUBKJd
ちなみに来週の月曜までにVHDLのソースをみて回路図をイメージ出来るようになれとのお達しが出ています
178774ワット発電中さん:2009/04/09(木) 19:07:16 ID:4r7kaj9F
ちなみに、VHDLとか関係なく、セレクタだ、デコーダだ、カウンタだ、加算器だ、とか
言われたら回路図がイメージできるのでしょうか?
179774ワット発電中さん:2009/04/09(木) 19:11:42 ID:kjFUBKJd
できません
180774ワット発電中さん:2009/04/09(木) 19:35:55 ID:98H9Z3QH
> VHDLのソースをみて
ひどいスパゲティだな、ソースだけに。
とか言ってお茶を濁せばいい。
181774ワット発電中さん:2009/04/09(木) 19:48:57 ID:kjFUBKJd
なるほどその手があったか!!
とりあえず2,3冊本買ってはったりがきく程度に勉強はしてみます
182774ワット発電中さん:2009/04/09(木) 20:50:26 ID:Q59kWvLi
VHDLで書いてるのに、回路図がイメージできるかどうかなんて関係ないだろう。
ていうか、回路図がイメージできる規模って、ある程度小さいか、同じもののカタマリじゃね?
183774ワット発電中さん:2009/04/09(木) 20:51:30 ID:3mRcJTLl
参考になるか分かりませんが、
ザイリンクスのISEというツールをインストールすると
サンプルソースがあります。

無償ソフトウェア ISE WebPACK
ttp://japan.xilinx.com/ise/logic_design_prod/webpack.htm

C:\Xilinx\10.1\ISE\vhdl\hdlMacro


comp4.vhd (4-bit Identity Comparator)
decode4.vhd (4 Bit Active Low Decoder)
ftp.vhd (Toggle Flip-Flop with Toggle Enable and Asynchronous Preset)

とかありました。
184774ワット発電中さん:2009/04/09(木) 21:25:26 ID:3mRcJTLl
詳しくは見てませんが、
検索したら、サンプルソースがありました。


ttp://www.fts.ie.u-ryukyu.ac.jp/support/vhdl_digital/VHDL-src.html
185774ワット発電中さん:2009/04/09(木) 22:47:45 ID:Q59kWvLi
ちんからホレ
186774ワット発電中さん:2009/04/10(金) 00:26:02 ID:mJN7vTmq
>>182
回路図をイメージというよりソフトとハードと何が違うのか分かってて欲しい。
187774ワット発電中さん:2009/04/10(金) 01:37:16 ID:wN9xPSz6
>ちなみに、VHDLとか関係なく、セレクタだ、デコーダだ、カウンタだ、加算器だ、とか
>言われたら回路図がイメージできるのでしょうか?
ふつーなら、詳細はともかく「だいたいこんな感じ」っていう位は
イメージできるんじゃないの?
188774ワット発電中さん:2009/04/10(金) 02:24:50 ID:7IzLPx1S
漏れもソフトやっててVerilogは後から覚えたんだけど、最初の頃は
プログラム:前の行でやった結果に対して今の行で操作をする
HDL:前のクロックでやった結果に対して今のクロックで操作をする
というイメージをしてみたら取っかかりをつかめたよ。
189774ワット発電中さん:2009/04/10(金) 03:43:08 ID:IEnRrISV
>>188
>HDL:前のクロックでやった結果に対して今のクロックで操作をする
そうそう。

僕の覚え方は、
  assign  →「今すぐリアルに出力」
  a <= b; →「次回の出力予約」

190774ワット発電中さん:2009/04/10(金) 11:43:33 ID:gg9PWOjl
Verilog やり始めた頃、

count[3:0] <= count[3:0] - 4'h1;
if (count[3:0] == 0) begin
 :
 :
end

こういうのが正しく実行されなくて15分ぐらい悩んだよ。
191774ワット発電中さん:2009/04/10(金) 17:28:31 ID:FLHcW83B
ある程度、ゲートレベルを意識しながらRTL設計できるようになると、
デジタル設計者だと名乗って良いと思うよ。
192774ワット発電中さん:2009/04/10(金) 17:36:30 ID:a++hcXOz
2つのカウンタがあって、非同期リセットで一つは0からはじまり、
一つは1からはじまって、あとは自走するような回路つくり、
1つはRAMのライトアドレス用、
1つは同RAMのリードアドレス用、に使ったら
これはダメだと怒られた。

193774ワット発電中さん:2009/04/10(金) 17:43:29 ID:iqBMooGg
ここは>>192の日記帳ではないよ
194774ワット発電中さん:2009/04/10(金) 19:37:42 ID:1WKQiUPd
金ないけど本2冊買ってきた!
これでおいらもVHDLマスターだ!!
195774ワット発電中さん:2009/04/10(金) 20:48:17 ID:mJN7vTmq
>>192
なにがやりたいのか、駄目なのかさっぱり分かりません
196774ワット発電中さん:2009/04/10(金) 21:13:21 ID:AAz11j3B
豚切り。

VHDL業を始めて5年目なのですが、
半年前の自分のRTL見てぶん殴りたくなりました。
(メタステ考えてない、タイミング合わせのアホなFFが多いとか
馬鹿なコメントとか、見るのも恥ずかしいステートマシンとか)
良いほうに考えて、この半年で成長してるってことだと思いたいorz

で、たとえば10年選手の人たちも同じようなことがあるのかな、と。
それとも「半年前でもさすが俺、よくできてるな」てな、感じなのでしょうか。

なにを訊きたいのか自分でも解らないけども、
「半年前の自分のRTLを違和感なく読めるか」ってことが知りたい。
ベテランな人ほど、もちろんそうなんだろうけど。
197192:2009/04/11(土) 00:11:38 ID:78Tbx2bf
すいません。
ライトアドレス用のカウンタとリードアドレス用のカウンタが
非同期リセットの初期値でだけ関係づけられて自走しているのは、
良くないということで、基本かもしれませんが。

インターリーブという回路で
RAMを使って、データを(ビットをずらしながら)遅延させる回路だったと思います。

ttp://markun.cs.shinshu-u.ac.jp/kiso/events/study/2004/digital-broadcasting/3.html

非同期リセットではライトアドレスとリードアドレスの関係性がくずれる
場合があるので、

ライトアドレスの値をデコードしてリードアドレスの
同期で初期値にするようにして、同期で関係づけられています。


非同期リセットはスキュー(20nsとかもある?)を気にしていない設計で、
クロックが入っているときに非同期リセットが入ると、
スキューによってリセットの外れるタイミングが違うので、
この場合、ライトアドレスが0のときリードアドレスが1にならない
ときもある。


非同期リセットの初期値で関係性をつくってはいけない。
と自分の中では決めています。

198774ワット発電中さん:2009/04/11(土) 00:15:37 ID:1nUFrLtr
>>196

verilog/VHDL両方10年くらいになるけど、コードの一部を切り出して見て、
過去の自分を呪うようなことはさすがに無くなったなぁ。

ただ、他人(他プロジェクト)のRTLを見た時に、ブロック分割の仕方とか
信号名の決め方とか、デバッグ容易性や拡張性がよく考えられていて、
感心することは今でもあるよ。

良いコードは極限までシンプルに書かれているよね。
新人君が書くコードを、オナニーコードと呼んでいるw
199774ワット発電中さん:2009/04/11(土) 05:11:29 ID:eR/VkNVH
>>196
完璧なコードは、決して書けない。
毎回いつも「もうちょっと時間があったらなぁ」という感じ。
プロでも同じだよ。
200774ワット発電中さん:2009/04/11(土) 07:17:39 ID:iVYFbXg4
【スレ】

●ケイデンス(Cadence)で論理合成/~~~~~

http://science6.2ch.net/test/read.cgi/denki/1238912975/
201774ワット発電中さん:2009/04/11(土) 08:07:06 ID:2inzUH/4
>「半年前の自分のRTLを違和感なく読めるか」ってことが知りたい。
>ベテランな人ほど、もちろんそうなんだろうけど。

 書き方のスタイルは1年以上から先はほとんど固定するよ。そこそこの規模の仕事
を3回くらいやると、ほぼベテランと同じレベルになる。後は進歩無しで単純作業。
そこから上のレベルというのはVHDLの書き方の技術とは関係ない。

 VHDLは言語がまずいとおもう。かなりレベルの低いチームの集まりで出来上がった
言語だとおもう。初心者がこの言語を使うと本質が見えにくい。悪戯に手間がかかる。 
202774ワット発電中さん:2009/04/11(土) 12:48:27 ID:eR/VkNVH
VHDLは、タイプ数多いから敬遠。
203774ワット発電中さん:2009/04/11(土) 15:17:21 ID:vV+U6gux
>>197
>非同期リセットの初期値で関係性をつくってはいけない。
目くじらたてなくても意外と動いちゃうことも多いが、確かにそうだと思う。
一部に何でもかんでも非同期リセット入れろとあるけど、正直非同期リセットって危険な面も結構あると思う。
204774ワット発電中さん:2009/04/11(土) 19:13:55 ID:6IS9cuWi
>>199
プロの方が妥協は多いんじゃないかな。
趣味でやってると欲が出て、今度は終わらないという。w
205774ワット発電中さん:2009/04/11(土) 20:33:48 ID:/0UlRH5N
>>201
もともと「作る」ための言語じゃなかったんでしょ。
206774ワット発電中さん:2009/04/11(土) 21:48:33 ID:1nUFrLtr
>>201
>>205

VHDLは生まれ育ちの割りに、結構良い出来だと思うけどね。
それより、後発であるはずのSystemCの
あのとっつきにくさは、異常だと思う。
207774ワット発電中さん:2009/04/11(土) 21:51:05 ID:WxC2bEsj
C++が諸悪の元
208774ワット発電中さん:2009/04/11(土) 22:07:38 ID:wvrwNWhy
ソフト屋としてはC++は一番面白い言語
209774ワット発電中さん:2009/04/11(土) 22:39:54 ID:6IS9cuWi
ソフト屋なら Delphi だろ JK
210774ワット発電中さん:2009/04/11(土) 23:01:45 ID:86BO4Byf
>>203
このケースで何故非同期リセットが駄目と言われているか
判っているのか?
211774ワット発電中さん:2009/04/11(土) 23:42:27 ID:0YFueFl1
>>203
非同期リセット入れないとシミュレーション始められないだろ
212774ワット発電中さん:2009/04/12(日) 00:03:22 ID:AW6G/m3l
>>210
非同期リセットがだめというわけでもないけど・・・
下手なステートマシンに非同期リセット入れてデッドロックしましたって話と一緒でしょ。

>>211
イニシャライズ回路作ってその回路だけ非同期リセットかけるとか、色々やりようがあるでしょ。
そもそもシミュレーションやるために回路作ってる訳じゃないし。
213774ワット発電中さん:2009/04/12(日) 00:09:44 ID:gbVkN6WT
回路の初期化とステートのリセットは別にすればいいじゃね?
非同期はあくまでパワーオンリセット(レジスタの初期化)、シミュレーションの不定値解消。
回路動作の起点は同期リセット。
214774ワット発電中さん:2009/04/12(日) 00:33:36 ID:tioK4NEv
>>212
>下手なステートマシンに非同期リセット入れてデッドロックしましたって話と一緒でしょ。

ステートマシンが0000〜1010まで想定しているのに、非同期リセットの解除のタイミングが
たまたままずくて1100とかになってデッドロックしてしまうというイメージでしょうか?

忘れてしまったんですが、case の” when others => ”の代入式
で記述していてもそういった問題が起きるんですか?

215774ワット発電中さん:2009/04/12(日) 00:38:51 ID:AW6G/m3l
>>213
他にも方法はあるけど、それがベターな方法だと思ってる。
やっぱりハードってこういった問題が含まれていて、それを自動で検証する方法が無かったりするわけで
回路を分からずRTL書いてると痛い目あうと思うんだよね。
216774ワット発電中さん:2009/04/12(日) 00:47:08 ID:AW6G/m3l
>>214
そういうイメージです、others書けば一応対策できると思うけど、回路とかでかくなっちゃうかな。
217774ワット発電中さん:2009/04/12(日) 00:48:28 ID:egggUx/5
実際のチップでも非同期リセットから回路立ち上げまでにクロック入力数の規定があるじゃん?
つか、初期化回路が各部をリセットしたりテーブルに規定値書き込んだりといったイニシャライズ処理走らせてるよな。
218774ワット発電中さん:2009/04/12(日) 01:31:30 ID://YNnSZs
トップモジュールだけ非同期リセット入れて他は同期リセットにすればいいの?
219774ワット発電中さん:2009/04/12(日) 03:12:53 ID:tioK4NEv
>>218
基本的にすべてのFFに非同期リセットがついていて、
必要なところは同期リセットというか、ある信号をイネーブル信号にして
'0'(あるいは'1')をFFに入力する。感じだと思う。

220774ワット発電中さん:2009/04/12(日) 04:14:34 ID:Tu8kQUyO
罪なら同期、寺なら非同期、ASICは方針に従え。
221774ワット発電中さん:2009/04/12(日) 11:39:35 ID:pXGVIANx
>>219
リセットアサートは非同期、リセットネゲートは同期ってのも
よくやる手だな
222774ワット発電中さん:2009/04/12(日) 14:20:37 ID:tioK4NEv
>>221
ということは、リセット信号をFFでシフトさせて同期化して元の
信号と論理和をとっているということですか。
そうすると、リセット信号もタイミング補償がなされることに
なりそうですね。

(アサート(assert)とは信号の電圧レベル(Lowかhighか)ではなく、
信号がアクティブな状態をいう。
インアクティブな状態をネゲート(negate)という。)
223774ワット発電中さん:2009/04/12(日) 14:28:11 ID:I4nhX9kR
>>222
論理和なんかとらなくても、
always @(posedge clk or negedge rstn) if(!rst) newrstn <= 1'b0; else newrstn <= 1'b1;
で終わりだと思うが。
224774ワット発電中さん:2009/04/12(日) 14:29:21 ID:I4nhX9kR
×if(!rst)
○if(!rstn)
225774ワット発電中さん:2009/04/12(日) 14:40:50 ID:97z4Xhd5
常にクロックが供給されてるならね
クロックをとめることができて、外部からの割り込みやリセットで再開するなんて場合には
アサートだけはFFを通さずに入れる必要がある
226774ワット発電中さん:2009/04/12(日) 14:44:08 ID:97z4Xhd5
あ、「割り込み」は関係ないな
そういう製品ばっかりやってるもんでついw
227774ワット発電中さん:2009/04/12(日) 15:31:54 ID:pXGVIANx
>>223

出来ないとは言わないが、論理合成結果によって正しく動作しない
危険性があるから、ここは>>222の構成をとって、論理合成対象から
外すべき
228774ワット発電中さん:2009/04/12(日) 17:46:43 ID:tioK4NEv
直感だけで、深く考えて無く書きますが、

テスト設計用のスキャンパスを使ってノーマル動作でも初期化で
使うとかってダメですかね。
回路の削減のためにリセット付きFFではなく普通のFFをつかうとか。



229774ワット発電中さん:2009/04/13(月) 23:35:34 ID:hknbPNmQ
仕様書を書くってどうやってやるんですかね。
機能仕様書からのコーディングだけしかしたことたいなから
わからないです。

どういういきさつでLSIを作ることになるのだろう。
230774ワット発電中さん:2009/04/14(火) 10:06:50 ID:wb9EvQWF
>>229
その機能仕様書は仕様書ではないのか?
231774ワット発電中さん:2009/04/14(火) 19:13:42 ID:sB1rLDqB
機能仕様書も仕様書なんですが、自分の中で漠然としていて
いまいちよくわからないです。
それで、「仕様書とは」で検索することから始めてみたところ、
なにか手がかりがつかめそうです。

とにかく、書いてみないことには分からない
と思うので、身近な資料を参考にしながら
やってみようかなぁ。
232774ワット発電中さん:2009/04/14(火) 23:54:53 ID:/i1D0uqX
>>231

なんか仕様書を書くのが目的になってるけど、
まずは何をつくるか?だろ

つくるモノがハッキリしていれば、仕様は決まってくるし、
その仕様を書きまとめたのが、仕様書。
233774ワット発電中さん:2009/04/16(木) 18:36:09 ID:Ex7USeIQ
229はこの業界から去るか、首つった方が良いと思うよ。
234774ワット発電中さん:2009/04/17(金) 02:46:20 ID:61m/CMBr
過労死を無くして欲しい。
同じ会社の中で足の引っ張り合いはなぜ?。
235774ワット発電中さん:2009/04/17(金) 18:58:39 ID:U+Qu9PyJ
仕切り役が無能だから。
236774ワット発電中さん:2009/04/17(金) 19:25:56 ID:tcZks1mL
>>234
自分も人の足をひっぱてると認識してるわけですね。
237774ワット発電中さん:2009/04/17(金) 21:00:56 ID:a8E6EE1g
どの様な職場環境が良いのだろう。

NHKスペシャルだかで見たと思うんですが、
アメリカが宇宙船という狭い空間でミッションを行うのに良い環境を
研究しているそうなんですが、
人間関係でいえば、男が多い場合だと競争意識が強すぎて、女性が多い場合だと
リスクを回避しようとすることが多くなるのだとか、
男女が半々の時が一番パフォーマンスが高いらしい。

この業界は女性が少ない!!
238774ワット発電中さん:2009/04/20(月) 11:55:03 ID:T2T0P8ku
脳の構造上、どうしても専門職は男が多くなってしまうんじゃないかな。
もちろん努力で何とかなることだとは思うけど、そこまでして
専門職の道を選ぼうとは思わない女性が大多数なんだろうねえ。
239774ワット発電中さん:2009/04/21(火) 14:45:07 ID:MedqkJXg

教えてください。
HDL関係の本やネットを見ていると、インスタンシエートという言葉が
たくさん出てきます。が、このインスタンシエートの意味がサッパリわかりません。

Googleで「インスタンシエートとは」と検索したのですが、
期待するような「インスタンシエートとは○○のことで、
例えばVerilogで○○を○○の操作をして○○すること、
これをインスタンシエートするといいます」
のような表現は、ついぞ見つかりませんでした。

ネットの辞書で「instance」で調べても、
「オプジェクト指向言語で、しばしば「オブジェクト」とほぼ同義で...」と出て
オブジェクトもオブジェクト指向も聞いたことあるけど、
このオブジェクト自体がわからない状態です。
オブジェクト=物体、目的ということはわかります。

例えばVerilogにおいて、「インスタンシェートする」といえば、
具体的には何をすることなのでしょうか?
すみません、教えてください。
240774ワット発電中さん:2009/04/21(火) 15:02:23 ID:9E/CAdOf
instanciate
インスタンス化
あとはわかるな?
241774ワット発電中さん:2009/04/21(火) 15:18:44 ID:MedqkJXg
>>240
ありがとうございます。

せっかく教えていただいたんですが、
・instanciate ではなくてinstantiateではないでしょうか?
 instantiateだと「instantiate the object《コ》オブジェクトのインスタンスを作成{さくせい}する」
 と出てきますが、すみません。わかりません。

>あとはわかるな?
 instantiate→インスタンス化→??  すみません、わからないです。
 すみません。
242774ワット発電中さん:2009/04/21(火) 15:42:20 ID:9E/CAdOf
Verilog インスタンス でぐぐれ。
243774ワット発電中さん:2009/04/22(水) 01:47:10 ID:rzQpwTwA
LRMのこの辺り見ればいいんじゃね?

12.1.2 Module Instantiation
244774ワット発電中さん:2009/04/22(水) 02:44:12 ID:Pc08DByz

てか、FPGA関係って横文字多いし、
データシートやアプリケーションノートも英語ばっかり。
わからないことがあるときなんか、皆さんはあの英語を読んで、
「なーーるほどぉ。わかったぞ!」とかなるんですか?
英語力がないと、この業界やっていけないんでしょうか?

>>239の件にしても、あんまり回答がつかないところを見ると、
実は皆さんも意味を知らずに使ってるってことでしょうか。
少なくとも俺はそのど真ん中なんだけど。
245774ワット発電中さん:2009/04/22(水) 03:36:57 ID:rzQpwTwA
>>244
IEEEが日本だけの団体だったら、真っ先に日本語で資料作成されるのだろうが、そうじゃないから仕方ない。
FPGAベンダも日本の企業じゃないから、最新資料は英語からになってしまうのは当然でしょ。
英語の書きはできなくてもなんとかなるけど、読みはできないと厳しいんじゃね?

LRMが言語仕様そのものなんで、これ読んでもらうのが一番だと思ったので書かなかったけど、自分は
「実体化」してると教えてる。

これでピンときてくれる勘がいい子はいいのだけど、最近の子は想像力が貧困過ぎて、イメージするという
ことができないことが多くて、正直しんどい。

そんなときはmodule~endmoduleは部品を作る作業。instanceは作ったは部品を基板に載せて結線する作
業と言ってる。で、60進カウンタモジュールと12進カウンタモジュールを作らせて、それらをインスタンスする
という実習をさせてる。
246774ワット発電中さん:2009/04/22(水) 11:55:53 ID:Pc08DByz

>>245
ありがとうございます。
英語は読めないと厳しそうですね。僕もデータシートなどで英文を読みますが、
いくつものtoやthatでつながった長文は なかなかニュアンスが掴めず苦労しています。

>そんなときはmodule~endmoduleは部品を作る作業。instanceは作ったは部品を基板に載せて結線する作
業と言ってる。
具体的な例でしめしていただいて、ありがとうございました。
比べるのはキツイかもしれませんが、C言語と対比すると、

(Verilog)module~endmoduleは部品を作る作業 → (C言語)プログラムの中身?を書く作業
(Verilog)instanceは作った部品を      → (C言語)mainなどで上記の関数を使って 
    基板に載せて結線する作業           プログラムする作業
                          
すると、
・instanceは、名詞で「機能ブロック」を指す。
・instantiateは、他動詞で「(ある部分を)機能ブロックにする」を指す。
という理解でよいでしょうか。

また、用例としては、
「HDLソースは、ベタで書いてもちゃんと動作はするが、
 頻出する部分をインスタンシエートして、
 モジュール中から、そのモジュール(インスタンス)を呼ぶようにすれば、
 ソースが読みやすいし間違いも減る。
 上手に作っておけば、そのインスタンスは、別のHDLにも使用でき、
 開発効率が上がるよ」
という使い方でよいでしょうか。
247774ワット発電中さん:2009/04/22(水) 13:10:34 ID:G4S2dx/m
>>246
適当なサンプルで説明

// 下位モジュール
//モジュールの定義(NA2のモジュール化)
module NA2(Y, A, B);
  output Y;
  input A, B;
  nand (Y, A, B);
endmodule


// 上位モジュール

module ORAND2(F, I1, I2, I3, I4);
  output F;
  input I1, I2, I3, I4;
  wire N1, NS;
  NA2 U1 (N1, I1, I2); // NA2をU1としてインスタンシエート(インスタンス化・実体化)
  NA2 U2 (.A(I3), .B(I4), .Y(N2)); // NA2をU2としてインスタンシエート(インスタンス化・実体化)
  NA2 U3 (.Y(F), .B(N1), .A(N2)); // NA2をU3としてインスタンシエート(インスタンス化・実体化)
endmodule

U1,U2,U3はモージュールNA2のインスタンス(実体)

U1,U2,U3はそれぞれ回路として機能する。

ソフトウエアじゃないから、モジュールを呼出すわけじゃない。
そのモジュール化(部品化)された回路を配置するイメージ。
あくまでハードウエアです。
248774ワット発電中さん:2009/04/22(水) 15:40:07 ID:Pc08DByz
>>247
ありがとうございました。具体的で、よくわかります。ありがとうございます。
もしかして、少しわかってきた気がします。こんな理解は正しいでしょうか?

            // 下位モジュール
module NA2(Y, A, B);  // これは、NA2という回路の内容を説明しているだけで、
   (略)       // 実際にFPGA上に回路は作られない。
endmodule       //


            // 上位モジュール
module ORAND2(F, I1, I2, I3, I4);
    (略)
  ここで初めてNA2の内容が使用され、FPGA上に回路として乗る。
   ↓
  NA2 U1 (N1,   I1,   I2); // NA2をU1としてインスタンシエート(インスタンス化・実体化)
  NA2 U2 (.A(I3), .B(I4), .Y(N2)); // NA2をU2としてインスタンシエート(インスタンス化・実体化)
  NA2 U3 (.Y(F), .B(N1), .A(N2)); // NA2をU3としてインスタンシエート(インスタンス化・実体化)
endmodule

// 「NA2をU1としてインスタンシエートする」とは、
// NAという回路内容を、U1という名前を付けてFPGA上に置く、ということ。

どうやら、マイコンのソフトと混同していたみたいです。
「それを何回か呼ぶのではなく、それを何個か置く。その置くことをインシタンシエートと言う」という
とらえ方だと感じています。どうでしょうか?
249774ワット発電中さん:2009/04/22(水) 16:49:54 ID:2E4KQUcx
>>246
CやC++になぞらえるなら

// これが定義
struct mychip { ... };

// mychipをchip1として「インスタンシエート」する
struct mychip *chip1 = malloc(sizeof(struct mychip));
chip1->param1 = ...;
...

// mychipをchip2として「インスタンシエート」する
struct mychip *chip2 = malloc(sizeof(struct mychip));
chip2->param1 = ...;
chip2->input1 = chip1->output1:
...

こんな感じでしょ。C++ならnewでインスタンス(まんまだな)を
作るのと同じ。「定義」と「実体の生成」。後者を一言でいう適当な
用語がないからインスタンシエート(英語のほうでもちょっと苦しい
感じだが・・・)。
250774ワット発電中さん:2009/04/22(水) 21:14:24 ID:Pc08DByz
>>249
ありがとうございます。
せっかく回答いただいたんですが、C++を知らないんです、私。
すみません。

でも、
>「定義」と「実体の生成」。後者を一言でいう適当な用語がないからインスタンシエート
この「定義と実体生成」が、正解なのだと思います。
どうもありがとうございました。
これでまた1つ勉強になりました。
どうもありがとうございました。


251774ワット発電中さん:2009/04/23(木) 19:19:33 ID:SAljcz+O
インスタンシエートは「具象化」で良いと思う。
むしろ俺はその具象化されたものの実体は何なのかと
問いたくなる。
252774ワット発電中さん:2009/04/23(木) 20:03:21 ID:/pW43V9d
具象化されたものの実体は単なるトランジスタ駆動用のビットじゃないの?
それに意味づけしたり、それを食わせた結果の動作の意味づけは人間が勝手にやってること。
253774ワット発電中さん:2009/04/23(木) 23:52:52 ID:OnDkuTUO
イニシエーションって何レスか?
254774ワット発電中さん:2009/04/24(金) 00:22:30 ID:/l/klfVv
イニシエーション=入会儀式
255774ワット発電中さん:2009/04/24(金) 00:59:51 ID:f0EdIQdw
小数点を含んだ下記のような演算をしたい場合どうすれば良いでしょうか?

 例)a * 1.0035
256774ワット発電中さん:2009/04/24(金) 01:26:20 ID:jdr0R/Du
>>255
最終的にどういう結果が欲しいかによるけど1.0035を適当に2^n倍する。
257251:2009/04/24(金) 01:28:50 ID:ijJePCmI
>>252
この場合時間ドメインにおいては、結果に対する意味づけではなく、
結果に先立って意味があると思うんですが。。。
「人間が勝手にやってる意味づけ」に対する価値観の相違ですかね。
まあ、これ以上は哲学的になり過ぎますから、止めておきましょうw

258774ワット発電中さん:2009/04/24(金) 03:03:27 ID:MAL2gqLv
こんにちは、VHDLと2チャンネルの初心者です。

12ビットのデータを8ビットに圧縮してもっともデータのロスが少なく
なるような方法はないですかね?あったとしてもVHDLですばやく圧縮できます
か?30MHzくらいで。わかる人いたらよろしくおねがいします!ありがとう
ございます。
259774ワット発電中さん:2009/04/24(金) 07:02:16 ID:/eC8tN7Z
12ビットのうち適当に8ビット選んで残して、残り4ビットは捨てろ。
それが最もデータのロスが少ない。
260774ワット発電中さん:2009/04/24(金) 07:04:52 ID:jdr0R/Du
>>258
どのようなデータでロスはどのくらいまで許容できるのかによって
適切な方法が変わってしまうと思いますよ。
VHDLと2chの初心者であって圧縮についてはお詳しいでしょうけど
261774ワット発電中さん:2009/04/24(金) 09:16:43 ID:Y46GSnSZ
12ビットならテーブルだな。
FPGAならRAMを使うし、ゲートアレイならROM、ASICなら合成ツールにおまかせ。
262774ワット発電中さん:2009/04/24(金) 09:19:06 ID:Y46GSnSZ
書き忘れたが、30MHzなんてケチな事は言わず、300MHzとかで動かそうぜ。
263774ワット発電中さん:2009/04/24(金) 11:31:52 ID:MAL2gqLv
親切な解答ありがとうございます!!システムがVMEに
つながっていくようにしたいので、30MHzくらいでいいと思います。
ずばりFPGAを使っているのですが、どうやってRAMを使えばいいんでしょう
か?なにか参照できるページがあれば教えて頂けるとありがたいです!!
ありがとうございます!
264774ワット発電中さん:2009/04/24(金) 20:15:29 ID:ClKYJJVR
RAM というなら、4096バイトのテーブルを用意して、単に変換したい値を
入れておけばよいのでは?
265arisa_7k3vey ◆QaHT6HayjI :2009/04/24(金) 20:23:55 ID:PqExAen0
>>263 http://www.google.co.jp/search?q=Xilinx+RAM
外部RAMでも内部RAMでも使い方は、大昔とかわらないぉ

CQ出版の附属基板のセミナー行ってきたけど、くるすがわでんこーの人、なかなかパワフルだった。
266774ワット発電中さん:2009/04/25(土) 00:17:13 ID:JinlnKcD

教えてください。
XilinxのISEで、言語テンプレートの IBUFGは以下のように書かれています。

IBUFG #( .IOSTANDARD("DEFAULT") ) IBUFG_inst ( .O(out), .I(in) );

この文章の表記は、Verilogの書き方なのでしょうか?
それとも、Xilinxのみで許される書き方なのでしょうか?

また上記中の言葉が、予約語かどうか以下のように理解しているのですが、正しいでしょうか?
IBUFG ← 変更ダメ
#   ← この#の意味が、さっぱりわからない。
.IOSTANDARD("DEFAULT") ← .IOSTANDARDは変更ダメ、DEFAULTは、設定なのでユーザ変更可。ただし決まった語句。
IBUFG_inst ← 変更ダメ
.O(out), .I(in) ← カッコ内は、自分の回路につなぐ信号名称に変える。.O .Iは変更ダメ。
特に#についは、初めて見るもので、Verilog用語なのかさっぱりわかりません。

どなたか教えていただけないでしょうか。
267774ワット発電中さん:2009/04/25(土) 00:48:46 ID:FM0p36zd
verilogだとおもいます。

IBUFG #( .IOSTANDARD("DEFAULT") ) IBUFG_inst ( .O(out), .I(in) );

IBUFG ← 変更ダメ => ○ グローバルバッファでクロック端子に使うと思う。

#   ← この#の意味が、さっぱりわからない。 => パラメータ IBUFG.vのファイルの中身を見てみるといいかも。

.IOSTANDARD("DEFAULT") ← .IOSTANDARDは変更ダメ、=> なくてもいいかも

\Xilinx\10.1\ISE\verilog\src\unisims\IBUFG.v を参照

IBUFG_inst ← 変更ダメ => インスタンス ユニークな名称を付ければいいと思う。

.O(out), .I(in) ← カッコ内は、自分の回路につなぐ信号名称に変える。=> ○ .O .Iは変更ダメ。=> ×

( .O(IBUFG_CLKIN), .I(CLKIN) )という感じ。

間違っていたらすいません。
268774ワット発電中さん:2009/04/25(土) 03:32:09 ID:5lk9rqmo
>>267
ありがとうございます。よくわかりました。
#が入るやっでも、Verilogの表記方法なんですね。
IBUFG_instの部分は、確かに他の文字でも通りました。調子に乗って
#を文字に変えてみたのですが、怒られました。

>\Xilinx\10.1\ISE\verilog\src\unisims\IBUFG.v を参照
おーーー、ありがとうございます。やっばりどこかに書いてあるんですよね。

.O(IBUFG_CLKIN), .I(CLKIN)の、.O と .Iの文字は、下位モジュールの文字なので
変更してはいけないように思いますがどうでしょう。
順番で書く書き方(.I()ではないタイプ)は、順番さえ合っていれば、文字は同じでなくても
エラーは出ませんでした。

FPGAのピンからDCMにclockを持ってくるだけで、1日悩みました。
ライブラリガイドには、IBUFでなくIBUFGというのを通したclockをDCMに入れよ、
と書いてあるので、そのように記述したら、なぜかすでにDCMのclock入力にIBUFGが置かれていて、
「このbufferのシリーズ接続はダメだ」とおこられたり、
Global Clockのピンから取るときと、通常ピンから取るときで何か違うみたいだし、
○○bufferと○○bufferのカスケード接続はいいけど、
○○bufferと○○bufferのカスケード接続はダメだとか。そんなこと知らないよぉ。
clock buffer関係のbuffer選択はきまりがあって面倒そうです。
何か、このあたりをまとめた資料っぽい物はないかしらん。
269774ワット発電中さん:2009/04/25(土) 09:50:42 ID:LZ+ODIzc
>>268
help
270774ワット発電中さん:2009/04/25(土) 19:07:52 ID:FM0p36zd
最近やってないのでわかりませんが、
例えば下記URLの「Virtex-4 FPGA ユーザー ガイド (日本語版) (PDF) j_ug070.pdf 」
に載ってるかも。
ttp://japan.xilinx.com/support/documentation/virtex-4.htm
ttp://japan.xilinx.com/support/documentation/user_guides/j_ug070.pdf
271774ワット発電中さん:2009/04/27(月) 14:22:37 ID:vtzMAxie
268です。
>>269-270
ありがとうございました。教えていただいたISEのヘルプには、いろいろと有益な情報が書いてありました。
どうもありがとうございます。(もっとヘルプを見ないといけませんね)
その中の、ライブラリガイドに、くだんの接続条件などが書かれていました。
しかし、文章表記のみでちょっとわかりにくかったので、
自分なリに整理整頓して覚える必要がありそうです。どうもありがとうございました。

連投ですみません、素朴な質問をさせてください。

今回の調べ物で、本を読んでいたら、Verilog文法にも繰り返し文としてforがありました。
メモリのクリアなどに使うようです。しかし、疑問があります。
このforは、clock同期で動作しているFPGAの中で、どのように動作するのか?ということです。
100回繰り返しのforがあったとすると、
1) forが完了するまで100clock分、他の全処理が一時停止する → それはないと思う。
2) forはclockと関係なくFPGAの持つ全速力で動作するので、
  FPGAのclockは、forの期間より遅い周波数しか使えない → これも変な気がします。
3) 上記以外の何かスゴイ仕組みがある。 → これが正解のような気がします。
どうでしょうか? ご存じの方、教えていただけないでしょうか。
272774ワット発電中さん:2009/04/27(月) 18:26:49 ID:7c20y7xW
>>271
4) 合成には使えない。

for generate みたくメタ用途には使えるけど
それ以外では基本的にテストベンチ用と思っていい。

> メモリのクリアなどに使うようです。

テストベンチで使ってるのを見て勘違いしたかな?
273774ワット発電中さん:2009/04/27(月) 21:27:14 ID:N9JuhhuC
for文は合成できるよ。
単に100個並列な回路ができるだけ。
メモリや配列の初期化に使うよ。
274774ワット発電中さん:2009/04/27(月) 21:28:42 ID:NnLHJ2ow
シミュレーション用のRAMのverilogの中身だったりして、

XilinxはRAMのデータをCOREgenでつくるんでしたっけ、

ISEで合成するときはそのRAMのverilogは読み込ませないように
しないといけない記憶がある・・・。
275774ワット発電中さん:2009/04/27(月) 21:46:09 ID:GUhwLmYQ
普通に配列書けば、ブロックRAMなりを推定してくれるよ。
初期値設定できるのかは知らんけど。
276774ワット発電中さん:2009/04/28(火) 11:55:59 ID:VIHzUMh6
ちょっと質問なんですが、オープンソースで86系CPUのIPコアって無いでしょうか?
FPGAに入れて遊びたいと思っているんですが・・
277774ワット発電中さん:2009/04/28(火) 12:39:34 ID:OCaUPLmS
278774ワット発電中さん:2009/04/28(火) 12:42:19 ID:UGldFr8w
>>275
初期値もたしか記述できますよ。
279774ワット発電中さん:2009/04/28(火) 12:48:54 ID:OCaUPLmS
280774ワット発電中さん:2009/04/28(火) 23:38:31 ID:bhPqVl6n

ModelSim XEを使っている人に質問です。ご指導ください。
シミュレーション波形の画面(waveウインドウ)で、
フルパス表示のため信号名の表示が長く、波形表示領域が短く(狭く)なってしまいます。
信号名のパスの上の方を見えなくする(信号名を短くする)方法は
ないものでしょうか?
     例) C:\ModelSimXE\test\Clock → Clock
     例) C:\ModelSimXE\test\20090428\seg7_a → seg7_a
という具合です。
281774ワット発電中さん:2009/04/29(水) 03:36:36 ID:B627P4Ii
>>280
メニューwave→wave preferences→displayタブ に"1"を入れると
信号名だけになる。
"0"(デフォルト)だとフルパスになっている。

もしくは、doファイル(?)を作って信号の表示を編集するのも
出来ると思う。
282281:2009/04/29(水) 03:56:58 ID:B627P4Ii
waveウインドウをアクティブにしてないとメニューにwaveが
でてこないかも。
283774ワット発電中さん:2009/04/29(水) 12:04:08 ID:l51juXfK

>>281
どうもありがとうございました。
おかげさまで、思うような表示になりました。
メニューバーの内容が、ウインドウによって、ゴロゴロ変わるんですね。
たしかにwave表示でないと、waveメニューは出ませんでした。
まだまだ勉強が足りません。ありがとうございます。

バス表示をアナログ表示にすると、表示幅が自動的に広がるのですが、
その後、通常の数字に戻しても広いまんまなのは、ちょっと残念でした。
でも今回やり方を覚えたので不安はないです。

ありがとうございました。
284774ワット発電中さん:2009/04/30(木) 20:25:12 ID:qkVXZHB2

ゴールデンウィーク中なのにすみません。1つ質問させてください。

ISE9.2 WebPackを使って勉強していますが、
xxx.ucfファイルの作り方について質問があります。
・現在行っている方法
  ・ソースファイルxxx.vだけを書き、コンパイルを通す。
  ・PACEを起動すると「ucf無いよ、作る?」と聞いてくるので、Yes。
  ・PACEの表計算みたいなマスに「P123」などと記入。保存。
  ・配置配線OKで、デバイスの動作もOK。
 ここで、ソース変更でi/oピンが減った場合、
  ・ソース変更、コンパイル
  ・PACE起動すると、ソース上で減らしたピンは特に表示されないので、保存。
  ・そのまま配置配線すると、「ucfにこんなん書いてあるけど、ソースに無いよ」と怒られます。
  ・ucfをテキストで見ると、確かに残っているので、消して保存→配置配線OKになる。
そこで質問です。
・ISE9.2の期待する正しいucfの作り方は、どのようにすべきなのでしょうか。
   a) PACEで作成し、ピン減などは、上記のように手動で削除する。
   b) ucfは、始めからtextエデターで作る。それが本筋。
・減ったピンをPACEが知らないはずがないと思うのですが、
 上記のようにPACEで見えません。が、実は残っています。
 何か私のやり方が変でしょうか?

食後のひとときに、すみません。宜しくお願いします。





285774ワット発電中さん:2009/04/30(木) 20:34:21 ID:apU0lctB
ずばり (b) ucfは、始めからtextエデターで作る。それが本筋。
286774ワット発電中さん:2009/04/30(木) 22:20:57 ID:1xNiCFFc
>>284

>>285の言うようにピン設定する時にはテキストエディターでコピペしながら修正した方が早い。
しかし、ピンが減ったからUCFを削除するのもおかしくない?
おいらの場合、最初にすべてのピンの定義を決めておく。
もちろんすべてのピンを使うことはめったにないから、使わないピンはリザーブピン。
リザーブピンが使用ピンに変わるだけだから、UCFへの追加はない。
使わなくなったピンは基本的にはそのまま残しておくから削除もない。
出力ピンはHiかLowに固定するし、入力ピンは空きピンへ接続するか、論理合成で無効になるようなロジックを書いてつぶしておく。

あいまいな設計するから消し忘れとかで苦労する。すなおに全部指定ように設計するのが普通だと思う。
287774ワット発電中さん:2009/04/30(木) 22:47:23 ID:k7WTgoWj
だけど1750ピンもあると大変なのだ
288774ワット発電中さん:2009/04/30(木) 22:55:47 ID:POgfkvJz
自分は、いくつかの信号について参考となる制約をISE上で作成して、
残りはテキストエディッタで編集する。
UCF制約によってタイミング検証のレポートのされかたが違ったと思う。
あと、合成や配置配線のときの設定もスピードが速くなるときがあるので、
それも記録して、スピードと面積の変化をグラフに取ったりしたこともある。
たしか、スピードが20%違えばグレードが1ランク上がるのと同じくらいだ
と思うので。



289774ワット発電中さん:2009/04/30(木) 22:55:50 ID:qkVXZHB2

>>285-286
ありがとうございます。たぶんPACEで作成するのが正解だろうと思っていたので、
ちょっと意外でした。でも、理屈に合っているので、半分?くらい納得です。
  今やっているデバイスだと700ピン近くあるのですが、
  それでも全部書くのでしょうか? って、未定義はいけないですよね。
  やるしかないですね。了解しました。ありがとうございました。

そうすると、
 ・ucfの書き方、みたいなマニュアルがWeb(Xilinxのページ)にありそうですね?
 ・前述の、PACEであのような現象が起こるのは、次のような理解で良いでしょうか?
    ・そもそも、ucfはtext Editorで書くもの。
    ・なので、PACEで初回のucf生成をしうながしてくれるのは、PACEのオマケ的な機能。
    ・だから、途中のpin増減に対してもPACEの知るところではない。自己責任で。
 ・TextEditorで、フルスクラッチ?でucfを書くと、タイプ間違いがでると思うので、
  何かucf作成ツールみたいな便利ソフトがありそうな気もするんですが、
  どうなのでしょう。みなさん全員がメモ帳、秀丸、VZ、Excelなどから始めるのでしょうか?
   (失礼な失念、すみません)

 ゴールデンウイーク中なのに、すみません。
290774ワット発電中さん:2009/05/01(金) 00:16:55 ID:7SVsUV5E
こういうのがあるみたいですよ。

Constraints Editor の概要
ttp://www.xilinx.com/itp/xilinx10j/isehelp/pce_c_overview.htm
タイミング制約に関するストラテジ
ttp://www.xilinx.com/itp/xilinx10j/isehelp/ise_c_constraints_timing_strategies.htm
制約ガイド
ttp://www.xilinx.com/itp/xilinx10j/books/docs/cgd/cgd.pdf
291774ワット発電中さん:2009/05/01(金) 10:37:41 ID:7JHGcZmg
>>289
> ゴールデンウイーク中なのに、すみません。

いちいちこういうのいらんから。w
興味のある人が、気が向いたら答えるだけなんだし。
292774ワット発電中さん:2009/05/01(金) 14:28:16 ID:wKARu/dn
>>287
おまい設計の仕事やっているならやめれ。
1万本あったとしても、粛々と設定していくのが技術者だろう。

>>289
いやなら書かなくてもいいよ。
でも初期の設計時に全部のピンを指定するって事は、空きピンが何本あるかを知る事でもある。
ピンの配置図とかまで作っておくと、どのあたりにどの程度の空きピンがあるかを設計時に知っている事にもなる。
後々ピンの追加などが必要な時にそれが役に立つ。

脊髄反射的に質問しているみたいだけど、少しは自分でxilinxのページを見たほうがいいよ。
質問するよりも早く答えが出る場合がある。
もちろん最初は時間だけ掛かるように感じられるけど、それが勉強だよ。

ucfはPACEで何本が作ってからコピペで作ると早いと思う。
excelとか使う人もいるみたいだけど、自分でやりやすい方法を模索すればいい。
293774ワット発電中さん:2009/05/01(金) 16:53:35 ID:NSCxo6Jr
>>292
> 1万本あったとしても、粛々と設定していくのが技術者だろう。
おつかれさん。
定年後の就職先は決まりましたか?
294774ワット発電中さん:2009/05/01(金) 17:33:11 ID:7SVsUV5E
そういえば、最近、サイエンスゼロでシラス大地?の砂から
作ったナノバブルをつくる素材が特集されてましたね。
ハンダボールも数ミクロン単位でしたっけ、作られているみたいですけど、

この先パッケージはどうなることやら。
パッケージのなかの積層ってタイミング検証ってどうなるんだろう。
熱とか問題になりそうで現実味がないのかなぁ。
295774ワット発電中さん:2009/05/02(土) 00:11:14 ID:31TrsLBv
>>287
GNDと電源で鯖読んでね?w

>>292
定年おめでとう御座います。
296774ワット発電中さん:2009/05/02(土) 00:46:05 ID:Rc7Ncr3f
>>295
リストラおめ、いや自宅警備員乙。
297774ワット発電中さん:2009/05/02(土) 02:15:57 ID:hQdAEl5Z
戦争が廊下の奥に立つてゐた


渡邊白泉

なんちゃって。

298774ワット発電中さん:2009/05/03(日) 12:05:27 ID:jlLOOObD
質問です。

ISEWEBPACK: 10.1.01
ModelSim : XE V Starter 6.3c

上記環境で回路を作成してシミュレーションをしています。
言語はVerilogです。

テストベンチを下記のように分けて作成しました。
・テストベンチヘッダファイル
 (タイムスケール・テストベンチのモジュール名・接続・クロック記述等)
・task文記載ファイル
・テストベンチ本体
テストベンチファイル中身

`include "../test_bennch/aaa/head.v"
`include "../test_bennch/aaa/task.v"
--------
initial begin
テストベンチ本体記述
endmodule

ディレクトリ構成
xilinx
+--project directory
|
+--RTL/aaa/rtl.v
|
+--test_bench/aaa/head.v <- ヘッダファイル
+--test_bench/aaa/task.v <- task文ファイル
+--test_bench/aaa/tst.v <- テストベンチ

ISEにテストベンチを追加しようとすると、include指定したファイルの読み込みが上手くいきません。

・taskファイルは読み込みが正常にされない(黄色の!マークが付く)
Sourceウィンドウに下記2点が出来上がる。(SIMは実行できず)
・テストベンチモジュール名(中身はヘッダファイル)
   +-RTL
・テストベンチモジュール名(中身はテストベンチ)
   +-RTL

ISEでシミュレーションする時は、1ファイルにテストベンチを全て記載しないとだめなんですか?
299774ワット発電中さん:2009/05/03(日) 12:11:14 ID:4ngcbbeA
>>298
`include "../../test_bennch/aaa/head.v"
300774ワット発電中さん:2009/05/03(日) 13:36:17 ID:jlLOOObD
>>299
記述を試しましたができませんでした。(黄色三角!のマークが出る)
Verilog include でディレクトリ指定しでもダメでした。

合成用じゃないとinclude文使えないのか・・・?
301774ワット発電中さん:2009/05/03(日) 16:20:43 ID:mlComn8g
>>298
`include "./test_bennch/aaa/head.v"

だったりして

試していると思うけど。絶対パスとかも。
302774ワット発電中さん:2009/05/03(日) 16:25:53 ID:mlComn8g
勘違い。task.vだけが読めないということか。
303774ワット発電中さん:2009/05/03(日) 16:32:24 ID:mlComn8g
>>298
>・テストベンチヘッダファイル
> (タイムスケール・テストベンチのモジュール名・接続・クロック記述等)

+--test_bench/aaa/head.v <- ヘッダファイル
+--test_bench/aaa/task.v <- task文ファイル
+--test_bench/aaa/tst.v <- テストベンチ

を結合したとき、文法に間違いはないのでしょうか?
head.vの内容とかも気になります。
304774ワット発電中さん:2009/05/03(日) 16:56:47 ID:4ngcbbeA
読めてないというエラーメッセージ詳細は?
305774ワット発電中さん:2009/05/03(日) 21:21:48 ID:jlLOOObD
E:\xilinx-+-aaa_top  <- projectディレクトリ
|
+-RTL/aaa
|
+-test_bench/aaa

階層はこんな感じです。
今はテストベンチをprojectディレクトリの下に移動して試行してます。。

現状テストベンチを追加すると
・head.v は読み込まれる(ファイル左に緑色のマーク)
・task.v tst.vが黄色三角(!)が出る。
メッセージ
 No design units detected in file
 (→Sourceウィンドウ下のFileタブから今回使用するファイルが無いのは確認済み)

(1)テストベンチの追加方法
SourceウィンドウにあるRTLのTOP名を右クリック -> Add source -> ファイル選択
で追加する。(この時、head.v task.v tst.vを指定)
Project -> Add sourceも試しましたが同じ結果。

1ファイル状態でテストの実行ができるのをバラしてるのですが、上記メッセージが出ます。
各ファイルの冒頭にブロック名とか履歴とかコメント入れてるんですが関係ないだろうし。

>ttp://japan.xilinx.com/support/answers/29629.htm
ここにあるtransrateの文はありません

サービスパックを当てて10.1.03にして見ましたが解決せず。。。
306774ワット発電中さん:2009/05/03(日) 21:24:00 ID:jlLOOObD
こういう時ってなんか初歩的なミスしてそうなんですよね。
もう一度見直してきます。
ノシ
307305:2009/05/03(日) 21:31:39 ID:jlLOOObD
すいません階層構成がミスしてます。

Eドライブの直下にxilinxのディレクトリがあって、
その下にprojectディレクトリ、RTL、test_benchがあります。
aaa_topの前の"+"から線が分岐してると認識していただければ。

308774ワット発電中さん:2009/05/04(月) 00:11:51 ID:AhBn1x9s
>>307
三つに分ける前はシミュレーションできていたとのことですが、
分け方と、includeの入れている箇所があやしいと感じてしまいます。

参考
ttp://monpe.cliff.jp/design/verilog/verilog_base_07.html

includeの部分を実際のコードと入れ替えて、
どうなるか試すと良いのではと思う。
309774ワット発電中さん:2009/05/04(月) 01:33:51 ID:jbdwo4lU
「隕石でも落ちてきて仕事場を破壊してくれないかな〜」

という、よくあるIT土方の嘆きを、
職場が変わってやっと理解できるようになった。

上「他に人いないから」て、うん、そうだけど。

誰かきt
310774ワット発電中さん:2009/05/04(月) 01:40:45 ID:uMSpszmg
>>309
まずはね、恫喝 逆ギレ 笑顔 なれなれしさ これらのテクニックを身につけような。
311774ワット発電中さん:2009/05/04(月) 15:39:23 ID:ohjy8OoE
>>307
head.v、tst.v
を、いったん削除して、どんなエラーが出るか、とか。
312774ワット発電中さん:2009/05/04(月) 19:07:58 ID:Bmv0JDHo
ModelSimまじめに使ったことないですが、「ファイルの中にデザインがない」というメッセージですから、
task.vにはmodule~endmoduleが無いんじゃないですか?
そのようなファイルはライブラリ登録するんじゃないでしょうか?
ライブラリとして登録したファイルをincludeするときは、pathいらないような気がします。

参考
ttp://www.am.ics.keio.ac.jp/members/fukuda/wiki/index.php?ModelSim%A4%CE%BB%C8%A4%A4%CA%FD
313774ワット発電中さん:2009/05/05(火) 22:29:06 ID:nDhMIuBA
人間は楽しんでいるときに最高の力を発揮する 本田宗一郎
314774ワット発電中さん:2009/05/07(木) 09:47:39 ID:L+taOFvi
>>310
順ギレ(?)じゃないの?w
最近どんな場面でも「逆ギレ」と表現されてるような気がする。
315774ワット発電中さん:2009/05/07(木) 13:02:19 ID:WO/ELVYc
verilog2001の文法解説本を探しています。
洋書はあったのですが、日本語の物が見つかりません。
日本語のものは、ないのでしょうか?
316774ワット発電中さん:2009/05/07(木) 14:44:22 ID:puWgo56v
>>315
いっそのこと SystemVerilog の書籍あたってみては?
付録に、Verilog2001 との差異が載ってることを期待して(笑)
317774ワット発電中さん:2009/05/07(木) 23:39:01 ID:WO/ELVYc
>>316
ありがとうございます。さっそくSystemVerilogの本を探しましたが、
明らかに「2001について掲載」を謳っているものは、見つかりませんでした。
今度町に出た時に本屋さんで探してみます。田舎なのでVerilogの本などありませんです。
ありがとうございました。

さて、一つ教えてください。
未だにブロッキング代入とノンブロッキング代入という言葉が覚えられません。
= と <= の違いは理解していますし、使い分けもできるようになりましたが、
どっちがブロッキング代入で、どっちがノンブロッキング代入なのか覚えられません。
たぶん理由は「ブロッキング」「ノンブロッキング」の意味を、
どう考えると「=」「<=」になるのかが、イメージできないからだと思っています。

どうして「ブロッキング」という言葉が出てくるのでしょうか?
もし、ご存じの方がいたら、ぜひ教えてください。
318774ワット発電中さん:2009/05/08(金) 01:57:05 ID:e92t5/2y
>>317

プロセスを一時停止(ブロック)して、即時代入するのがブロッキング代入
プロセスを一時停止せず、すべての代入文の評価が完了したときに代入するのがノンブロッキング代入


HDLはプログラムと違って、並列で動作させたいわけですが、シミュレーターは同一イベントで起動された代入文を一つ
ずつしか評価できません。

ノンブロッキング代入文は、評価された段階では、代入の予約をするだけで、代入を行わず、同時起動されたすべての
代入文の評価が終了した段階で、初めて代入が行われます。

ブロッキング代入文は、代入文の評価が完了したときに一連の処理を一時停止して、現在評価した代入を完了してから
次の代入文の評価を再開します。
319774ワット発電中さん:2009/05/08(金) 22:28:50 ID:sDIVuMx7
あーあw
320774ワット発電中さん:2009/05/08(金) 22:33:40 ID:pqzoc2CD
>>318
余計説明難しくなってるやん。
教授の書いた参考書かよ。
321sage:2009/05/11(月) 14:44:00 ID:WrA9ALlc
ザイリンクスのISE 11.1を使ったところ

WARNING:Cpld:997

の警告がでました。
ちょっと調べてみたのですが、警告内容を示す説明うぃ見つけることができませんでした。
ザイリンクスのサイトでも、"Cpld:997"に関する情報が見つけられませんでした。
これについて、わかる方はいらっしゃるでしょうか。
322774ワット発電中さん:2009/05/11(月) 20:09:04 ID:VWTuH2JW
プログラマーやってますが40歳にしてHDLに片足突っ込む事になりました。
体力尽きて泥沼に足を取られたくないけど、楽しそうなのでとりあえずスキップで行きたいと思います。
323774ワット発電中さん:2009/05/11(月) 22:25:59 ID:TmRTpOio
          , - ' ´ ̄ ̄ヽ ̄`ー、
         /       -` ー -ヽ
        /       /      \
     /       /         ヽ
     ,'       /           i
     .i       〈ノ、_ ノ  ,    , /
    i       / 、ニニ-<ー'ニ'ァニrj
    |      i  ヽ_ヲ_ヽ   イ_テハ|
     !      |        ヽ  〉
    .!         !        ノ /::|   ____
    i       i     、___, /::   /
    |       ト     ヽヽニィ /:::: < 説明うぃ?
    !       i \_    ` ー' /::::::   \____
   .|       !  ` ー 、 _ ノ:::::::::!:::|
    .!       ハ    i::::::::::::::::::::i:::!
   |   !     ! i    ト、:::::::::::::::リ
   i   |     i リ\  ノ \:::::::::ノ
324774ワット発電中さん:2009/05/11(月) 23:50:12 ID:e348lCgr
>>321
うぃ
ttp://japan.xilinx.com/japan/support/jmessages/index.htm

メッセージ: cpld - 997
Error during loading TIMESPEC %s = %s, the timespec parser failed to find any instance/net with an expected TNM defined in TIMEGRP %s. The timing constraint will be ignored.\n
TIMESPEC !%1! = !%2! を読み込み中にエラーが発生しました。 TIMEGRP !%3! で定義された TNM が付いたインスタンス/ネットが検知されませんでした。タイミング制約は無視されます。\n\n


  ::::::::  ::    ::     :::::  ::  :::
 :::::  ::   _____   :::::  ::::  :::
 :::  :::: /  :::  \ :::   :::   ::
:::  ::::/   ::     \::  :::  ::
 ::::  /:::    ─    ─ \ ::  ::
 :::  |  ::  .(_)  (_) | :  ::::
  :::   \     (__人__) ,/ :  :::
  ::  ノ      ` ⌒´   \ :   :::
  /´               ヽ  :::
 |    l              \:::
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

325774ワット発電中さん:2009/05/12(火) 15:27:33 ID:V3bEU0Ya
質問です。

ISEWEBPACK: 10.1.03
FPGAの内部にBlockRAMを使ってDualPortRAMを作るときの方法として、Verilog HDL上で、
「reg [15:0] mem [4095:0];」と書いて、ISEでBlockRAMに推論してもらう方法と、
CoreGenを使ったり直接RAMB16等と書いて、Blobk RAMを使う方法が考えられると思います。
前者の場合で、教えてください。
前者の場合は、ちょっとした書き方一つで、分散RAMに取られたりするので注意が必要なのですが、
ISEで合成後、果たしてISEはBlockRAMにしてくれたのか、あるいは分散RAMになってしまったのか、
どこを見て判断すればよいのでしょうか?
・回路図にして確認してみたのですが、プリミティブのシンボルに「RAM 4096 X 16」と書かれているだけで、BlockRAMであるかどうかはわかりませんでした。
・プリミティブのシンボルにマウスカーソルを持っていくと、バルーンに「Mram_mem」と表記され、BlockRAMではないように感じました。
・Xilinxのライブラリガイドを見て、回路図シンボルと同じものが無いか探したんですが、同じ記号のものはありませんでした。
326774ワット発電中さん:2009/05/12(火) 19:30:24 ID:SCkW6LZm
Design Summary画面から見られるPlace and Route Reportの中に
使用リソースのレポートがある。そこのNumber of RAMB16s 等の
行を見ればブロックRAMがいくつ使用されたかわかる。

それで見当つかないものか?
327774ワット発電中さん:2009/05/12(火) 23:04:58 ID:V3bEU0Ya
>>326
ありがとうございました。よくわかりました。今までシンセシスレポートは、エラー/オーニングの
メッセージしか見ていませんでした。すみませんでした。

たぶん、これですね。↓
=========================================================================
* Final Report *
=========================================================================
Final Results
RTL Top Level Output File Name : test1.ngr
Top Level Output File Name : test1
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : NO

Design Statistics
# IOs : 78

Cell Usage :
# BELS : 21
# GND : 1
# INV : 1
# LUT2 : 1
# LUT3 : 17
# VCC : 1
# RAMS : 4
# RAMB16 : 4     ←RAMB16を使っていました。
# Clock Buffers : 1
# BUFGP : 1
# IO Buffers : 77
# IBUF : 45
# OBUF : 24
# OBUFT : 8
=========================================================================
328774ワット発電中さん:2009/05/13(水) 01:02:42 ID:Zjy+4tDh
オーニングじゃねぇ、ワーニングだぜ!
329774ワット発電中さん:2009/05/13(水) 01:47:49 ID:/0Dz/ITs
ウォーニングだよ。
330774ワット発電中さん:2009/05/13(水) 03:01:49 ID:KS87Nwl5
Verilogを勉強しています。
本を見ていたら次のような記述方法ができるみたいで、ちょっとビックリというか感激しました。
VHDLでもこういう記述ができるのでしょうか?

1)  reg [7:0] count <= 0;   // 初期値付き宣言

2)  14'b11_1111_1111_1111_1111  // _で見易く

3)  assign Q = (CS)? data : { (WIDTH-1){ 1'bz } };  // HiZのbitの、パラメータによる幅指定

4)  assign { data_U, data_L } = { adr[7:6], Q[3:0], adr[3:2] }; // 3種類の一部分を合成して、2つの部分に振り分ける
331774ワット発電中さん:2009/05/13(水) 11:30:39 ID:L4EsBK3A
(1) signal reg : std_logic_vector(7 downto 0) := "00000000"; (others =>'0')はだめなんだっけ
(2) "11" & "1111" & "1111" & "1111" & "1111"
(3) constで宣言すればできるの?オレ知らない
(4) 頭混乱するだろ。

で、記述できたら、ラーメンでもおごってくれるのかと小一時間
332774ワット発電中さん:2009/05/13(水) 23:57:12 ID:xR/i0zQx
>>330
おいらは Verilog しか知らないけど、1) は、合成できないから注意な。
wire [7:0] sum= a + b; は問題ない。
333774ワット発電中さん:2009/05/14(木) 03:19:03 ID:B346oIIU
wire [7:0] sum[0:256] = 0; とか、できますかね?
334774ワット発電中さん:2009/05/14(木) 20:50:40 ID:5W5uwj3R
>>333
それでどんな回路が出来ると思ってる?
335774ワット発電中さん:2009/05/14(木) 21:48:07 ID:nQzfysWh
>>333
回路的に意味不明。
336774ワット発電中さん:2009/05/15(金) 02:56:42 ID:fr8ZqgNj
まちがえました。

reg [7:0] sum[0:256] = 0; でした。 大変失礼しました。
337774ワット発電中さん:2009/05/16(土) 03:45:27 ID:79VSUp8o
質問です。
XilinxのSpartan3の、内蔵ブロックRAMをDualPortメモリとして用い、
H8マイコンの外部RAMとして、使おうとプログラムしています。

このDualポートRAM(DPRAM)には、clockピンがあります。
例えば、H8は16MHz、FPGAは50MHzの、それぞれClockで動いているのですが、
DPRAMのclockピンは、どちらのclock信号を接続するのが正しいのでしょうか?
1) DPRAMの、H8側clock=FPGA clock、FPGA側clock=FPGA clockが正しい。
2) DPRAMの、H8側clock=H8 clock、FPGA側clock=FPGA clockが正しい。

そもそも、H8側からのWR, RD, ADR, DATAの各信号と、FPGA側clockとは非同期なので、
1)の場合だと、WR, RD, ADR, DATAの各信号が、メタステーブルが発生しないかと心配です。
2)の場合だと、H8側clockをFPGAまで持って行かなくてはならず、何か気持ち悪いです。

もう一つ質問があります。
上記のメモリ領域(FPGA)を、10kワードくらい取りたいと思っています。
こういう場合のメモリアクセスとして、H8側(c言語)のアクセスは一般的にはどのようにするのでしょうか?
A) mallocで領域確保 + 配列で行う
B) アドレス計算してポインターでアクセス

宜しく指導ください。
338774ワット発電中さん:2009/05/16(土) 07:26:20 ID:9hg3TZ1j
>>337
俺ならシンクロナイザで同期化してしまう、H8のクロックをFPGAに持って行っても厳密にはタイミング保証はされないので非同期と一緒じゃない?
けどこの場合、リード時がめんどくさそう。取りこぼしなしでやろうとしたら、ハンドシェイクするしかないのかな?
339774ワット発電中さん:2009/05/16(土) 08:17:16 ID:ydmduFay
クロック入力ピン資源とクロック配線資源が余っているなら
H8外部バスの RD と WR (またはそれにchip selectをandした信号)を
内蔵DPRAMのリード/ライトクロックにするのが王道
→いわゆる非同期バスとはリード/ライトストローブに同期したバスのこと

外部バスが十分に遅いなら >>338 みたいな小細工してもよい
340 ◆YMO/ALTERA :2009/05/16(土) 08:49:09 ID:j+6/VVIO BE:443977643-PLT(12345)
>>337

> XilinxのSpartan3の、内蔵ブロックRAMをDualPortメモリとして用い、
> H8マイコンの外部RAMとして、使おうとプログラムしています。

内部RAM以前の話で、FPGAの対H8バスインタフェイスを
H8バスクロックで動かすのがいい。キモチワルイことではない。

H8から見れば、FPGAはただの外部バスペリフェラルだ。

DPRAM云々について考えるのはそれからでいいんでない?
つか、I/Oバッファとかじゃなく単なるメモリとして使うなら
ヅアルポートである必然性が全くないんだが…
あえて言えば、DPRAMの特長を利用するなら

> 2) DPRAMの、H8側clock=H8 clock、FPGA側clock=FPGA clockが正しい。

ってことになる。

> 上記のメモリ領域(FPGA)を、10kワードくらい取りたいと思っています。
> こういう場合のメモリアクセスとして、H8側(c言語)のアクセスは一般的にはどのようにするのでしょうか?

C) リンカのマップをいじれるなら、メモリ領域を1セクションにしてごにょごにょすれば
.bss (いわゆる変数領域)とかに容易に転用できる。

> B) アドレス計算してポインターでアクセス

これが愚直だけど一番楽かもね。

> A) mallocで領域確保 + 配列で行う
malloc() の類を使うためには、ヒープ初期化の際(あるいはリンクの際)に
ヒープ領域がわかってないといけないので、(B) (C) が理解できてからじゃないかな?

ところで処理系は何を使うのだ?
341774ワット発電中さん:2009/05/17(日) 07:39:38 ID:4PyFt1xA
いやーだから
H8の外部バスは非同期SRAM互換バスでクロック同期バスじゃないって前提を
全てすっとばして、つまらない持論をダラダラ垂れ流されても困ります
342774ワット発電中さん:2009/05/17(日) 10:10:59 ID:9jyq69s+
>>341は見えない敵と戦っているのか?
343774ワット発電中さん:2009/05/18(月) 04:09:13 ID:6fani9Mo
http://science6.2ch.net/test/read.cgi/denki/1228014309/290-
お前らどう思う?
俺だと何の違和感も抱かずに聞き流すけど。
344774ワット発電中さん:2009/05/18(月) 22:08:00 ID:Eysddq4j
H8_SHまでで流した
345774ワット発電中さん:2009/05/19(火) 23:49:23 ID:zIomAx0i
質問させてください。

module test(
・・・
);

parameter dummy = 1
`define MODE dummy

`ifdef MODE

sample_module1 sample(
・・・
);

`else

sample_module2 sample(
・・・
);

`endif

・・・
endmodule

とすると、
dummy = 0;
dummy = 1;
の場合どちらでもsample_module1が実行されるのですが、
どこに間違いがあるのでしょうか。

testの上位モジュールでパラメータ設定によって
下位のモジュールを選択したいなと考えているのですが、、、

ご指導お願いいたします。
346774ワット発電中さん:2009/05/20(水) 00:13:52 ID:Xcy5WY3R
`ifdef MODE
の意味を勘違いしている。

`define MODE dummy
`define MODE 1
`define MODE 0
`define MODE
どれでも有効。
347774ワット発電中さん:2009/05/21(木) 19:29:09 ID:QDlSqcR1
質問です
以下のencr_sim.vとencr_rtl.vがうまく実行できません(data_mem[0]が不定値になる)
ISE10.1を使っているのですが、これが原因でしょうか?

ttp://my.safaribooksonline.com/9780132442244/ch22lev1sec2#X2ludGVybmFsX1NlY3Rpb25Db250ZW50P3htbGlkPTk3ODAxMzI0NDIyNDQvY2gxNGxldjFzZWMx
348774ワット発電中さん:2009/05/22(金) 17:53:18 ID:RGyLSjxR
質問です。下記2つは同じ回路になると思うのですが、違う出力がでます。
詳細を教えてください。
@
module maskdff(stb, out);
input stb;
output out;
reg q;
always @(posedge stb)begin
if(stb == 1'b1)begin
q<=1'b1;
end
end
assign out = q;
endmodule

A
module maskdff(stb, out);
input stb;
output out;
reg q;


always @(posedge stb)begin
q<=1'b1;
end
assign out = q;
endmodule
です。
結局DFFのクロック信号が0から1になった時だけレジスタに値が入るのですが
Aの場合シミュレーションするとシミュレーションを始めた瞬間出力が1を出します。
stbが1でないのにです。なぜですかおしえてください。
349774ワット発電中さん:2009/05/22(金) 18:20:01 ID:GXHGBrMU

だから
>always @(posedge stb)begin
って言ってるじゃん。
350774ワット発電中さん:2009/05/22(金) 20:09:48 ID:RGyLSjxR
?
すみません、よくわかりません。
Aではstbの値は最初0でも出力に1が生じます。
やりたいことは、stbが入力(0から1になる)されたときにqが1を出力することです。
@でそれはできるのですが、回路を考えたときには@で見られるようなif文は不要であると
考えられるので納得がいかないので質問しました。
実際にverilogではなくCADで回路図を描きシミュレーションをした際にはif文に記述されたような
論理回路は使いませんでしたが、望んだ結果が得られました。

もしかすると、always @(posedge stb)beginの意味を誤解しているのかもしれません
これは「stbが0から1に立ち上がったときに以下の動作を実行する」という意味でいいんでしょうか?
351774ワット発電中さん:2009/05/23(土) 00:07:56 ID:omOzgg32
>>350

@とAもあまりみたことがありません。

こんな感じの回路なら見たことあります。

module maskdff(stb,rst,out);
input stb;
input rst;
output out;
reg q;
always @(posedge stb or posedge rst)begin
if(rst == 1'b1)begin
q<=0'b1;
else begin
q<=1'b1;
end
end
assign out = q;
endmodule

どんな目的のかいろなのでしょうか。
352774ワット発電中さん:2009/05/23(土) 00:15:18 ID:omOzgg32
>>347
あまり情報がつかめずわからないので、勘ですが、

>(data_mem[0]が不定値になる)

・RAMの初期値が不定なので、RAMの全ビットに何か書き込んで初期化する。
・XilinxのFPGAはRAMの初期値設定ができたかも。


・たしか同じ信号に'1'と'0'を代入するような記述があると不定'X'に
なったと思う。(文法チェック メッセージか何かがでてるかも)

353774ワット発電中さん:2009/05/23(土) 00:15:35 ID:3E+3AbbB
stbはシミュレーション開始時にちゃんと0から始まってるのか?
354350:2009/05/23(土) 00:35:36 ID:OV9cTqcS
>>353
始まってるんです。CADではちゃんとでるから、ソフトウェアのせいかな。
>>352
ある回路の一部に使おうとおもっています。
ある出力Aを一度確認したら、その後Aが出力される条件になっても
値を0にする(マスクする)ための回路です。
はじめにAが出る条件になったら、それをこの回路のstb信号とし
そして回路の出力がそれ以降ずっと1となるのでそれを使ってマスクしようというわけです。
なんでAはできないのか謎です。 
DFFのクロックのところにstbを入れて、入力は1で固定するというものです。
355774ワット発電中さん:2009/05/23(土) 00:52:24 ID:omOzgg32
>>354
DFFに初期値がないと実際は'1'か'0'かどちらになるか
わからないとおもいます。なのでリセットを入れた方がいいと思うのですが。

あと、
シミュレーションの結果をリスト出力するとすべての入力信号は'U'だったとおもう。
もしかして、シミュレーションの始めはが'U'になってて、
>always @(posedge stb)begin
ここで'U'とか'X'とかでもこの条件に当てはまるのかも、

だから なのかも
>Aの場合シミュレーションするとシミュレーションを始めた瞬間出力が1を出します。
>stbが1でないのにです



それにシミュレーションできても合成できない文法かもしれません。
356774ワット発電中さん:2009/05/23(土) 02:18:46 ID:Je91nPXV
>>354
>CADではちゃんとでるから
といっても、
初期値か0であるとはいえない。
どこで、だれが、どのように0にしている?
357774ワット発電中さん:2009/05/23(土) 02:27:25 ID:l2mXJ4y6
みんな甘いなぁ。
358774ワット発電中さん:2009/05/23(土) 11:18:44 ID:Ci9QN+b9
>>354
シミュレーション開始直後0秒の状態はシミュレータ依存だから、
とりあえず、リセットするなどして、初期値を与えるべし。

あと、
>DFFのクロックのところにstbを入れて、入力は1で固定するというものです。
ってことはあまりしません。posedge X のX部分はクロックを入れるように。
で if stb==1の時、レジスタに1を代入するように記述するのが普通。
359350:2009/05/23(土) 11:58:43 ID:OV9cTqcS
みなさんありがとうございます。
>>356
CADではリセットもプリセットもセットしてません。
>>358
システムクロックをいれてif(stb==1)にしたところできました。
ありがとうございます。
360774ワット発電中さん:2009/05/25(月) 01:29:02 ID:tFvbSIAv
グリッチ ひげ スパイク メタステーブル レーシング デッドロック
ファンアウト 
361774ワット発電中さん:2009/05/27(水) 13:24:03 ID:wXv6PPc4

マイコンとFPGAをつないで、FPGAにPIO(パラレルポートI/O)を作りました。
実機でちゃんと動きましたので、これを増設しようと、
このPIOをインスタンス化して、top層で複数つないだら、
ISEにマルチソースというエラーが出てしまいました。
FPGAはSpartan3、ISE10.1、Verilogです。

modeule top (
  inout wire [15:0] H8basu;

  PIO U1 ( ..... .BUS(H8basu), .......);
  PIO U2 ( ..... .BUS(H8basu), .......);
  PIO U3 ( ..... .BUS(H8basu), .......);

このような感じです。PIOの内部では、自分のアドレス番地をデコードしてH8のRD信号とANDを取って、
H8basuを駆動していますので、どれか1つだけ出力となり、FPGAが同時に出力になることはありません。
しかし、top階層だけを見ればマルチソースに見えてしまうかのようです。

こういう場合の何か特別な記述があるのでしょうか?
あるいは、ISEのどこかの設定によりOKになるものでしょうか?
362774ワット発電中さん:2009/05/27(水) 13:31:56 ID:pwrR4q5c
>>361
どうみてもマルチソースです。ありがとうございました。
363774ワット発電中さん:2009/05/27(水) 13:56:28 ID:wXv6PPc4
>>362
そうなんですか?
実際のハード配線でもバスはそのまま直接接続しますので、
いいと思うんですが。

PIOの中での3ステートの制御部分です。

BUS = ( (自分adr==H8adr) && (CS==1'b0) && (RD==1'b0) )? DATBasu : 16'bz;


364774ワット発電中さん:2009/05/27(水) 16:07:02 ID:pwrR4q5c
>>363
PCBでは許されても、FPGA内では許されない。
手抜きをしないで、inoutはトップのみで、下層には、inputとoutputを別にして、
各モジュールからOutputEnableを出してきて、セレクトしないと駄目。
365774ワット発電中さん:2009/05/27(水) 22:25:08 ID:wXv6PPc4
>>364
どうもありがとうございます。今からちょっとやってみます。
366774ワット発電中さん:2009/05/28(木) 01:42:18 ID:9vq9g7iu
>>364
動きました!!! ありがとうございました。マルチソースなしです。
modeule top (
  inout wire [15:0] H8basu;
  output wire [15:0] O1,O2,O3;
  PIO U1 ( ..... .BUS(H8basu), .myRD(RD1), .......);
  PIO U2 ( ..... .BUS(H8basu), .myRD(RD2), .......);
  PIO U3 ( ..... .BUS(H8basu), .myRD(RD3), .......);
 
  assign H8basu=SEL(RD1,RD2,RD3, O1,O2,O3);
 
  function [15:0] SEL;
    input S1,S2,S3;
    input [15:0] BUS1, BUS2, BUS3;
    if   (S1==1'b1) SEL = BUS1;
    else if(S2==1'b1) SEL = BUS2;
    else if(S3==1'b1) SEL = BUS3;
    else       SEL = 16'hzzzz;
  endfunction
endmodule

module PIO (....myRD, ....
    output myRD;
    wire  myRD;
    assign myRD=((自分adr==H8adr) && (CS==1'b0) && (RD==1'b0));
こんな感じです。どうもありがとうございました。
top階層のセレクタの部分で悩みました。教科書的には「ケース文を使う」と思うのですが、
上記のように3つのRD信号が「バラバラで」上がって来ます。これをケースの条件に
当てはめられませんでした。case(RD1,RD2,RD3)とは書けないですし。
なので、プライオリティがついてしまいますが、if文で書きました。
どうもありがとうございました。勉強になりました。









assign H8basu=(RD1)? O1: (RD2)? O2: (RD3)? O3: 16'hzzz;もアリ
なのかもしれませんが(...)?の多重
・wire a;  a={RD1,RD2,RD3};と連接で
367774ワット発電中さん:2009/05/28(木) 02:04:32 ID:W0XqajW/
>>366
case( { RD1, RD2, RD3 } )
でいいよ。
368774ワット発電中さん:2009/05/28(木) 03:37:41 ID:ru6U5TO1
>>367
おー、ありがとうございます。そうなんですか、と言うことは、
  case ( {RD1,RD2,RD3} )
   3'b100 : SEL=BUS1;
   3'b010 : SEL=BUS2;
   3'b001 : SEL=BUS3;
   default : SEL=16'hzzzz;
  endcase
ということでしょうか? なるほどなるほど。早速、明日やってみます。
どうもありがとうございました。

しかしVerilogって何でもありで、便利な言語ですね。
369774ワット発電中さん:2009/05/28(木) 04:00:17 ID:ru6U5TO1
連投すみません。
なんかHDLが面白く感じてきたので、この際PCを新しくしようかと思います。
使用するアプリの中でISEの動作が一番遅いので、ほぼISE用に買うつもりです。
そこで質問です。
PCのスペックもいろいろあると思いますが、ISEのコンパイルを高速で済むようにするには、
どのようにするのがベストでしょうか。いくつか考えてみました。違うものがあれば教えてください。

・OSはVISTAよりXPの方が速い。
・OSは、WindowsよりLinuxの方が速い。
・CPUは、32bitより64bitの方が速い。
・メモリをたくさん積んだ方が速い。
・CPUはCore2Duoが良い
・シングルCPUよりDual CPUのほうが速い。
どうでしょうか? 宜しく教えてください。
370774ワット発電中さん:2009/05/28(木) 07:55:25 ID:xQUCqXpB
371774ワット発電中さん:2009/05/28(木) 13:11:13 ID:N/nhbxZZ
>>369
以下、俺の意見。

XPの方が安定しているし、多分速い。
Linux版はバグが多いので、Windows版の方がいい。
64bitの方がいいが、巨大な回路を合成するのでなければ、32bitで十分。
メモリは最低2G、できれば4G。64bitだと8G以上を推奨。
Core2Duoで十分。Cor2Duadなら合成中でも裏でいろいろ出来る。
基本的にシングルスレッドなので、シングルで十分。
372774ワット発電中さん:2009/05/29(金) 00:35:09 ID:sh4DhUCU
verilogの勉強がしたいです。どんなほんがいいですか?
373774ワット発電中さん:2009/05/29(金) 02:29:15 ID:islFNAhe
>>370-371
どうもありがとうございました。

現在のところ、いかに大量のメモリをISEに使うか、みたいですね。
安定度の点からXPがいいみたいですが、XPだとメモリが4GB最大。
う〜ん、考えどころですね。
DELLのInspiron? 545が安くてよさげなので、買ってみようと思います。
すでにXPモデルはないみたいなので、ダウングレードのXPインストールですね。

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

374774ワット発電中さん:2009/05/29(金) 21:19:10 ID:Y7uVqNIy
>>372
これとかでいいんじゃない

トランジスタ技術SPECIAL 改訂新版 わかるVerilog HDL入門
http://shop.cqpub.co.jp/hanbai/books/37/37561.html
375774ワット発電中さん:2009/05/31(日) 00:23:05 ID:rPVeWP+4
>>372
こちらもどうぞ
新入社員に渡して勝手にやってもらうのに非常に良いです。
HDL-Endeavorの廉価版で
内容はほぼ同じようです。

HDL独習ソフトで学ぶCQ Endeavor Verilog HDL
2009年5月1日発行
http://shop.cqpub.co.jp/hanbai/books/MIF/MIFZ200905.html

376774ワット発電中さん:2009/06/01(月) 18:54:04 ID:wO/wMgtd
質問です。
Xilinx Virtex4で、ユーザーガイドを読んだのですが、Clock入力ピンの使い分けがよくわかりません。
・Clock入力ピンとして、_GC_ピン、_CC_ピン、_LC_ピンの3種類があり、
・GCは、グローバルクロック領域用の入力ピンで、
・CCピンは「Clock Capableピン」で、クロック入力にもなるピン、
・LCピンは「Low Capacitanceピン」で、入力容量が少ない入力ピン、
まではわかりましたが、はて、どのように使い分けるものでしょうか。

ISE10で実際にCCピンからのクロック入力でカウンタを構成してみると、
「キミの指定は正しいクロックピンではない」と、エラーになります。
ucfを追加すれば、ウオーニングになりますが。

そこで教えてください。
1.CCピン、LCピンは、どういう時に使うのでしょうか。
2.CCピン、LCピンが、なぜあるのでしょうか。全部GCピンで良いと思うのです。
3.CCピン、LCピンは、どういう時に使うのでしょうか。
4.LCピンという低容量ピンは、このピンだけなぜ低容量を謳うのでしょうか?
5.一般ピンをClock入力ピンにすることは許されないのでしょうか?
 一般ピン→IBUF→BUFIO→BUFR→ResionalClockとすれば良いと思うのですが。
4.CCピンを入力にしたら「正しくないピン使い」と怒られ、エラーになりましたが、
 ISEにそのような推論をさせない書き方というのが、あるのでしょうか?
 CCピン→IBUF→BUFIO→BUFR→ を、HDLであえて記述すれば、
 ISEのご指摘はなくなるのでしょうか?
377774ワット発電中さん:2009/06/01(月) 20:18:29 ID:I60zmYfr
>>376
1/3. リージョナルクロックバッファ(BUFIO,BUFR)を使う時に CC Pin を使用します。
 http://japan.xilinx.com/xcell/xl52/jp52xcell_15.pdf

2. 全部のピンをGC付きにしちゃうと、配線領域でロジック容量がスゲー減るからじゃないでしょうか。

4. 単に「高速クロック入力に特化した GC/CC ピンは低負荷容量になってますよ」ってだけの話かと。

5. CCが付いてないピンは BUFIO に接続できません。
 SerDes等のBUFIO必須なデザインを考えている場合、基板設計時に注意しておく必要があります。

6. シングルエンドのクロック入力を CCピンの「N」側に接続してるとか?シングルエンドの場合は
「GC/CCピン」を指定するだけじゃダメで、作動ペアの「P」側に接続する必要があります。

遅延が大きくなってもかまわないという事であれば、
環境変数「XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING」に「1」を設定する事で警告扱いにできます。
378774ワット発電中さん:2009/06/02(火) 03:34:53 ID:6SDjSg7k
>>377
打ち合わせが長引いてしまい、ご連絡が遅くなってすみません。
ご回答どうもありがとうございました。具体的でわかりやすい文章ですね。
ありがとうございます。

1のpdfはXcellジャーナルみたいですね。以前は取っていましたがやめてしまいました。
大きいダイの中を低スキューでクロックを通すための工夫として、
GCとCCとしてクロックピンが分かれて端子に出ているということのようですね。
FPGAには、GlobalClockピンにしても複数本あり、CCもかなりたくさん複数本ありますが、
こんになにたくさんの種類のClockが必要なものでしょうか?
1つのシステムクロックで処理するというワケにはいかないのでしょうか。
clockが1系統しかないと、一番細かいclockを使ってmsオーダーのタイマを作ると
FFがとてもたくさん要る。だから複数あった方が良い、ということなのでしょうか。

今回のエラーは、6のようにP/N間違いではありません。ちゃんとP側に接続したんですけどね。
結局、ucfに、dedicate...の1行を追加しました。

ISEが自動的にIBUFを入れてくれるのですが、その出力はこのBUFと接続できない等の
制約があるみたいです。かなりつまづいたので勉強してみましたが、
Clock系の縦列接続のルールがわかりません。

もっと精進したいと思います。ありがとうございました。
379774ワット発電中さん:2009/06/02(火) 03:57:16 ID:NSl69ys6
例えばSDRAMのDQSは8ビットで1本だから、64ビットで8本とかになる。
380774ワット発電中さん:2009/06/03(水) 01:55:32 ID:fbWxydLr
VHDLを勉強したいのですが、お勧めの書籍はありますか?
地方なので、関連書籍は殆ど置いてなく、ネットでの購入を考えています。
ちなみに、VerilogHDLはマスターしていますので、
VHDLでの書き方とか、文法等を重要視しています。
よろしくお願いします。
381774ワット発電中さん:2009/06/03(水) 09:15:12 ID:scgNXCWq
オレなんか、10年以上仕事でVerilog使ってるけど、
マスターしたなんて言えないよ。
最近、generate文の便利さが分かって来た。
382774ワット発電中さん:2009/06/03(水) 11:12:23 ID:vCpe5P+W
VerilogとVHDLは、表現が異なるけど考えは同じなので、
Verilogをマスターした>>380なら、どの本でもOKなんでは?
383774ワット発電中さん:2009/06/03(水) 18:53:33 ID:t9VuhgM/
>>381
普通、言語をマスターってへんだろ。
そういうことを言うのはだいたい基地だろ
基地は相手にしない
384774ワット発電中さん:2009/06/03(水) 20:45:18 ID:hh8JDCBX
言語って、文法覚えただけでマスターしたって言っちゃう人もいるからなぁ。
385774ワット発電中さん:2009/06/03(水) 22:21:01 ID:vznY6x4q
>>380
VerilogマスターはやっぱりVHDLのIEEE規格書でVHDLマスターになる
それ以外は読む価値ないよ
386774ワット発電中さん:2009/06/04(木) 01:34:56 ID:X7pzqTJx
>ちなみに、VerilogHDLはマスターしていますので、
現在進行形と見た。勉強始めたばっかり。
387774ワット発電中さん:2009/06/04(木) 01:49:06 ID:/O5Z0lhp
何この粘着・・・
388774ワット発電中さん:2009/06/04(木) 07:35:43 ID:ejjK4EO+
おまえら別に>380自分でマスターしたっていってるだけなんだから、
そんなに粘着にならなくてもええやん。
389774ワット発電中さん:2009/06/04(木) 09:05:16 ID:yqLPQzfZ
粘着も粘着だけど、380フルボッコわろた。
390774ワット発電中さん:2009/06/04(木) 10:43:34 ID:sVsG6Pi3
前にもどこかにいたな、「ソフトマスターしたから次はハード」見たいなこと
言ってたやつ。
391774ワット発電中さん:2009/06/04(木) 12:33:33 ID:n+WZyQmB
2chマスターしたから、次はmixi
インターネットマスターしたから、次はGENOへアクセス
392774ワット発電中さん:2009/06/04(木) 22:59:12 ID:lOjtrztf
>>390
もうすぐDOSが起動しそうです
393774ワット発電中さん:2009/06/04(木) 23:23:49 ID:XlT9lPBb
HDLに限った話じゃないけど、別に文法全部使えるようになったからマスターって分けでもないしな
394774ワット発電中さん:2009/06/05(金) 06:32:26 ID:eT6Oee1h
うんうん 博士前期過程を2年かけて終了しないとマスターとは言えないよな
いまは最短1年で取れるんだっけ?
395774ワット発電中さん:2009/06/05(金) 12:20:09 ID:MZDxT2R5
>>394
よほどの成果を上げられない限り無理
396774ワット発電中さん:2009/06/05(金) 12:35:00 ID:MZDxT2R5
修士を1年で取得できるやつって、修士2回目でなおかつネタを持っていて論文書くだけという奴だろ。
397774ワット発電中さん:2009/06/05(金) 15:08:54 ID:UzDL/88i
専門職大学院の事か?
398774ワット発電中さん:2009/06/06(土) 14:33:42 ID:3aypF/lT
就職したくなくて修士行ってるのに1年で修了しちゃ意味ないじゃーん
399774ワット発電中さん:2009/06/06(土) 15:10:00 ID:NG9tt4Bw
なら博士の方が
400774ワット発電中さん:2009/06/06(土) 15:15:12 ID:FThuqutK
オーバードクターだと仕事したくても仕事ないぞ
401774ワット発電中さん:2009/06/06(土) 15:18:49 ID:NG9tt4Bw
就職したくないんだから気にしない気にしない
402774ワット発電中さん:2009/06/08(月) 03:57:14 ID:1yyhWs/r
あげ
403774ワット発電中さん:2009/06/08(月) 20:13:45 ID:zZExcVuP
みなさん、なんか仕事に関連した資格持ってます?
それ、仕事の役に立ってます?
すげぇ資格持ってるけど、役に立ってない?
「これを取っておけばよかった」的な資格とそれを実感するときは?

さげ
404774ワット発電中さん:2009/06/08(月) 21:32:17 ID:XyjZ2s9E
>みなさん、なんか仕事に関連した資格持ってます?
ワインソムリエ

>それ、仕事の役に立ってます?
仕事の憂さ晴らしするとき、きれいに酔える

>これを取っておけばよかった」的な資格とそれを実感するときは?
気象予報士
傘を忘れて濡れて風邪引いたとき
405774ワット発電中さん:2009/06/09(火) 11:57:08 ID:L/pZDvZ9
>>403
> みなさん、なんか仕事に関連した資格持ってます?
玉掛、ガス溶接

> それ、仕事の役に立ってます?
クソでかい機器を運ぶようなことになったら役に立つことも
ないでもないかもしれない

> 「これを取っておけばよかった」的な資格とそれを実感するときは?
小型移動式クレーン
付いたトラックが走ってるのをみたとき
406774ワット発電中さん:2009/06/09(火) 14:33:04 ID:BET/zr3O
>みなさん、なんか仕事に関連した資格持ってます?
二種免許。

>それ、仕事の役に立ってます?
全く。

>「これを取っておけばよかった」的な資格とそれを実感するときは?
医師免許。
仕事がなくて困った時。
407403:2009/06/09(火) 23:02:14 ID:oZFfP+jF
>>404-406
すごすぎて吹いた。

【北海道】就職や進学に有利、難関の国家資格「初級シスアド」 函商高生29人、一挙合格
http://tsushima.2ch.net/test/read.cgi/newsplus/1244429311/

↑このニュース見て、「へ〜、初級シスアドwって就職に有利なんだw」と思い、
じゃあ、このスレの人たちはどんな資格持ってんだろう、

って、軽い気持ちで訊いたのに。
答えてくれてありがとん
408774ワット発電中さん:2009/06/09(火) 23:06:11 ID:LfLVrvdW
> みなさん、なんか仕事に関連した資格持ってます?
教職

> それ、仕事の役に立ってます?
意味不明な事をほざくドカタ上司避けに多少は・・・

> 「これを取っておけばよかった」的な資格とそれを実感するときは?
電気工事士
妻に「電気の仕事してるくせに、壁コンセント一つ追加できないの。」と云われた時
409774ワット発電中さん:2009/06/09(火) 23:58:05 ID:mk1hexG+
>>407
関係ない話振るんじゃねぇ
このスレじゃ少し微妙だけど、ソフト系の新人なら1〜2年目で基本情報とるだろう
3〜5年以内に応用情報、エンベデットは少し難しいかな

RTL系の資格があればいいのにね
自社グループのとかじゃ取ってもあまり役に立たないし・・・

>>408
あれは欲しいけど、工業高校でもないと、実技必要だから無理だよね
どちらかと言えば、電検三種の方をとっておけば良かったかな・・・
410774ワット発電中さん:2009/06/10(水) 00:06:47 ID:NTPXhOQQ
つ 「STARC認定 設計技能検定試験 ESA」

役に立つとは思えないけどな
411774ワット発電中さん:2009/06/10(水) 00:30:18 ID:F/wWV76K
>>409
実技練習すれば良いじゃん?(w
http://www.rakuten.co.jp/monju/514206/560303/
412774ワット発電中さん:2009/06/15(月) 21:03:20 ID:yh7pg8S4
他人の書いたVerilogソースコードがなかなか読めるようになれず、悩んでます。
RTL記述から機能が見えてこないというか・・・
(設計書は概略的なものばかりで、詳しいことは書かれていません)

C言語などのソフトのコードなら理解する力はあるのですが。

RTL記述から機能を理解できるようになるには
何かコツはあるのでしょうか?
ソフトのコードの読解力とはまた違った能力が必要ですよね・・・
413774ワット発電中さん:2009/06/15(月) 21:24:48 ID:Ys5A/0ZJ
>>412
それ俺も入社当時同じ経験をした。
Cはシーケンシャルだけど、Verilogはパラレルだもんね。
上から下の順に読んでも見えてこないのは仕方が無い。

で、今思うことは、そのソースコード&設計書を書いた人が悪いってこと。
設計者には、後々のことを考えて容易に引継げるようにしておく責任があると思う。
オナニー設計は仕事といわない。

で、コツだけど、機能をスムーズに理解するとき、
概略的なブロック図を頭に入れてから読むのとそうじゃないのとでは
雲泥の差だと思うから、まずは最低責任としてブロック図を描いてもらうべし。
414774ワット発電中さん:2009/06/15(月) 21:27:38 ID:npo3ZlhS
仕様書見て、in/outの信号を押さえて、ブロック図みて、シミュレーションして、
それでも分からないコードなんか解読しても時間の無駄。
415774ワット発電中さん:2009/06/15(月) 21:55:27 ID:8ZKV1vYv
>>413
> Cはシーケンシャルだけど、Verilogはパラレルだもんね。
> 上から下の順に読んでも見えてこないのは仕方が無い。

言語でしかロジック設計したことが無いとそうなるんじゃね?
つか、将来的にはどんな実回路になるか見当もつかないコード
が普通になったりして。
416774ワット発電中さん:2009/06/15(月) 22:39:54 ID:Ys5A/0ZJ
>>415
今どき実回路で設計できても自慢にならないよ。
むしろ無駄に時間かかって迷惑だからやめてほしい。
古い人に多いよね。そういうこというの。

実回路で設計したつもりが、製品でその通りの回路になってるかなんて誰が保証してくれるんだろう。
417774ワット発電中さん:2009/06/15(月) 22:51:01 ID:tW3lvOU0
>>416
だからって何も知らないほうがいいの?誰が保証してくれるの?
418774ワット発電中さん:2009/06/15(月) 23:09:28 ID:SjsNB+Lq
>>416
このスレみてたら、どんな回路が出来るか分からずむちゃくちゃな記述して、動きませんって質問が多いことに気づけ
419774ワット発電中さん:2009/06/15(月) 23:32:21 ID:j1kzqXOT
>>416
>その通りの回路になってるか
それを確認しないで、どうするの?
420774ワット発電中さん:2009/06/15(月) 23:38:32 ID:UgIjN91/
僕の肛門も論理合成されそうです><
421774ワット発電中さん:2009/06/16(火) 00:05:29 ID:PSvXHFFo
>>416
>実回路で設計したつもりが、製品でその通りの回路になってる
等価な論理回路になればOKじゃね
422774ワット発電中さん:2009/06/16(火) 00:41:20 ID:rP2TKewA
>>417
何も知らないほうがいいって誰が言った?

>>418
>>415はそういう質問をしてはいない

>>419
実回路で設計した通りの製品である必要は無い。
等価な回路になってればよし。

>>421
その通りです。
423774ワット発電中さん:2009/06/16(火) 00:41:21 ID:58TrNU80
記述に関してはかなり個人差が大きいからね。
C言語だって差はあるんだし。

ブロック図を書いてから記述を始めたほうがいいと思うよ。
使う信号と要らない信号の切り分けにもなるし。

あと、先頭でぜーんぶ wire とか reg とか宣言するのはやめて欲しい。
使うときに宣言しようよ。
424774ワット発電中さん:2009/06/16(火) 01:06:31 ID:RHy2Kdzn
>>423

>あと、先頭でぜーんぶ wire とか reg とか宣言するのはやめて欲しい。
>使うときに宣言しようよ。

俺はむしろ最初に書いてくれないと訳わかんなくなる。好みの問題だけど。
コーディングスタイルと言うよりは、コーディング規約で決めるべき話かな。
425774ワット発電中さん:2009/06/16(火) 01:17:47 ID:DsrHSxoN
必要なものだけ宣言しろ、って事では?
426774ワット発電中さん:2009/06/16(火) 01:20:52 ID:W8Ipn4Lk
中身を追っかける気はないから
先頭にもれなく、かつ、余らないように
記述しておいて欲しい。
427774ワット発電中さん:2009/06/16(火) 01:25:43 ID:M0H7Oxpj
各信号の値の意味を詳しくコメントしてほしいな。
ということで、Quartusで日本語使えないのが不便
428774ワット発電中さん:2009/06/16(火) 01:56:52 ID:RHy2Kdzn
>>426

気が合うなぁ。同意見。
まぁ、余った信号はシミュレーションしたら赤くなるからすぐわかるけどね。
逆に、足りない信号は1ビット信号と思われてバグる、ってのがVerilog最大の欠点ですよねぇ。
429774ワット発電中さん:2009/06/16(火) 02:18:32 ID:ejKPsgkZ
同一処理が扇状に広がって行くような演算器の割り振りとかパイプラインの割当とか、
シーケンス(というか状態推移?)なんかはブロック図レベルの仕様を意識しないと
コーディングしづらいかもね。

>>427
そんなあなたにVHDL(違
430774ワット発電中さん:2009/06/16(火) 03:55:31 ID:/3c7x9FR
FPGAは、回路図入力でも記述可能だが、回路規模が大きくなるとHDLの方がよいと言われますが、
それはなぜでしょうか?
回路図だってインスタンシエーション(ライブラリ化?)できます。
そもそもHDLで書くときでも、回路図を意識して書いてますよね?
だったら、はじめから回路図で書けばいいと思うんです。

431774ワット発電中さん:2009/06/16(火) 06:35:33 ID:LZD5idoy
移植性だろ

HDLならどの処理系にも楽に移植可能できるが (そのための標準規格)
回路図だと処理系依存になってしまう
432412:2009/06/16(火) 07:16:56 ID:+RQw/w7p
皆さんありがとうございました。(特に>>413さん)
大変勉強になりました。
前設計者にはブロック図を残してもらえるよう頼んでみます。
433774ワット発電中さん:2009/06/16(火) 12:55:43 ID:aw4opnNE
>>430
ステートマシンを書くにはHDLのほうがいい。
ってか、回路図で書きたくないよ。
あとは演算系とか。

上位モジュールの結線だけなら回路図のほうがいいかも。
信号名を考えるのも面倒だし。
434774ワット発電中さん:2009/06/16(火) 16:00:02 ID:im1qUIa0
>ステートマシンを書くにはHDLのほうがいい。

別に、人様がかかんでも、
まともな状態遷移図があるなら、誰が見ても納得できるHDL出力してくれる。
435774ワット発電中さん:2009/06/16(火) 16:42:53 ID:syi6YMJn
つか、ツールが使えて便利じゃん>>HDLでステートマシン
436774ワット発電中さん:2009/06/16(火) 17:10:15 ID:ABZsmyTL
すみません。
ちょっと困っていて、教えて欲しいのですけど。。

signal A  : std_logic;
の信号を
 A = A + 1;
したのですが、エラーとなってしまいます。
どうしたら、よいのでしょうか。。
437774ワット発電中さん:2009/06/16(火) 17:26:02 ID:LZD5idoy
A<=A+1;
438774ワット発電中さん:2009/06/16(火) 17:29:15 ID:ABZsmyTL
あ、ごめんなさい。
記述は、A<=A+A;になっています。
でも、
Line 26. + can not have such operands in this context.
こういうエラーになるんです。
+ が使えない?ということでしょうか。
439774ワット発電中さん:2009/06/16(火) 17:31:21 ID:ABZsmyTL
× A<=A+A;
○ A<=A+1;
440774ワット発電中さん:2009/06/16(火) 18:37:23 ID:LZD5idoy
コンカレント文脈だからだろ
シーケンシャル文脈(processブロック内)ならできる
441774ワット発電中さん:2009/06/16(火) 18:44:29 ID:LZD5idoy
あ 違った

std_logic型じゃ + は使えないよ
1ビットに対して加減算って変だろ?

std_logic_vector型ならば + 使える
442774ワット発電中さん:2009/06/16(火) 20:37:00 ID:WUrUK25x
>>439
vectorかどうかもあるかもしれないが、「A」はstd_logicで「1」はintだよね?
VHDLは型に対して厳しいから、「1」を「'1'」にしてみるとか、Aをintにしてみるとか色々
443774ワット発電中さん:2009/06/16(火) 21:17:04 ID:rP2TKewA
>>428
先頭に書くのもそうだけど、
inputをズラー、outputをズラー、wireをズラー、regをズラーっと
機能別もへったくれもなく、無意味にソートしてる人は、読む人のことを考えてないなと思う。
444774ワット発電中さん:2009/06/17(水) 08:49:35 ID:K+vt8V5G
>>435
HDL Designerもつかったことないのかバカタレ
445774ワット発電中さん:2009/06/17(水) 10:03:00 ID:r0f9aXtc
436です。
以下、試した記述です。
 ・std_logic; 〜 A<=A+'1';
 ・std_logic_vector( 3 downto 0); 〜 A<=A+1;およびA<=A+'1';
どちらもうまくいきませんでした。
自分でも試して、いろいろ調べてみます。
お手数かけてすみません。
ありがとうございました。。
446774ワット発電中さん:2009/06/17(水) 10:23:55 ID:ZcyuCCsq
つぎはintで試してみるんだ!(w
447774ワット発電中さん:2009/06/17(水) 19:19:55 ID:pSO6EWuH
ieee.なんとか、いうのを入れ忘れてるんじゃないの?
448774ワット発電中さん:2009/06/17(水) 19:21:03 ID:kPmzTAQM
質問なんですがverilogを書くツールって
ないんですか?
449774ワット発電中さん:2009/06/17(水) 19:34:39 ID:K1/SvygH
>>448
ある。 PCとテキストエディタと自分の手。
450774ワット発電中さん:2009/06/17(水) 20:01:09 ID:a453PKY/
紙、鉛筆、消しゴム。これ最強ツール
そして、誰かにPCに入力してもらう
451774ワット発電中さん:2009/06/17(水) 21:16:35 ID:XuVlJNZe
>>445
エラーメッセージは変わったかい?
+ can not have such operands in this context. のままかな?
452774ワット発電中さん:2009/06/17(水) 21:17:39 ID:kPmzTAQM
やっぱりテキストファイルしかないのか?
453774ワット発電中さん:2009/06/18(木) 00:00:26 ID:zBa0WdDJ
テキストファイルはツールじゃないだろ。
454774ワット発電中さん:2009/06/18(木) 09:11:11 ID:tngk0lOj
>>451
いえ、ぜんぜん(笑)
問題箇所の検証用に切り抜きで試しているんだ。
それをちょっと貼り付けて見ます。

entity TEST01 is
port (CLK : in std_logic;
RESET: in std_logic;
Y : out std_logic_vector (3 downto 0) );
end TEST01;

architecture DATAFLOW of TEST01 is
signal A: std_logic_vector (3 downto 0 ) := "0000";
begin
process ( CLK , RESET ) begin
 if ( CLK = '1' ) then
  A <= A + 1;
 end if;
 Y <= A;
end process;
end DATAFLOW;

俺、馬鹿なのかな。
自身なくしそう。。
455774ワット発電中さん:2009/06/18(木) 09:18:17 ID:tngk0lOj
ごめん!わかった!
IEEE.STD_LOGIC_ARITHとIEEE.STD_LOGIC_UNSIGNEDが無かった。
記述ばっかり見てたよ。
ありがとう、ごめんなさい。

456774ワット発電中さん:2009/06/18(木) 11:29:30 ID:/DhINkO1
>>454,455
クロックの記述も間違えているぞ。
if(CLK' event and CLK = '1')then

これで書かないとクロック同期にならない。
457774ワット発電中さん:2009/06/18(木) 11:41:05 ID:tngk0lOj
>>456
本ソースでは、同期するようにしてあります。
もっと勉強します。。
ありがとうね。
458774ワット発電中さん:2009/06/18(木) 12:43:31 ID:/DhINkO1
>>457,>>454
現状でやっているつもりってこと?
なんかレスでは問題ないような風に読めるんだが?

。が2つ使われていたりしているのは見苦しい。日本語もう少し勉強した方がいいよ。

おまけで指摘するけど、RESET信号を使っていないのもダメ。
書いていないなら指摘しないけど、process文で記述しているんだからコードの中にちゃんと書けよ。

>>455で自分で理解したように書いているけど、>>447できがついたんじゃね?
459447:2009/06/18(木) 18:48:38 ID:Th8XoeHY
まぁいいんでね? 本人ヨシとしたんだし。身にならなくて困るかどうかは本人次第。
「ieee.なんとか」じゃ理解できなくて読み飛ばしてたかもしれんし。

あんなレスでも、ちゃんと読んでくれてる人もいるのが判ってよかったよ。
460774ワット発電中さん:2009/06/21(日) 15:39:25 ID:+SkuS1c5
質問です。
1からnまでの和を求める回路を作れという課題が出ました。
トップモジュールは与えられています。
まだverilogは始めたばかりで
手が付けられないのですがヒントだけでも教えてください。

module top;
reg tclk, tres;
reg [7:0] tn;

wire [7:0] tresult;
wire trflg;

sumint sumint1 (tclk, tres, tn, tresult, trflg);

initial
begin

$dumpfile("sumint.vcd");
$dumpvars(0, top);

tclk = 1'b1;
tn = 8'd10;
tres = 1'b1;
#2
tres = 1'b0;
#2
tres = 1'b1;
#30

$finish;
end

always #1 tclk = ~tclk;

endmodule
461774ワット発電中さん:2009/06/21(日) 16:59:46 ID:Fs72sdD1
>>460
逝ってよし

↓次の人どうぞ。
462774ワット発電中さん:2009/06/21(日) 17:00:49 ID:xQqkp/e+
>>460
まずは紙と鉛筆でどんな波形が欲しいか書いてみるべきじゃね。
・tresが0だったらゼロクリアするアップカウンタを作る。
・tresが0だったらゼロクリア、それ以外はクロック毎にアップカウンタの値を足し込むレジスタtresultを作る。
・アップカウンタの値がtnと等しくなったらtrflgレジスタを0→1にする。

nが小さな値という事ならROMにしちゃうのも手。
・ Excelやなんやらで入力nに対する答えを全て計算しておく。
・ case文で入力nに対する答えをレジスタに入れて返す。

たぶんTop Moduleの不備を指摘する事も課題の内に入ってるんだろうなぁ。
463774ワット発電中さん:2009/06/21(日) 22:02:11 ID:/iDpI02B
sum=0;
for(i=0; i<n; i=i+1) sum=sum + i;
464774ワット発電中さん:2009/06/21(日) 22:02:55 ID:/iDpI02B
間違えた
sum=0;
for(i=1; i<=n; i=i+1) sum=sum + i;
でした
465774ワット発電中さん:2009/06/21(日) 22:36:02 ID:TtZx1KiY
>>464
普通はn(n+1)*0.5で求めるだろ....
466774ワット発電中さん:2009/06/22(月) 00:04:43 ID:IhSM0wQI
結果が8ビットしかないから、有効な入力は0〜15だけだね。

>>465
そうだけど、何を計算してるか分からないのはどうかと思う。
467774ワット発電中さん:2009/06/22(月) 02:09:29 ID:EChz1fi1
普通に分かるだろう。というか、分からないってどんだけ?
468774ワット発電中さん:2009/06/22(月) 02:49:16 ID:kSISggRt
ウハッ、俺もパッとみて分かんねーw
言われても[0..n-1]or[1..n]で悩む。
469774ワット発電中さん:2009/06/22(月) 23:43:59 ID:CAHvY/bC
入力が8ビットくらいだったらテーブルで持っちゃえ、ってのはだめ?
470774ワット発電中さん:2009/06/23(火) 03:42:53 ID:ATg+0bEL
だめです。将来最大32bitまで拡張される可能性があります
471774ワット発電中さん:2009/06/23(火) 08:24:40 ID:VjMBD+jJ
32ビットなら、4T で済むじゃん
472774ワット発電中さん:2009/06/23(火) 16:46:24 ID:NwQoljQY
>>471

K=2^10
M=2^20
G=2^30
T=2^40
473774ワット発電中さん:2009/06/29(月) 21:44:41 ID:dP3qTJyT
>>472
全米が泣いた
474774ワット発電中さん:2009/06/30(火) 03:44:02 ID:3wo++Z6s
一部地域を除く
475774ワット発電中さん:2009/07/07(火) 13:10:48 ID:H2+HGeeM
VHDLとverilogHDLをどちらから勉強したらいいですかね?
ABEL + GAL の時代から久しぶりに、さわる者です。
とりあえず、トラ技の付属基板でI2Cスレーブにトライしてみるたいと思っているのですが。
476774ワット発電中さん:2009/07/07(火) 13:20:39 ID:yHWTkv6H
回路図入力からで
477774ワット発電中さん:2009/07/07(火) 13:32:56 ID:fcidycsD
>>475
自分は完璧であると信じられるのであればVerilog。
ミスが多いのであまり信用できないのであればVHDL。
478774ワット発電中さん:2009/07/07(火) 19:16:44 ID:pf8c9IJF
これからはシステムC


10年後には真っ当な合成が出来るようになってる・・・といいな
479774ワット発電中さん:2009/07/07(火) 20:27:30 ID:S8pc3557
とりあえずシステムverilog

案件がやって来たら・・・どうしよう。
480774ワット発電中さん:2009/07/07(火) 20:28:30 ID:DbwVgKnM
>>475
俺、ABEL + GAL って知らんのだが、>>475は相当なおっさん、いや、引退世代の人?
書き込み時間からして引退世代かな。で、老後の暇つぶし・趣味に電子回路いじりってとこ
ま、趣味なら見て目でこっちがよさげだから、これでな感じで選んでいいんじゃないかな
481774ワット発電中さん:2009/07/07(火) 20:44:15 ID:+3j/UqRi
>>475
どっちも大して変わらないから、適当に選ぶのが良いかと
482774ワット発電中さん:2009/07/07(火) 22:22:05 ID:L3Am3r+o
LINT-checkをかける環境があるなら、迷わずVerilogHDLだと思う。
483774ワット発電中さん:2009/07/07(火) 23:31:47 ID:YZbui31u
>>480
30代後半から上なら知ってるよ。>>480は20代かな。
484774ワット発電中さん:2009/07/07(火) 23:34:10 ID:QyDgQIjW
PALのヒューズマップを手書きしてた世代もまだ現役だろ(w
485774ワット発電中さん:2009/07/07(火) 23:53:22 ID:t0SgNCD0
>>483
もう、実務隠居世代だな。

>>484
PALのヒューズマップを手書きしてた世代は現業できない、経営できない
のダメポ現役。でも、給料は実力をはるかに超える額を貰っている会社の穀潰し
486774ワット発電中さん:2009/07/07(火) 23:57:25 ID:AeVP4+UO
という事にして「俺はまだマシ」だと思いたいんですね。
哀れです。
487774ワット発電中さん:2009/07/07(火) 23:58:16 ID:zs5FZ94C
>>480
人とのコミュニケーションがうまくできない馬鹿造か、若いふりをしているあほ爺のどちらかだな。
多分使っているのはVerilogのパターンだと思う。
厳格にきっちりと書かないと動かないVHDLは書けない。

488774ワット発電中さん:2009/07/08(水) 00:10:06 ID:94eY9AMp
>>486
その通り。俺はまだマシだ。
ちゃんと給料分以上の仕事を強制的にさせられている
現役なら給料分ぐらいの仕事はして欲しいよ
489774ワット発電中さん:2009/07/08(水) 12:56:32 ID:T0099Nou
475です。
私のスペックは、30才後半でSE兼回路設計、ファームソフト開発です。

今までに使用していたハード資産があったので、FPGA,CPLDを使用せずにCPUで行っていたのですが、そろそろディスコンの風が吹きそうな状況で、新規開発に至ってます。

とりあえず、VHDL + MAXUで作ってみたいと思ってます。今、MAXUのマニュアルを熟読中です。

I2Cマスター側はSH7137でデバック中です。


MAXU側のデバックは、やっぱり、シュミレーターにかけてから実機に流して確認になるんですかね〜?

シュミレーターの時も、言語はVHDLの方がデバックが楽なんですかね〜?

すみません、諸先輩方の生の意見聞かせてください。
490774ワット発電中さん:2009/07/08(水) 19:02:20 ID:QyfF1Cz5
改行ばっかりでスカスカなやつだな。
さぞかしお頭の中も・・・
491774ワット発電中さん:2009/07/08(水) 19:06:22 ID:FzQGTaIG
>>489
普通は自分で初心者だと思うなら、 趣味レータ でデバックしてからだろうね
492774ワット発電中さん:2009/07/08(水) 19:44:01 ID:2f8/LnMx
事あるごとに唐突に上の世代を罵倒してる奴って何か根深いコンプレックスでもあるのかね?
心の闇抱えてるのはわかるがここで排泄しないでくれるか?
493774ワット発電中さん:2009/07/08(水) 20:50:15 ID:UW3vw5eI
不況だからだよ、きっと景気よくなれば直るだろう。
494774ワット発電中さん:2009/07/08(水) 21:52:49 ID:eHx7YT1b
>>489
兄貴ほどの回路設計のベテランなら、I2C程度ならSimなしで即実機動作でOK
で、ソフト開発のベテランでもあるから、Verilogの方がC言語っぽくて
コーディング効率・デバッグ効率がVHDLよりはるかに良いですよ
Verilogってコンカレント動作対応のC言語みたいなもんだって感じで、兄貴ならすぐに対応できる
495774ワット発電中さん:2009/07/09(木) 23:05:02 ID:bGAZ5j3w
475です。
とりあえず、VHDLでテストを行ってみて、できる事がわかったら
verilogHDLで行いたいと思います。

現在はテストボード(I2C to 32bit入出力)の手配線ジャンパーが終わった
ところで、MAXUに火を入れたところです。
が、ちょっと問題がありますが、その問題は他スレで質問します。

みなさんありがとうございました。

496774ワット発電中さん:2009/07/10(金) 08:14:56 ID:s4uIrvQc
シュミなら自分のやりたいようにやればよかろう
497774ワット発電中さん:2009/07/15(水) 20:13:53 ID:B6CwxJgR
EDAツール使ったルーチンワーク設計なんかおそらく近い将来日本からほとんど姿消して新興国に移管してしまいそうな気がする。
実際、EDAに絡んだ中華サイトとかの熱気とか凄いんだよな。翻訳ツールで翻訳しながら見てるけど、
日本でやってるエンジニアも近々異動させられるんじゃないかい?
日本でモノつくっても今の値段じゃ勝負にならんのよね。
498774ワット発電中さん:2009/07/16(木) 13:30:30 ID:hQYrpXfr
>>497
そんな事あるわけない。
客の望む物を聞き出して作り上げる地道な仕事を中華が出来るわけない。
いや、言い過ぎた。出来るやつはめったにいない。

中華はもうじきバブルが爆発するから、あまりのめりこむと痛い目にあうよ。

経費が安いといって中華などにアウトソーシングした話を良く聞くけど、日本の現場はその尻拭いでひどい事になっている。
ちゃんとできる会社に最初から頼んだほうが安く確実なケースはすくなくないと思う。
しかし、上の方としては失敗したとは言えないので、負担現場が背負い込んでいる。

ルーチンワーク設計を若手にさせて経験を積む必要があるから外にばかり出せないよ。
多少は経費的に赤字かもしれないが、経験をつませる事でまともな技術者が生まれる。

某大手メーカとかはアウトソーシングしすぎて中堅どころの技術者が本当の技術じゃなくて、プロデュースなどのスキルしか上がっていなくて、トラブルになった時に原因究明できなくなりつつある。
499774ワット発電中さん:2009/07/16(木) 14:08:15 ID:mnPTIrTR
中共のコピー商法にはひどいものがあるけど
対岸の火事と日本も遠巻きに見てる場合じゃない
最近の学生は課題でも論文でも
平気でネットからのコピペを提出する時代
500774ワット発電中さん:2009/07/16(木) 14:18:37 ID:FarOQJ9O
バブル前夜は名実共に技術立国だったが
バブル以降はピンハネ立国に成り下がってしまった
501774ワット発電中さん:2009/07/16(木) 14:32:04 ID:t7ZmjMUD
>>498
>ルーチンワーク設計を若手にさせて経験を積む必要があるから外にばかり出せないよ。
>多少は経費的に赤字かもしれないが、経験をつませる事でまともな技術者が生まれる

ちがうんだなぁ。アウトソーシングじゃないんだよ。
日本人スタッフを現地に行かせて現地採用した人間といっしょに設計させんの。
おそらく再チャレンジの3G携帯電話輸出あたりはその流れだ。
ルーチン設計でいい開発設計は国外、日本側との御用聞き要員といってもいい。
国内では公的スペックを作るようなルーチン設計では対応できない研究開発部門だけが残る

>そんな事あるわけない。
そうおもってんおはおまえだけ。おめでてーな。
大体、客の仕様を聞き出してそれぞれ個別にカスタマイズする部分があまりに多いことが、
日本のソフトウェア産業の収益が上がってない最大の問題ってことがわかってんのか。
世界の流れは、

"スタンダード仕様のものを客に慣れさせる"

だ。

>ルーチンワーク設計を若手にさせて経験を積む必要があるから外にばかり出せないよ。
>多少は経費的に赤字かもしれないが、経験をつませる事でまともな技術者が生まれる。

まともでなくてもういいんだよ。情報家電なんかじゃもう稼げないんだから。おそらく電機3社は重電の方により舵を切らざるを得ない。
東芝のFLASHもおそらくサムに負けて、インフラと重電に賭けざるを得なくなるだろ。
シャープの液晶もサムとLGのウォン安見てるといくら品質をうたい文句にしても、限りなく勝ち目がない。
強いのは品質にこだわる日本国内だけ。だからこそ将来不安で太陽電池の電力インフラにも色気見せてるんだろ。
お前のいうチャンコロの御用聞き資質はともかくあいつらのサイト見てると、決してレベルは低くない。
何より活気が日本と全然違う。その証拠にEDAメーカ自体日本より中国対応を優先しつつある。
502774ワット発電中さん:2009/07/16(木) 14:42:35 ID:t7ZmjMUD
>>500
そのバブル前後の電気業界の好調ぶりも、
ライセンス生産の歩留まりと、ビデオなんかの地道な機械技術が主体
DRAMなんか回路技術じゃなくて設備産業が強かったからだし、
純粋なエレクトロニクスで日本が世界をリードしたことなんてコレまでないんだな。

全く新規の技術開発という意味では武器を輸出できるようにして、
軍事技術開発を国内産業が主体でとりくむことだと思うんだがどーかな?
輸出できないと自衛隊だけではあまりにも市場規模が小さすぎる。
503774ワット発電中さん:2009/07/16(木) 15:01:56 ID:mnPTIrTR
多くの日本人は在日について嘘の情報を教え込まれており、連中の本当の正体を知りません。
在日朝鮮人、韓国人が日本人から嫌われているのは当たり前なんです。奴らは日本人が敗戦の悲しみをこらえ
必死になって祖国の再建を目指して努力していたときに、土地を不法に占拠したり、日本女性を強姦したり
「俺達は戦勝国の国民だ。」と威張り散らして警察官にさえ暴行を加えた連中なんだから。
奴らはやがて、日本に秩序が戻り自衛隊もできて自分達が思うように暴れることができなくなると
「ウリたちは日本人に差別され続けて生きてきたニダ。」などとお得意の捏造話を語るようになった。
こんな連中を日本国内において置くだけでもずいぶんお人よしなのだが、奴らはそれを見てつけあがり
被害者の振りをして要求すればたいていのことは押し通せるということに味を占めてしまったのだ。
こんなになってしまったのは、社会党を始め自民党の中にもいる売国議員や朝日新聞、日教組などの
捏造宣伝によるところも多い。
国民が在日の正体をしっかりと理解して反日的なマスコミの記事に批判的に対処できるようにならなければ
ならない。最も良いのは、朝日、毎日、中日、西日本などの明らかに反日的な新聞は購読しないことだ。
504774ワット発電中さん:2009/07/16(木) 15:03:38 ID:mnPTIrTR
なるほど、オバマだったのね。確かに色があればわかるね。
オバマ、フランス、北朝鮮、韓国、
このあたりは、内心ではチャイナはやっかいだと思いつつ、
政府が経済的な面であまり対立するのは得策ではないと判断しているところが共通してるな。

ジャッキーに関しては本心がどうなのかわからんな。
中共や在外チャイナ人からの圧力があるからかもしれんし。
香港自体も民主化を求めると言う面からみれば中共嫌いに見えるかもしれんが、
金儲けできればそんなことはどうでもいいと考えている人間が多いのも確か。
こういう奴らは台湾や日本にもたくさんいる。

結局全ての問題の根は、チャイナ経済なんだよな。
ここが崩壊すれば事態がかなり動き出すと思うんだが。
周りの国がとばっちりを受けない形でチャイナ経済を崩壊させることが
この問題解決の一番の近道だと思うが、なにをどうすればいいかが難しいね。
チャイナ製品、チャイナ産製品の不買運動を続けていくぐらいしかないのかな。
505774ワット発電中さん:2009/07/16(木) 15:09:38 ID:Pqna8IJj
そういう話、いまどきは民主党絡めるのが流行り。

ま、盛大にスレ違い。
506774ワット発電中さん:2009/07/16(木) 15:34:24 ID:hQYrpXfr
>>501
スレ違いだがとりあえず測定結果待ちなので相手してやろう。

>日本人スタッフを現地に行かせて現地採用した人間といっしょに設計させんの。
なんで日本人がわざわざ外国まで出向いて仕事せにゃならんのよ。
それくらいだったら呼んだ方が安い。

>国内では公的スペックを作るようなルーチン設計では対応できない研究開発部門だけが残る
日本語ちょっとおかしくない?
頭がドーナッツなんだね。
幸せ回路発動中とはうらやましいよ。
研究開発部門だけで物はできんよ。

>>そんな事あるわけない。
>そうおもってんおはおまえだけ。おめでてーな。
>大体、客の仕様を聞き出してそれぞれ個別にカスタマイズする部分があまりに多いことが、
>日本のソフトウェア産業の収益が上がってない最大の問題ってことがわかってんのか。
>世界の流れは、
>"スタンダード仕様のものを客に慣れさせる"

というおごりを持つ会社は淘汰されていくよ。(藁)
あんたの会社と取引がなくてほんとうれしいわ。
ソフトウェア産業とここでの話される設計は別物。
回路設計なんて、カスタマイズの塊だろうが。

>まともでなくてもういいんだよ。情報家電なんかじゃもう稼げないんだから。おそらく電機3社は重電の方により舵を切らざるを得ない。
>東芝のFLASHもおそらくサムに負けて、インフラと重電に賭けざるを得なくなるだろ。
>シャープの液晶もサムとLGのウォン安見てるといくら品質をうたい文句にしても、限りなく勝ち目がない。
>強いのは品質にこだわる日本国内だけ。だからこそ将来不安で太陽電池の電力インフラにも色気見せてるんだろ。
>お前のいうチャンコロの御用聞き資質はともかくあいつらのサイト見てると、決してレベルは低くない。
>何より活気が日本と全然違う。その証拠にEDAメーカ自体日本より中国対応を優先しつつある。
なんだ、チョンだったのか。
東芝はSUNDISKと一緒に高速SSD技術を使ってHDD市場を食っていくつもりと思われるけどサム損はなにか特許あったけ?
サム損はDDR3の歩留まり上がったの?色々発表はあるけど、現物出てきていないのはなぜ?
LGはまずまずだけど、サム損のはひどいのが多いと聞くけど改善した?
won安になると原材料の輸入が大変になるけど大丈夫?
この間中華製激安液晶を見に行ったけど最悪だったよ。
スペックはすごいんだけど、実際に表示される画面はヘロヘロ。42インチでフルハイビジョンだったけど、37インチの国産の方がはるかに画質が上。
活気というか、中華は今バブル末期のジョーカーのなすりつけ合いの真っ最中だろう。
EDAが中華対応しよう日本対応をサボろうと関係ない。
所詮道具だ。道具の出来が多少悪くても良いものを作り上げるのが日本人ってやつだよ。
507774ワット発電中さん:2009/07/16(木) 15:51:10 ID:6bgCNaRd
334 :可愛い奥様:2007/06/26(火) 09:46:19 ID:raxdPvfD0
OLだった頃、会社で働いていた日本に超詳しいベルギー人が言ったことに納得してた。
日本文化は身内受けの凝り性文化だそう。
外国文化に負けまいとしているのではなく、
世に意図的にインパクトを与えようとしているのでもなく、
今ここにいる同じ価値観を共有する仲間からの喝采を浴びたいと考える。
その結果、同じものを志す者同士の「これすごいだろ、おもしろいだろ」合戦が始まり、
そこで生み出される物が自然と研ぎ澄まされていく。
でもその競争は、敵対的なものではなく、お互いを尊敬しあいながら、静かに深く進行していく。

そしてある日、偶然目撃した異文化出身の人間(外国人)から、
それがすごいものであることを知らされる。
ほとんどの日本人はその日が来るまで、自分たちが作り上げた物がすごいものとは知らない。
もろもろの伝統文化、芸能、電化製品、アニメ、他、みんな同じパターンで世界に広まっていった。
だから、日本がここまで発展してきたのも必然的なものだし、
この精神が衰えない限り、これからも日本は誰に頼まれることもなく、
知らないうちに勝手に世界にインパクトを与え続けていくだろうと。
508774ワット発電中さん:2009/07/16(木) 15:57:18 ID:I9ueUwnl
>>507
> 日本文化は身内受けの凝り性文化だそう。

逆に考えると「身内」以外には興味がないということ。
残念なことに、今の日本では団塊世代という一つの世代が
日本そのものであるかのごとく膨張してしまっているために
団塊世代の中だけで競争が行われている。
しかも、団塊世代は枯れた年寄りだからそれは競争と言うより停滞だ。
日本を救いたいなら団塊世代を日本の表舞台から排除することから始めなければならない。
509774ワット発電中さん:2009/07/16(木) 16:10:05 ID:mnPTIrTR
なんだRubyのことか
510774ワット発電中さん:2009/07/16(木) 16:14:22 ID:I9ueUwnl
>>509
Rubyコミュニティがうらやましくて仕方がないんですね。

ユダヤ人がうらやましくて仕方が無かったドイツ人みたいに。
511774ワット発電中さん:2009/07/16(木) 16:22:28 ID:mnPTIrTR
        ヘ_ヘ
     ミ ・ ・ ミ  < ということにしたいのですね
      (  ° )〜
512774ワット発電中さん:2009/07/16(木) 17:17:01 ID:t7ZmjMUD
>>506
>なんで日本人がわざわざ外国まで出向いて仕事せにゃならんのよ。
>それくらいだったら呼んだ方が安い。

バカかお前。ちょっとは新聞でも読め。アホクサ

>日本語ちょっとおかしくない?
なんかおかしい文章かと思って読みなおして全くおかしくないんだが。あ、おまえのオツムがおかしかったか。
その程度の読解力じゃスペック読めてねぇだろ。どうせ突っ返されて、手直しのオンパレードだろお前。

>回路設計なんて、カスタマイズの塊だろうが。

ソフトウェアと違うことほざきながら、新規設計の部分じゃなくて、流用とも言えるカスタマイズを強調するってアホかお前。

>なんだ、チョンだったのか。
>東芝はSUNDISKと一緒に高速SSD技術を使ってHDD市場を食っていくつもりと思われるけどサム損はなにか特許あったけ?
>サム損はDDR3の歩留まり上がったの?色々発表はあるけど、現物出てきていないのはなぜ?
>LGはまずまずだけど、サム損のはひどいのが多いと聞くけど改善した?
>won安になると原材料の輸入が大変になるけど大丈夫?
>この間中華製激安液晶を見に行ったけど最悪だったよ。
>スペックはすごいんだけど、実際に表示される画面はヘロヘロ。42インチでフルハイビジョンだったけど、37インチの国産の方がはるかに画質が上。
>:活気というか、中華は今バブル末期のジョーカーのなすりつけ合いの真っ最中だろう。
>EDAが中華対応しよう日本対応をサボろうと関係ない。
>所詮道具だ。道具の出来が多少悪くても良いものを作り上げるのが日本人ってやつだよ

それなりでしかない製品を世界中にばらまくのがサムの手法だ。現に日本の半導体、液晶は完敗状態。
それで着実にシェアとってるんだから会社として何の罪悪感もない。
HDD代替のSSDにしてもHDD市場を食わなくてもサム自身HDDの製造メーカだろが。適当なところで、市場投入すれば痛くもかゆくもない。
むしろ急速なSSD市場の立ち上がりはHDD事業にとっては迷惑なんだよ。
DRAMにしろ対するエルピーダは公的資金の注入をあおぐへろへろ状態。政府からもらった金をいつ使うかしらんが、設備つくったところで、
今の経済状況からして、生産量あげるわけにもいかず、サムとすりゃゆっくり対応してても痛くもかゆくもないだろ。
そういう日本の不利な現状を恥ずかしげもなく逆にアドバンテージであるかのように書き綴って、お前は電気業界で飯食ってんのかホントに。
現状把握のかけらもできてない。業界がバラ色の将来が待ってるならなんで、電気系の学生の偏差値がここまで落ちてるか説明してみろマヌケが。
513774ワット発電中さん:2009/07/16(木) 17:28:58 ID:t7ZmjMUD
しかし、コイツ >>ID:hQYrpXfr

>なんで日本人がわざわざ外国まで出向いて仕事せにゃならんのよ。
>それくらいだったら呼んだ方が安い。

まったく、仕事の仕方を知らんのだな。よっぽどの下請け仕事しかさせてもらってない吹けばとぶよな糞企業勤務と見た。
マーケットにできるだけ近いところで設計しないと競争に勝てるスピーディーな対応なんてできねぇんだよ馬鹿たれ。
よっぽどの汎用品でもない限り、日本であぐら書いてて、市場の要求なんか読み取れるかアホ。
てか、こんな話すら、おまえの会社じゃしねぇってか?マーケット動向になーんも関係ない下っ端ドカタちゃんよ。
514774ワット発電中さん:2009/07/16(木) 17:31:12 ID:6bgCNaRd
でも発展途上国で働くくらいなら転職するよ
515774ワット発電中さん:2009/07/16(木) 17:41:44 ID:I9ueUwnl
俺は国連のインターンでアフリカ行ったぞ
516774ワット発電中さん:2009/07/16(木) 17:47:40 ID:4Zi5e3jH
あくまでも一般論だが
中華の人は威圧感のあるお目付け役を駐在させないと全然働かないよ

そこらへんがオフショア開発のノウハウ
517774ワット発電中さん:2009/07/16(木) 18:02:54 ID:I9ueUwnl
>>516
自由意志を育む環境を揃えず、そういう方法論が最良だとか言ってるやつは
目先のことしか考えられない団塊世代に多いね。
518774ワット発電中さん:2009/07/16(木) 18:07:21 ID:5BgdeyfA
来年就職でHW設計の仕事に就く予定なんですが、HDL書く人は結構暇なんですね
HDL書く仕事に希望出したいと思います
519774ワット発電中さん:2009/07/16(木) 18:18:24 ID:6bgCNaRd
暇で給料もちゃんともらえてクビにならないならいいけどね
520774ワット発電中さん:2009/07/16(木) 18:20:16 ID:I9ueUwnl
>>519
いるじゃん、団塊世代にいっぱい。
521774ワット発電中さん:2009/07/16(木) 18:23:02 ID:I9ueUwnl
マジで、暇で給料をもらってる奴はクビにすべきだと思うねぇ。
それを指摘したら「俺らは社員を教育するために必要だ」などとほざきやがる。

・・・反面教師ですか?w

いや、あんたらいないほうが世の中うまくいきますからw
522774ワット発電中さん:2009/07/16(木) 18:34:42 ID:WNoOxBhn
韓国は潰れて、中国のバブルははじける。数年前から語り継がれる伝説ですね。
523774ワット発電中さん:2009/07/16(木) 19:16:44 ID:BmDc6svG
伝説っていうか、願望
524774ワット発電中さん:2009/07/16(木) 19:20:06 ID:vsJcKs+m
>>511
そのキャラとその言葉って同一人物だっけ?
525774ワット発電中さん:2009/07/16(木) 19:25:54 ID:hQYrpXfr
>>513
>マーケットにできるだけ近いところで設計しないと競争に勝てるスピーディーな対応なんてできねぇんだよ馬鹿たれ。
マーケットって中国ですか〜?
確かに中国市場は見た目はうまいが、利益はどうなんだろうね?
すぐに製品をパクられて投資金額回収できるの?
どこかで中国製の闇携帯を輸入禁止しているところなかったけ?

>>512
>バカかお前。ちょっとは新聞でも読め。アホクサ
新聞だけ読むと馬鹿になるぞ。
新聞はフィルタリングが強すぎて必要な情報が欠如しているからさっくりと見る程度で十分。
半島と中華にマンセーしているみたいだけど怪我しないようにがんばってね。

>>522
そうそう、伝説だから信じちゃだめだよ。
TVでダメです。と流れた時にはもう手遅れだから。
アイスランドのデフォルトだってちょっと前ににサムライ債発行してアボーンですから。
日本のバブルもはじけるはじける・・・・とうわさされ初めてから1−2年は続いたくらいだから、中国は上海万博までは全力でがんばるかも?
韓国だって貿易収支は黒字になっているくらいだから、まだまだ大丈夫。
はじけて初めて伝説が現実になるんだよ。

今の中国はドーピングしまくって強いように見せているだけ。
日本のように公害対策とかまじめにやっていない。
だから利益を上げられる。
日本も昔はそうだった。いろいろ痛い目にあって今がある。
中国は日本よりもやっている事がひどそうなのではじけた後の処理は大変だろうね。
塩の偽物とか売られているそうだからすごいよね。
526774ワット発電中さん:2009/07/16(木) 22:21:07 ID:X0H87zhA
ながい。
527774ワット発電中さん:2009/07/17(金) 00:45:23 ID:3fcHs/QB
活気というか、中華は今バブル末期のジョーカーのなすりつけ合いの真っ最中だろう。
528774ワット発電中さん:2009/07/17(金) 05:52:14 ID:MBwsqnAF
韓国は通貨スワップ絶賛発動中。
529774ワット発電中さん:2009/07/17(金) 19:34:45 ID:7vHmciGz
Verilogについて教えてください。
同じモジュールを複数インスタンスしたいのですが、
generateを使った記述をおしえていただけないでしょうか?
530774ワット発電中さん:2009/07/17(金) 21:30:01 ID:Nhe8G/rB
いいとも!
531774ワット発電中さん:2009/07/18(土) 14:49:29 ID:1FESTssW
やっぱりスパコン開発なんて政府にいやいやつき合わされてたんだな。
しかし、数値計算用なのにベクトルプロセッサ無しのSPARCベースのスパコンってどーなんよ?
532774ワット発電中さん:2009/07/18(土) 16:15:46 ID:AoWDSjs0
ベクトルプロセッサとかウンコだろ。
GPUで十分。
533774ワット発電中さん:2009/07/18(土) 17:48:02 ID:1FESTssW
は?
GPUなんてベクトルそのものじゃーか。
534774ワット発電中さん:2009/07/18(土) 19:32:13 ID:AoWDSjs0
今更だけどマジコン業者って中華ばっかなんだなぁ・・・
これ見たらマジコン販売差し止め賛成せざるを得ない

http://www.nintendo.co.jp/corporate/release/2009/090227.html

[被告]
社名 所在地 代表取締役
嘉年華株式会社 東京都文京区 鄭 蓬 莱
夏黎株式会社 東京都板橋区 曹 悦
株式会社カミヨコ 神奈川県横浜市中区 王 越 鳴
株式会社DIGITALNAVIGATOR 東京都千代田区 巽康一郎
株式会社クリエイティメイト 東京都千代田区 陳 嘉 雄
535774ワット発電中さん:2009/07/18(土) 22:56:41 ID:qxiOf28K
それ、元締めは同じとこじゃなかったか?
536774ワット発電中さん:2009/07/20(月) 01:51:19 ID:oZvNGZgd
曖昧な質問ですいません

Verilogでパイプラインの設計を行っているのですが、出力が上手く出来ません。
プログラムカウンタが0のまま進まず、最初のクロックの立ち上がりの時のみ命令メモリからアドレスを読み込みそれ以降は一切読み込まず、他の出力も全て0のまま、という状態なのですがなぜでしょうか?

もっと具体的な質問がしたいのですが、いかんせん量的にも、また原因がさっぱりわからないということもあってこんな質問になってしまいました…
ありがちなミスとかでもいいので、何かヒントをいただけるとありがたいです
537774ワット発電中さん:2009/07/20(月) 03:19:38 ID:dlpacszX
プログラムカウンタが0のまま
538774ワット発電中さん:2009/07/20(月) 06:19:33 ID:h0qU2unO
リセット系のミスじゃないかな?

たまの失敗は、スパイスかもね〜!
539774ワット発電中さん:2009/07/20(月) 09:30:25 ID:D7t+anUn
>>536
なんのパイプライン?cpu?
順序回路になってないとか、クロック自体入ってないとか・・。
540774ワット発電中さん:2009/07/20(月) 10:36:59 ID:bM5HoCT+
>>536
すばらしい回答だ。答えが凝縮されている。

>>537
シミュレーションでやっているのか、実機でやっているのかわからんが読み込んだ後の処理が動いていないだろうね。
パイプラインとあるから、多分パイプラインの仕掛けを入れる前は動いていたと思われから状態遷移図を見てどこまで処理が動いているか確認汁。
パイプライン処理部分に間違いがあると思われる。
541774ワット発電中さん:2009/07/20(月) 12:55:07 ID:7afu41bp
つーか宿題くさい
542774ワット発電中さん:2009/07/20(月) 17:45:29 ID:4sWIqVPV
> プログラムカウンタが0のまま進まず、
まずはこれをがんばれ。
543774ワット発電中さん:2009/07/22(水) 12:55:39 ID:DF8XMfOc
  先生、質問!
\___ __________
      V
     ∧_∧∩   
   ( ´∀`)/  
 _ / /   /  
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||

Velilogでモジュールを一つずつ作っていきます。
んで、最後に連結。という方法ってあるんですか?
構造体とか関数化とかではなくて、本当に単独。(その場合、ポート宣言とか出来るの?)
544774ワット発電中さん:2009/07/22(水) 13:09:04 ID:jGA388u0
>>543
Fishing?

まあ、全体をまとめるモジュール以下の階層に、
各モジュールを置く構成は一般的だと思うけど。

階層構造を作らないで設計してるの?
545543:2009/07/22(水) 21:18:33 ID:yhWIvu2y
 いえ、単に習いたてというか、ぺーぺーなのでよくわかっていません。
\___ __________
      V
     ∧_∧∩   
   ( ´∀`)/  
 _ / /   /  
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
単純にmodule〜endmodule間を完全に分断させて、独立出来たら便利かな?
と思っただけでして。
あれ?階層構造をちゃんとやれば、それで十分なような気もするかもしれない。
う〜ん。
すみません、出直してきます。
546774ワット発電中さん:2009/07/23(木) 09:09:18 ID:kTN/XOTI
  先生、質問!
\___ __________
      V
     ∧_∧∩   
   ( ´∀`)/  
 _ / /   /  
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
SWのチャタリング防止なんですけど、これって、SW1個1個でカウンター取るのくらいしか思い浮かばないんですけど、
状況によっては、べらぼうに記述が増えるじゃないですか?
関数化とか考えてみても同時押しとかを考えると、何か変に感じる。
粛々と必要な個数分を打ち込んでいくのか?
それとも、「実はこんなに便利な方法が!」というのがあるのか?
ヒントください。
547774ワット発電中さん:2009/07/23(木) 09:21:26 ID:eJ2cqIXQ
実は便利な方法がある
548774ワット発電中さん:2009/07/23(木) 09:23:42 ID:Z995JOVA
夏休みか・・・
549774ワット発電中さん:2009/07/23(木) 11:08:54 ID:lkqcTdbu
抵抗とコンデンサーを記述すればいいのさ
550774ワット発電中さん:2009/07/23(木) 11:20:29 ID:eJ2cqIXQ
rsff
551774ワット発電中さん:2009/07/23(木) 15:22:41 ID:V9WKbby0
3bitくらいのregを用意して、
10msとかの低速clockを作って、
その↑毎にSWを取り込み、reg[0]に入れ、シフト。
assignでreg==111になったらSW=on
552546:2009/07/23(木) 20:12:17 ID:K856p1ww
>>551
ありがとうございます!

くそう、こんな程度の事も気づかないなんて・・・・。
修行してきます。
ご迷惑をおかけしました。
553774ワット発電中さん:2009/07/24(金) 02:06:39 ID:zBAmOfP3
>>551
マスタークロック200MHzが普通の現状で
チャタリング防止ためだけに10msとかの低速clockを作るのもなって感じだな
554774ワット発電中さん:2009/07/24(金) 02:24:33 ID:BaMvoqfQ
でもFPGAで時間待ちって言ったら、FFで刻むしかないでしょ?
200MHzで10msだと0x1E8480ということで、21bit有ればOK。
555774ワット発電中さん:2009/07/24(金) 20:11:13 ID://QQrSmQ
pll使えば?
pll内で使ってると言えばそうだけど、
rtl的には使ってないってことで。
556774ワット発電中さん:2009/07/24(金) 21:51:31 ID:uhcZ8YWu
外付けで単純なCR発振付けてもOK?
557774ワット発電中さん:2009/07/25(土) 00:04:42 ID:1D7tAPSs
>>525
おまえのおつむは中国だけかバカ。
ツールこねくり回してりゃすむ下位設計なんて、人材が豊富で安値で働かせられりゃすむベトナムでもインドでもロシアでもブラジルでも
どこでもいいんだよッ糞が。

>サム損はDDR3の歩留まり上がったの?色々発表はあるけど、現物出てきていないのはなぜ?

お前が要望するからエルピより先に40n DDR3量産開始だってよ
http://pc.watch.impress.co.jp/docs/news/20090722_303926.html

しかも、サムだけでなくLGまでも、ウォン安で業績一挙回復だってよ。
http://sankei.jp.msn.com/economy/business/090724/biz0907242033021-n1.htm

>won安になると原材料の輸入が大変になるけど大丈夫?

エレクトロニクスメーカ、とくに半導体をはじめとする弱電業界は原材料費よりはるかに大きい加工費を上乗せて販売価格として設定してることぐらい常識として知っとけやアホ
アホほど全角英数使いたがるってのはホントだな
558774ワット発電中さん:2009/07/25(土) 00:22:05 ID:AY/2qyhi
74123 だな。2個入りだし。
559774ワット発電中さん:2009/07/25(土) 00:25:01 ID:ojKfHA3L
夏休みの季節。
机上の空論大好き人間が現れますな。
560774ワット発電中さん:2009/07/25(土) 00:36:35 ID:iY0Nwn4F
少ピンマイコンにしちゃうかな、めんどうだから。
561774ワット発電中さん:2009/07/25(土) 00:49:04 ID:Cboaybgn
>>557
しばらくこなかったのね。
バグだして缶詰になっていたのかな?

おめでとう。
良かったね。年末までこの調子でいけたら万々歳だね。(棒)
将軍様の容態が怪しくて情勢が不安定みたいだから、できるだけ長生きできるようにお祈りしてあげるよ。
562学生:2009/07/27(月) 20:05:37 ID:EXDeFOlZ
VHDLわかる方お願いします。
桁上げ選択加算器というものを作成しなければなりません。
条件というか作成手順は以下ものです。
全く手つかずなので宜しくお願いいたします。
なお、Model Simを使っています。

1.
論理素子に1nsの遅延を導入
2.
16桁の逐次桁上げ加算器を設計
3.
4桁の桁上げ選択加算器を設計
4.
桁上げ選択加算器を4つ並べた16桁の加算器を設計
5.
2つの桁上げ方式の違いをテストベッドで観察

563774ワット発電中さん:2009/07/27(月) 20:12:31 ID:IXFPjXwa
宿題は宿題スレでドゾー
http://science6.2ch.net/test/read.cgi/denki/1246621696/
564774ワット発電中さん:2009/07/27(月) 20:28:27 ID:0WhA4cLb
>>563
・宿題/課題の丸投げ禁止!
565774ワット発電中さん:2009/07/27(月) 21:21:04 ID:AUbJMuNq
>>562
桁上げ選択加算器って何?
566学生:2009/07/27(月) 22:19:43 ID:EXDeFOlZ
わかりません。全くわかんないんです。
567774ワット発電中さん:2009/07/27(月) 22:31:55 ID:YD58Aiys
わからないのは「丸投げ」の意味?それとも「禁止」の意味?
568774ワット発電中さん:2009/07/27(月) 22:45:12 ID:OAU8Xm7a
VHDLで質問です。
トップ階層からインスタンス化したモジュール内のsignalの値を
参照したいのですが、どのように書けばよろしいのでしょうか?

例えば、test_sub_module.vhdの中でsub_module.vhdをport mapしていて、
sub_module.vhd内のsignal reg_aの値を出力したい、という状況です。

Verilogだとドットで区切って、
$display(sub_module.reg_a);
みたいに参照できるのですが、VHDLでどう書くのかわかりません。。
ご存知でしたらお願いします。
569774ワット発電中さん:2009/07/27(月) 22:49:09 ID:ICnoTHLd
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   VHDLは解らねんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

570774ワット発電中さん:2009/07/27(月) 22:56:32 ID:0WhA4cLb
>>568
俺も色々調べたけど出来ないという結論に達しました。
回路はVHDLで書いてもテストベンチはVerilogになってしまうなぁ
571774ワット発電中さん:2009/07/27(月) 23:23:34 ID:IcqZpIHW
>>569
オイw
572774ワット発電中さん:2009/07/27(月) 23:29:02 ID:7lRkNjsd
> 回路はVHDLで書いてもテストベンチはVerilogになってしまうなぁ

最近は、混在シミュレーションできるから楽になったね。
573774ワット発電中さん:2009/07/27(月) 23:30:55 ID:bRGMLMqD
>学生さん
『桁上げ選択式加算器』はもしかしたら、
先生が研究している新しい回路方式かもしれないから、
先生に聞いてからここに書き込んだ方がいいよ
574568:2009/07/27(月) 23:32:15 ID:OAU8Xm7a
>>570
どうもありがとうございます。
やっぱり無理そうなのですね・・orz

VerilogとVHDLの混在はやったことなかったです。
テストベンチをVerilogで書けばVHDLで書いたRTLのレジスタ値を
$displayできるのでしょうか?
575774ワット発電中さん:2009/07/28(火) 00:04:47 ID:nY/1xqrw
>>574
出来たと思います。
576568:2009/07/28(火) 00:09:35 ID:pHi54na0
>>575
解決しました。
ModelSimを使ってテストベンチをVerilog、DUTをVHDLとして混在シミュをしましたが、
そのままVerilogの文法で$display(sub_module.reg_a)としたらエラーが出ました。

ちょっと調べたところ、ModelSimのsignal_spyというのを使ったらインスタンス内部の
信号を引き出せました。
577質問:2009/07/28(火) 00:13:15 ID:gGd7j3eY
module test(a, b, c);
input a,b;
output c;
assign c = (a == 1'b1 && b == 1'b0)? 1:0;

endmodule

module test(a, b, c);
input a,b;
output c;
reg c;

always @(a or b)begin
if(a == 1'b1 && b == 1'b0)begin
c <= 1'b1;
end
    else begin
c <= 1'b0;
end
end

endmodule
前者を@、後者をAとしたときの振る舞いは同じなの?
どう違うか教えてくれ。
578質問:2009/07/28(火) 00:16:22 ID:gGd7j3eY
できれば回路のイメージも添えてお願いします。
DFFがあって云々..
579774ワット発電中さん:2009/07/28(火) 01:17:36 ID:DKy9V1m7
>>577
Aは、それであってるか?
ノンブロッキングでいいの?
580774ワット発電中さん:2009/07/28(火) 04:40:09 ID:wfTdbyDS
FFは無いだろ、JK
581774ワット発電中さん:2009/07/28(火) 06:57:31 ID:7jqU5B92
JK-FF かと思った
582774ワット発電中さん:2009/07/28(火) 07:40:41 ID:9caq3sR5
>>573
桁上げ選択加算器(carry select adder)は、そこそこポピュラー

http://en.wikipedia.org/wiki/Carry_select_adder
に絵があるので、絵を見るとどういうのか分かると思う。
583774ワット発電中さん:2009/07/28(火) 08:19:27 ID:nY/1xqrw
>>576
どうやらシミュレータに依存する形のようですね、
以前、内部信号をトリガーにしてイベントするテストベンチを作ったような気がしたので出来たと思ってましたが・・・
584774ワット発電中さん:2009/07/28(火) 08:34:53 ID:R0FV+RcR
ところで加算器を書くとき

assign a[10:0] = b[9:0] + c[9:0];

assign a[10:0] = {b[9],b[9:0]} + {c[9],c[9:0]};

みなさんどっち?DC結果は違うのかな。

585577:2009/07/28(火) 10:00:01 ID:ptwAkQr8
自分では同じ回路になると思ったのですが、違うのかな。
>>579
いいのかどうかはわからない、回路的に違うものになるのかなぁと。
586573:2009/07/28(火) 10:35:23 ID:jHnYoKMo
>>582
サンクス
なるほど、キャリー入力によって、使う加算器を切り替えるわけね。
587774ワット発電中さん:2009/07/28(火) 11:13:36 ID:6NmOPk+7
>>584
どっちって、signed か unsigned の違いだろ
588774ワット発電中さん:2009/07/28(火) 14:46:23 ID:uNvHMG2r
>>577 は何をテストしているニダか? 誰か教えるあるね
テストベンチ記述ないあるから分らないニダ
589774ワット発電中さん:2009/07/28(火) 20:14:41 ID:aZ/Mqmi5
テストもクソもこんなモン、ISEWEBPACKインストールしてどんな回路になるか見れば、一発じゃん?
590774ワット発電中さん:2009/07/28(火) 20:45:28 ID:R0FV+RcR
>>587
unsignedの場合
assign a[10:0] = {1'b0,b[9:0]} + {1'b0,c[9:0]};
とはしない?
591774ワット発電中さん:2009/07/28(火) 21:11:55 ID:TaNS15eP
$signed,$unsigned使えと
592774ワット発電中さん:2009/07/28(火) 22:12:58 ID:UYAsMzps

GAやCB等でASIC化する時って論理設計や合成で
1chipのレイアウト設計を考慮して回路設計するものですか?
考慮する場合、どこをポイントとするものでしょうか?


593774ワット発電中さん:2009/07/29(水) 05:09:20 ID:z/zwLwEF
GAというのは遺伝アルゴリズムのことか?
594774ワット発電中さん:2009/07/29(水) 05:12:29 ID:z/zwLwEF
>>588
また、日本の技術を朴るつもりか?チョン公
595774ワット発電中さん:2009/07/29(水) 07:34:31 ID:j7MSB6CP
>>590
計算式に unsigned があると、signed があっても unsigned で
評価されてしまうのが verilog の仕様。
正直、わけわかめになるよ。
確かに自分で符号も含めて式を書いた方がいい。
596774ワット発電中さん:2009/07/31(金) 14:43:13 ID:oDFrJdbz
>>593
GA ゲートアレイ
CB セルベース

だろJK
597774ワット発電中さん:2009/08/01(土) 04:08:52 ID:ePoisC27
JKって、黒ブラの女子高生ですか? いいですね。
598774ワット発電中さん:2009/08/01(土) 09:21:42 ID:nWRjcyuF
>>596
GA Gigabyte Assy、 ギガバイトのマザボ
CB シチズンバンド無線

だよッ!
599774ワット発電中さん:2009/08/01(土) 14:04:47 ID:hTTeiv93
つまらん
600774ワット発電中さん:2009/08/01(土) 19:31:37 ID:vvdYDQ6j
GA Gameboy Advance
CB Circuit Breaker
601774ワット発電中さん:2009/08/03(月) 00:17:48 ID:WSWkkWrd
>>592
>GAやCB等でASIC化する時って論理設計や合成で
>1chipのレイアウト設計を考慮して回路設計するものですか?
>考慮する場合、どこをポイントとするものでしょうか?

レイアウトではタイミング制約を満たす配置配線を行う。--@
@のためフロアプランで階層ブロックの配置を設定して調整する。
@ではファンアウト調整が行われる。駆動力を小さいものから大きいものに変えられる。
@では回路規模が大きいと配線長が伸びて遅延がつくのでスピードがおちる。
@ではタイミングドリブンレイアウトがおこなわれる。それは
パスが最短距離になるように調整してくれる。手動で配置することもできる。
@では回路の論理最適化をおこなわない。(フィジカル合成ならおこなう。)


論理合成ではタイミング制約や遅延モデルをもとに論理最適化を行う。--A
Aのタイミング制約や遅延モデルの設定によって例えば、加算回路がスピードが速く、回路規模が大きい
またはスピードが遅く、回路規模が小さい。

@の詳細に計算された遅延モデルとAの遅延モデルで差異がある。
@の遅延よりもAの遅延が小さくなっていることが多くなっている。
プロセス?が小さくなって配線遅延が大きくなってきているため。
Aの制約ではその分も含めて、仕様のスピードよりも速めの設定をします。
Aではバッファリングやファンアウト調整は@でやるので必要ありません。

回路設計後の論理合成の時点でクリティカルパスがあって、
論理最適化でもレイアウト最適化でもタイミング制約が満たす見込みは
薄いと考えたら、回路を修正することになると思います。


自分でもまとまってなくよくわかりませんが、書いてみました。
602774ワット発電中さん:2009/08/03(月) 14:42:10 ID:BLEs8WM7
腕時計やなんかのスイッチ長押し処理ってどうやってるんですか?

@練習としてメタ・ステーブル対策を書く(FF2段)
Aシフトレジスタ数段の出力の論理積でチャタ防止(正論理)
BFFで1段遅らせた出力の否定と元との信号の論理積でワンショット作成

このあとスイッチの長押し処理を入れたいと思ったんですけど、どうしたらいいのかなと。
考え方としてはワンショットからカウンタを開始して1.5秒程度数えたら…どうするんだろう。
603774ワット発電中さん:2009/08/03(月) 14:50:04 ID:Pbmh4l2B
>>602
ワンショットじゃなくて、SWの閉期間のみカウント
604774ワット発電中さん:2009/08/03(月) 15:22:35 ID:BLEs8WM7
>>603
(_ひ)b 通常の押し離しで時刻合わせの+1、長押しで早送りカウントアップって気持ち。
@スイッチの閉時間をカウント(1.5秒とする)
A1.5秒以上押されていたら、『押されている間』早送りカウントアップ処理。
ってことですね。
605774ワット発電中さん:2009/08/05(水) 00:07:19 ID:YTKc5Dmh
パナソニック、村田製に積層セラミックコンデンサー事業売却
http://www.nikkei.co.jp/news/main/20090804AT1D0407G04082009.html

積セラだけでそれ以外のコンデンサはまだ事業継続するのかな?
積セラ売却しても、チップ抵抗は採算とれるのか?
いずれにしても、ローテクデバイスといえどもほとんどの電子部品を作ってたパナの撤退はちょっと衝撃かな。
606774ワット発電中さん:2009/08/05(水) 06:38:04 ID:4npasmaL
>腕時計やなんかのスイッチ長押し処理ってどうやってるんですか?

割り込み、大麻、大麻割り込みのあるCPUを使います。
607774ワット発電中さん:2009/08/05(水) 21:27:31 ID:4npasmaL
>>512
将来がまったく見えないあほ。見てるか。
東芝がフラッシュで白旗掲げて、電力に舵切るってよ。


東芝、設備投資5400億円削減 攻めの経営を凍結

 東芝は5日、2011年度を最終年度とする3カ年の中期経営計画を発表した。
期間合計の設備投資を1兆1000億円と、前の3カ年に比べて約 5400億円削減する。
09年3月期に過去最大の赤字に陥った直後に就任した佐々木則夫社長は、
西田厚聡前社長時代の攻めの経営をひとまず凍結。投資の厳選や固定費圧縮を
優先する堅実路線で難局を乗り切り、その後の反転攻勢につなげる構えだ。

 設備投資は総額を減らすと同時に事業分野ごとの配分を大きく見直す。
06〜08年度では電子デバイスが全体の68%を占めたが、半導体の不振を映して49%まで圧縮。
かわりに原発などが好調な社会インフラの比率を28%へと13ポイント高め、電力関連事業への傾斜を強める。
608774ワット発電中さん:2009/08/06(木) 00:18:56 ID:eXpbkiSc
>>607
どっちがあほなのかほかの人に聞いてみたいもんだ。
攻められるようなニュースを待っていたんだね。ご苦労さん。
君の愛しているサムスンも設備投資は半減させているよ。(笑)

今は余分な設備を持つ体力はどこもない。
生産性が向上すればよいけど、昔のように日本の技術をパクレなくなっているので大変でしょう。
電力への注力は今稼げる数少ない技術だからだよ。

 【ソウル=尾島島雄】韓国のサムスン電子が2009年の連結の設備投資を前年実績に比べ半減となる6兆〜7兆ウォン(約4800億〜5600億円)程度で調整していることが分かった。
液晶パネルの大型投資が昨年までに一巡しているうえ、半導体の設備更新も小幅にとどめるのが主因とみられる。4〜6月期に業績が急回復したサムスンだが、市況の先行きは依然読みにくいため、設備投資よりも各工場の生産性改善に注力する。
609774ワット発電中さん:2009/08/06(木) 03:43:12 ID:ZcA3j/NV
WH買収に代表されるように原発には相当注力してるだろ
610774ワット発電中さん:2009/08/06(木) 07:02:26 ID:4svSl5Xs
>>608
あほはお前確定。
サムスンが設備投資を抑制してる今こそ、設備投資しないで、いつサムスンに勝つつもりだ。
サム打倒でずっと設備投資を続けてきたが、懸命にがんばっても3位維持がせいぜいで、体力切れだ。
東芝半導体はこのままフェードアウト。最後までがんばった東芝もついに半導体はあきらめて、
総合電機3社は今後、電力でやっていく、そんな常識もわからんあほは死にな。
611774ワット発電中さん:2009/08/06(木) 07:09:45 ID:4x7KEdx8
自作自演をして遊んでいるのか?
612774ワット発電中さん:2009/08/06(木) 07:28:40 ID:4svSl5Xs
>>611
>>506見ていかに現状を理解してないアホがほざいてるかわかるだろ。
613774ワット発電中さん:2009/08/06(木) 09:59:42 ID:wkLM1Yp4
>>611
規制でも解除されたんかもね。
614774ワット発電中さん:2009/08/06(木) 10:01:12 ID:Z4qzLAQb
夏だな。
615774ワット発電中さん:2009/08/06(木) 16:36:38 ID:ZcA3j/NV
あぁ・・・暑いな
616774ワット発電中さん:2009/08/06(木) 16:58:13 ID:5YZUqbnA
>>611
自作自演ではないよ。
サムスンホルホルのキティを弄っているだけ。
しばらく現れなかったのは規制食らっていた可能性は高いかも。
たしか新聞社とか規制解除されたってあったらか、会社からアクセスしているのかな?

>東芝半導体はこのままフェードアウト。最後までがんばった東芝もついに半導体はあきらめて、
>総合電機3社は今後、電力でやっていく、そんな常識もわからんあほは死にな。
おもわずお茶吹いちまったよ。
なんで東芝が半導体を止める事になるんだよ。(大笑)
自分の願望をここで書くと自分は馬鹿ですって大声で叫んでいるようなもんだね。
総合電気3社ってあと2社はどこだよ。
適当な事言ってんじゃないよ。

今設備投資を控えるのは今回の不況が長引く可能性が高いって事だろう。
半島メーカのようにダンピングでとにかく安売りしてシェアを取るだけじゃやっていけないからね。

そういえば現行のPS3が市場から姿を消しているとか。
それなのになぜかSONYはあちこちから部品を集めているとか・・・・。
PSP goは11月発売、PS3の後継はいつ頃出るのかな?もしもPS3の後継がそれなりに台数が出ると東芝からICの供給は大丈夫かな?
617774ワット発電中さん:2009/08/06(木) 17:00:35 ID:wkLM1Yp4
>>615
うん、うっとうしいほどの暑さですね。
618774ワット発電中さん:2009/08/06(木) 17:16:54 ID:msrOaDU+
蝉の鳴き声がうっとーしさに輪を掛ける・・・

長々と書いてるけど、引用と煽り文句を消すと
中身が無くなるようなやつのうっとーしさに似てる。
619774ワット発電中さん:2009/08/06(木) 17:32:24 ID:renFWp2k
project6ぐらいから覗いていなかったけど
めちゃくちゃ進んでるね。良スレ?

>>602

module sw_gate;
input clk; //クロック
input reset_X; //リセット
input sw_X; //スイッチ
output sw_out; //出力?

reg [1:0] sw_reg; //チャタリング除去
reg [15:0] sw_cnt; //長押しカウンタ

wire sw_one_shot; //ワンショット出力
wire sw_nagaosi; //sw_X長押し検出
wire sw_reg_full; //長押しカウンタfull
wire sw_reg_c_up; //長押しカウンタスタート

always @(posedge clk or negedge reset_X) begin //チャタリング除去レジスタ
if(!reset_X)
sw_reg <= 2'b11; //リセット
else
sw_reg <= {sw_reg[0],sw_X} //トレースし続ける
end

always @(posedge clk or negedge reset_X) begin //長押しカウンタレジスタ
if(!reset_X)
sw_cnt <= 16'h0; //リセット
else if(sw_reg_c_up) ///長押し&カウントがfullじゃないとき
sw_cnt <= sw_cnt + 16'h1; //カウント
else if(!sw_nagaosi) ///ボタンが離されたとき
sw_cnt <= 16'h0; //カウントリセット
else ///カウントfullで押されっぱなしのとき
sw_cnt <= sw_cnt; //カウント保持
end

//ここいらは省略
assign sw_one_shot = (sw_reg == 2'b10);
assign sw_nagaosi = !(| sw_reg);
assign sw_reg_full = (& sw_reg);
assign sw_reg_c_up = sw_nagaosi & !sw_reg_full;

assign sw_out = sw_one_shot | sw_reg_full; //ワンショットか、カウントFULLだと1

endmodule

うーん・・・あってるかな。久々書いた。
カレー以来だ
620774ワット発電中さん:2009/08/06(木) 20:18:24 ID:apVABe4K
>>618
似てるというかそのものだろ
621774ワット発電中さん:2009/08/06(木) 22:35:49 ID:hrJehGtI
残念ながら糞スレです。
622774ワット発電中さん:2009/08/07(金) 01:17:23 ID:H0AAg1iV
>>616
>総合電気3社ってあと2社はどこだよ。

総合電気ってバカかお前は。常識のかけらもないなコイツは。
623774ワット発電中さん:2009/08/07(金) 01:32:20 ID:PgFV7CD1
ゆっくり罵倒していってね!!
624774ワット発電中さん:2009/08/07(金) 01:46:56 ID:ramuhkAt
>>622
糞スレうざい。
625774ワット発電中さん:2009/08/07(金) 10:41:29 ID:0FeyvE6K
電気業界で飯食ってて総合電機知らないって?
しかも

>総合電気3社ってあと2社はどこだよ。

総合電気?こいつ仕事の仕方もこの調子なんだろな。
お前の上司に成り代わって言ってやるわ。死ね。
それか、さっさと辞めてくれ
626774ワット発電中さん:2009/08/07(金) 12:17:32 ID:mNzlu6al
>>625
就業時間中に2chアクセスするやつが上司だったら、下っ端はやっていられないね。
10:00出社で、19:00上がりだとすると、40分も仕事していないのかよ。
627774ワット発電中さん:2009/08/07(金) 12:56:00 ID:f+RTGjrf
もう盆休みだろ
628774ワット発電中さん:2009/08/07(金) 13:40:17 ID:UkQZDF77
629774ワット発電中さん:2009/08/08(土) 08:40:53 ID:hBabNgsB
>>626
>10:00出社で、19:00上がりだとすると、40分も仕事していないのかよ。

夏期休暇もそうだが、
コアタイムなんてまともな会社はなくなってることすら知らないって?
630774ワット発電中さん:2009/08/08(土) 08:46:44 ID:Ew/ZwT7r
重電業界なら
 大手3社 日立 東芝 三菱(重工+電機) / 中堅2社 富士電機 明電舎
って感じかな?
631774ワット発電中さん:2009/08/08(土) 09:07:13 ID:hBabNgsB
総合電機三社といえば、日立、東芝、三菱なんて、まともなサラリーマンなら誰でも知ってるでしょ。
旧電々ファミリのFNOHとかは関係者でもないかぎりあんまり有名じゃないけど。
632774ワット発電中さん:2009/08/08(土) 12:27:37 ID:Ew/ZwT7r
三菱電機は総合電機メーカーじゃない。原発とかつくってないだろ。
三菱グループの中でも地位が低いし、三菱重工の下請けってイメージだな
633774ワット発電中さん:2009/08/08(土) 12:42:21 ID:PMxojJOL
>>632
そういうことじゃないんだけどな、総合電機はTHMであってる。
総合電機という言い方に何の意味もないけど
634774ワット発電中さん:2009/08/08(土) 16:25:05 ID:zobu4dnw
総合電機ってGE、ジーメンスとかだろ
なんで、極東のちんけな会社の名が出るんだ
635774ワット発電中さん:2009/08/08(土) 21:07:22 ID:gfL7WVS6
総合電機知らなくていいからまともなコード書ける人が欲しい
636774ワット発電中さん:2009/08/08(土) 22:01:38 ID:hBabNgsB
>>632
>三菱電機は総合電機メーカーじゃない。原発とかつくってないだろ。

こいつ真性馬鹿だな。オマエアホすぎるから死んだらどうだ。
三菱は電機は重工と一緒に以前から原発やってるし、原発が好調だから携帯電話なんかさっさと切った。
総合電機はいずれも20年スパンで見通しのたつ原発が好調すぎて、経営の足をひっぱってばっかりの
半導体やら、ITやらの見通しの立たない事業からの撤退を検討してる。家電あたりも事実上チョンからのOEMでごまかすことにした。
しかも、電機が重工の子会社?電機 は重工より会社としては古いんだよアホが。
造船工業は電機が独立した後、航空機と合併して重工に改名してるんだから。
戦時中、大西洋で沈められたイ号のエンジニアはMitsubishi Electricの社員だ。三菱グループの中核が電機。
まったくものを知らんにもほどがあるな。アホ杉で笑える。失笑
っていうか電気関係者なら、総合電機、関西家電3社、旧電々ファミリ(日立重複)、NTT、電力各社の概要ぐらいは知ってるだろ。
同窓会開けば同級生はみんなここらの社員だろうし。なんでそんなにアホなん?情弱ってのはこういうやつのことだろな。
637774ワット発電中さん:2009/08/08(土) 22:03:18 ID:UJX2okJg
独り言おじちゃんがいるスレはここですか?
638774ワット発電中さん:2009/08/08(土) 22:05:31 ID:hBabNgsB
>>632

>総合電機、関西家電3社、旧電々ファミリ(日立重複)、NTT、電力

まさか、専門卒とかしょぼすぎる大学出身で、まともな大学なら、学校推薦でサンダル履きでも採用されるここらの会社に
入社できなかったとかじゃねーよな。まさかな。
639774ワット発電中さん:2009/08/08(土) 22:27:53 ID:tzRFLHsy
>>636、638
おいおい、そんな古の昔繁栄したの古代企業の話を自慢げにするって
失笑ものだぞ、おじちゃん
640774ワット発電中さん:2009/08/09(日) 00:36:49 ID:1vQEhwfx
>>639
古の昔?アホかおまえは。この程度の教育しか受けてねえんだなオマエ。
しかも古代企業?電気系でまともな大学出ればおおよそ、ここらへんの会社に就職するのはイマも昔もかわらないんだ戯けが。
毎年送付されてくる卒業生便りは今も昔も就職先なんて大差あるかい。
学校とはいえないよっぽどの糞学校出身だなオマエは。
641774ワット発電中さん:2009/08/09(日) 00:57:40 ID:vT6eLEHq
>>638
>半導体やら、ITやらの見通しの立たない事業からの撤退を検討してる。
>家電あたりも事実上チョンからのOEMでごまかすことにした。
低脳雇うと将来が無いと言うことだな

>同窓会開けば同級生はみんなここらの社員だろうし
これが今の現状を生んでいる原因だな
642774ワット発電中さん:2009/08/09(日) 07:40:03 ID:UoEBvdGl
立派な大学出て、立派な会社に就職した人はこんな人です。>>640>>636
643774ワット発電中さん:2009/08/09(日) 07:51:03 ID:UkkFg7Q7
身銭切って大学行っている訳では無いのだから、当たり前だろ?
644774ワット発電中さん:2009/08/09(日) 08:08:01 ID:q3Cy1/Fs
>>632 投稿日: 2009/08/08(土) 12:27:37 ID:Ew/ZwT7r
>三菱電機は総合電機メーカーじゃない。原発とかつくってないだろ。
>三菱グループの中でも地位が低いし、三菱重工の下請けってイメージだな


>>634 名前: 774ワット発電中さん [sage] 投稿日: 2009/08/08(土) 16:25:05 ID:zobu4dnw
>総合電機ってGE、ジーメンスとかだろ
>なんで、極東のちんけな会社の名が出るんだ


>>639 名前: 774ワット発電中さん [sage] 投稿日: 2009/08/08(土) 22:27:53 ID:tzRFLHsy
>>636、638
>おいおい、そんな古の昔繁栄したの古代企業の話を自慢げにするって
>失笑ものだぞ、おじちゃん



およそ、電電板に出入りしてる奴の知識じゃないわな。おそらく

ID:Ew/ZwT7r、 ID:zobu4dnw、 ID:tzRFLHsy

は同一人物、このスレに2人も3人も居るはずがない。

社会常識のかけらもないアホ露呈して何してんの
645774ワット発電中さん:2009/08/09(日) 08:16:44 ID:2bOuCdCO
>>639
>おいおい、そんな古の昔繁栄したの古代企業の話を自慢げにするって

笑えるっ!
じゃ、社員であることが自慢できる繁栄してる現代企業ってどこだい。電気に限定して挙げてみろ。
646774ワット発電中さん:2009/08/09(日) 08:51:45 ID:s3xI0QxK
サムスンとかノキアとか?
647774ワット発電中さん:2009/08/09(日) 09:28:53 ID:2bOuCdCO
つ 自慢

ロシアの下僕だったフィン人が崇拝する日本、チョンは略
648774ワット発電中さん:2009/08/09(日) 12:03:00 ID:yYDzZot0
>>645
日本にあるわけないだろ
この不況下でもしっかり黒字出せないようじゃ、繁栄してるっていえないよな
649774ワット発電中さん:2009/08/09(日) 12:07:06 ID:UkkFg7Q7
黒字というのが何基準の黒字なのやら。
650774ワット発電中さん:2009/08/09(日) 12:15:13 ID:at4tLtHn
>>645
>繁栄してる現代
一瞬ヒュンデの事かと思った。
651774ワット発電中さん:2009/08/09(日) 13:07:48 ID:rQ3YvX2M
夏休みってすごいな
こんな過疎スレにまで・・・

VHDL使いだったのだけど、Verilogの部署の方に配置転換がありそう
そっちの部署では、もうVHDLはダメだとか言っている
VHDL→C系 みたいな夢は持っちゃダメかな
出来ればVerilog飛ばしたいんだけど・・・
652774ワット発電中さん:2009/08/09(日) 14:05:47 ID:RqLobQL+
VHDLもVerilogも文法ほとんど同じだよ。
Verilog打ってるときにVHDLが出てきて困ったりするけど。

C系って使いやすいのかな?
構造体へのポインタとか軽くコンパイルしてくれないと魅力無いよね。
653774ワット発電中さん:2009/08/09(日) 14:40:18 ID:H9Aa2PYv
> VHDL使いだったのだけど、Verilogの部署の方に配置転換がありそう
> 出来ればVerilog飛ばしたいんだけど・・・
この世界、向いてないと思うよ。
654774ワット発電中さん:2009/08/09(日) 14:42:37 ID:UoEBvdGl
VerilogとVHDLでそんなに違いがあるとは思えない。
655774ワット発電中さん:2009/08/09(日) 15:30:16 ID:NLDEAXIk
[Verilog]: 記述が柔軟(ある意味いい加減)、モジュールが多数あってもサクサク結線
[VHDL]: 記述が厳密(頭固い堅物)、attribute、generateが便利、vhdl-mode.elが無いとtype量多くて面倒

私は書く人によって記述がぶれにくいVHDLの方が好きだな。
656774ワット発電中さん:2009/08/09(日) 16:09:19 ID:yYDzZot0
>>651
夢はおいといて、その部署に行ったらVerilog使うんだろ、
なら、Verilogも覚えるだな。
>>651は将来メジャーになる(と思う)C系の勉強を今気合を入れてしてるのに、
いまさらVerilogの勉強しなければならないのか、はぁ、って感じ?

>>655 
SystemCはもっともっと好きになるんじゃない。C++サイコーって感じ
でも、俺、SystemCもC++も知らないけどね
657774ワット発電中さん:2009/08/09(日) 17:14:42 ID:NeSHsjw7
System Verilogも忘れないでください(´Д`;)
658774ワット発電中さん:2009/08/09(日) 17:23:18 ID:UkkFg7Q7
初心者なんだけど、Verilogって面白いと思うんだけどなあ・・・。
659774ワット発電中さん:2009/08/09(日) 18:42:49 ID:D/KOdexK
うん、おもしろいと思うよ。
どこかの言語のように、おまじないみたいな3行はいらないので、
文字タイプが少なくて済む。
簡潔でわかりやすいしね。
660774ワット発電中さん:2009/08/09(日) 20:09:43 ID:t62COu3Y
VHDLをマスターしてるならVerilogなんて3日あれば
マスターできるだろ

661774ワット発電中さん:2009/08/09(日) 20:47:48 ID:Ke/j35+N
マスターとかそういう問題じゃなくてさぁ、あのいい加減さが性に合わない。
勿論Cもダメなヴィルトのシンパ。
662774ワット発電中さん:2009/08/10(月) 02:20:44 ID:97hQ3g/h
規則だらけで窮屈なよりいいと思う。
柔軟性があると考えるべき。
663774ワット発電中さん:2009/08/10(月) 03:22:57 ID:vnNRgMMp
> エルピーダ1位、EFA高い企業

もうダメボ
664774ワット発電中さん:2009/08/10(月) 11:08:03 ID:CpknEZuo
>>619
頭の中でカチっとつながりました。すごく助かります。
ありがたし。
665774ワット発電中さん:2009/08/13(木) 17:20:01 ID:3J8s8/yb
そんな!
間違った配線でつなげられても
666774ワット発電中さん:2009/08/13(木) 22:57:34 ID:rdWpmmS1
ええぇ…
667774ワット発電中さん:2009/08/14(金) 02:35:44 ID:r4rnb6Su
60進カウンタとかの早送りカウントアップがしたくて。

@長押し判定カウンタを用意(1.5秒くらいかな)
A長押し処理用カウンタを用意(0.2秒で+1かな)

「順序回路で」
スイッチ開で@<=0、A<=0(正論理)
スイッチ閉で@をカウントアップ、MAX(1.5秒〜)になったら閉の間MAX維持。
@がMAXの間Aをカウントアップ。MAX(0.2秒)の次は0代入。

「組み合わせ回路で」
ワンショットパルスか、AがMAXのたびにOUT<=1する。めでたし。

619はこんなことだと解釈したんですけど。
課題的にメタステーブル対策のモジュール(といってもFF2個)とチャタリング防止のモジュールを別個に分けることになってまして。
カウントアップに割り当ててるスイッチも状態遷移に使われてるので余計なところで長押しするとクルクル回りますが・・・。
チャタ防止モジュールからワンショット作成モジュールと長押しモジュールへ並列に分割すれば回避できそうですけど(めんどう)

とりあえず紙にブロック図書いてみます。問題無いようならISEで。
どうもありがとうー。
668774ワット発電中さん:2009/08/14(金) 17:02:06 ID:R2JEu5ht
assign out1 = |in;
assign out2 = ∈
(in[7:0] out1とout2は1ビット)
この式いったいどんな回路になってるのでしょうか?
シミュレーションしてみたのですが創造できません。
669774ワット発電中さん:2009/08/14(金) 17:17:12 ID:u0pFVImE
シミュレーションすれば分かりそうなもんだけど。

|in &in
00 → 0 0
01 → 1 0
02 → 1 0
:
FE → 1 0
FF → 1 1

だったろ
670774ワット発電中さん:2009/08/14(金) 21:41:22 ID:SSgG9S2I
>>668
リダクション演算
671774ワット発電中さん:2009/08/15(土) 01:02:23 ID:8diXJBJL
>>669,670
おおそういうことかサンキュ=
672774ワット発電中さん:2009/08/15(土) 23:21:43 ID:a4BcoPDd
何が間違っているのかわからないので教えてください

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;

entity counter is
Port ( CLK:in STD_LOGIC;
RST:in STD_LOGIC;
Q :out STD_LOGIC_VECTOR (7 downto 0));

end counter

architecture structual of counter is
signal WORK :STD_LOGIC_VECTOR (7 downto 0);

process (CLK)

begin
if CLK'event and CLK='1' then

if RST = '0' then --reset
WORK <= "00000000";

elsif(WORK = "11111110" then
WORK <= "00000000";

else
WORK <= WORK + '1';

end if;

end if;

end process;

Q <= WORK;

end counter;
673672:2009/08/15(土) 23:23:05 ID:a4BcoPDd
以下のようなエラーが出てしまいました・・・
ご指導よろしくお願いします
test.vhd(14): ERROR: syntax error near architecture
test.vhd(17): ERROR: syntax error near process
test.vhd(39): ERROR: unit counter ignored due to previous errors
674774ワット発電中さん:2009/08/16(日) 00:22:03 ID:wB8OEuG+
>>673
なんか、VHDLの入門書を読んでから出直して来い…って感じだが。

まずは";"を付けてこいってところか。
それだけじゃ、次のエラーが出て直らないだろうけど。
675774ワット発電中さん:2009/08/16(日) 00:25:57 ID:MNksc7OS
>>674
入門書みながらやってるんだけど
どこが間違っているのかよくわからない・・・・
676774ワット発電中さん:2009/08/16(日) 01:05:57 ID:lU5+CRaj
>>672
>elsif(WORK = "11111110" then
右括弧が抜けてる

677774ワット発電中さん:2009/08/16(日) 01:10:14 ID:htMLlIgQ
signal宣言の後にbeginが無い
678774ワット発電中さん:2009/08/16(日) 01:47:02 ID:2azbefFE
高校レベルの数学が分からずに量子力学にちょうせんする位に無駄だと思うぞ。
679774ワット発電中さん:2009/08/16(日) 02:57:37 ID:wB8OEuG+
>>672
余りにもアレなんで、でっかい釣り針が見えている気もするが、暇だったので添削。
とりあえず、シンタックスエラーが出ないとこまで。細かいとこまで見てないんで
検証掛けると問題でるかもしれんが、後は自力でやれ。
とりあえず、何で自分が書いたのが間違ってたのか理解できるまで戻ってくんな。
-----
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity counter is
Port ( CLK:in STD_LOGIC;
RST:in STD_LOGIC;
Q :out STD_LOGIC_VECTOR (7 downto 0));

end counter;

architecture structual of counter is
signal WORK :STD_LOGIC_VECTOR (7 downto 0);

begin
process (CLK,RST,WORK)

begin
if CLK'event and CLK='1' then

if RST = '0' then --reset
WORK <= "00000000";

elsif(WORK = "11111110") then
WORK <= "00000000";

else
WORK <= WORK + "00000001";

end if;

end if;

end process;

Q <= WORK;

end structual;
680774ワット発電中さん:2009/08/16(日) 20:15:55 ID:jx33lZBB
どっかにうpれよ池沼
681619:2009/08/17(月) 17:27:31 ID:JYjIYqR0
>>667
流れをぶっちぎりたくて長いのを書いてみたり・・・

しかしメタステーブルとチャタリングってちがうんすね。
ぐぐるまで同じだと・・・

FPGAだと思うけど
メタステーブルってそんなに意識しないといけないの?
682774ワット発電中さん:2009/08/17(月) 18:56:54 ID:vfN4XZ/C
FFはすべて可能性はあるんじゃね? 7474とかも。
683774ワット発電中さん:2009/08/17(月) 19:25:01 ID:ayol5EQC
>>681
非同期の場合はね
684774ワット発電中さん:2009/08/17(月) 19:51:32 ID:OsrVBGw4
>>681
単一クロックなら、意識しなくていい。
685774ワット発電中さん:2009/08/17(月) 21:13:57 ID:oVaW3r6a
>>682
4WDはダメか?
ランエボは?
686774ワット発電中さん:2009/08/18(火) 00:39:13 ID:VPyhane3
>>681
単一クロックでも、入出力は気をつけて制約をかけないとダメ。
687619:2009/08/18(火) 15:13:43 ID:lG1rZicP
うーん、チャタリングぐらいしか入れてなかったなぁ
(いれりゃFF介するけど)

そろそろROMろう。

>>685
まず下り(sage)を攻め続けないと
688774ワット発電中さん:2009/08/21(金) 11:13:07 ID:Rmd31gWK
ふと思った

スレが10とかになったら
ProjectAとかになる?
689774ワット発電中さん:2009/08/21(金) 15:07:22 ID:QXMsgDQU
>>681
レスとしては遅いけど、気がついたので・・・・。

ぶっちゃけクロックが数MHz程度だったら無視してもまず問題はでない。。
ところが100MHzくらいまで上がったら、メタステーブルを考慮した設計をしないとだめ。
データの取りこぼしやゴミが発生する。
690667:2009/08/22(土) 13:10:14 ID:HszQy+Wg
システムクロックが50MHzのFPGAです。課題としてやっていたので、メタステーブルは理論上の話だったんです。
講師「スイッチみたいに外部から非同期に入力があると、
   セットアップタイムやホールドタイムを守りようがないから
   次段のFFがほぼ不可避にメタステーブル状態になるから対策しようね」と。

この場合チャタリング防止のシフトレジスタを介していれば必要ないけど、という話も聞いてあります。
24時間時計は単相同期なので非同期なのは入力スイッチだけです。
691774ワット発電中さん:2009/08/22(土) 13:25:50 ID:UwhMhl9z
>>690
ttp://www.miyazaki-gijutsu.com/series2/noise142.html#(5-C)
メタステーブルの対応って乱暴に言えば1回多くFFを通して同期化することだから
そのチャタリング防止用のシフトレジスタがその役目を果たしているなら
問題ないと思いますよ。
692667:2009/08/22(土) 13:29:34 ID:HszQy+Wg
メタステーブル状態って言葉が間違ってますね。ステーブル状態って何だ…。

FPGA始めたのが今年の6月からで、まだちょっとブロック図とかRTL記述とか怪しいです。
トップモジュールなんかのブロック図作成にはISEで書いたスケマティックを、RTL記述はVerilogで、シミュレータはModel Simです。
現在は24時間時計(24時間表示、時刻合わせ、目覚まし設定(アラーム)、キッチンタイマー、ストップウォッチ(ラップタイム付き))を、
ステートマシンの勉強のためにワンホット型で設計中です。

なんというかまだ上手いことステートマシンが掴めてないですが・・・。
693774ワット発電中さん:2009/08/22(土) 13:37:33 ID:UwhMhl9z
metastabe=準安定と言う意味で自分は理解しています。
694774ワット発電中さん:2009/08/22(土) 13:38:52 ID:o4/NZcRW
ステートマシンって一応本では勉強するが、実際作るときはコンパイラに任せっきりだなぁ
695774ワット発電中さん:2009/08/22(土) 14:24:31 ID:rvboKfow
ワンホットって何?
696667:2009/08/22(土) 14:25:18 ID:HszQy+Wg
ちょっと質問なんですが、ワンホット型を念頭に、

メインステートがスイッチ1を使って、
【⇒24時間表示⇒sw1=1⇒アラーム設定⇒sw1=1⇒キッチン⇒sw1=1⇒ストップ→sw1=1⇒時刻合わせ⇒sw1=1】
といったリング構造をしているとき、ステート選択モジュールを作り、
5個のステートなので、5ビット幅の出力を各モジュールへ選択ビットを分配しました。

ここでメインステート上からサブステートへ状態遷移する場合を考えます。スイッチ2を使って、
【→時刻合わせトップ→sw2=1→時設定→sw2=1→分設定→sw2=1】

これを実現するにあたって、

@メインステート選択はメイン用ステート選択モジュールを使い、サブステート選択は各モジュール内でcase分けする。
Aメイン・サブすべてについて、1つのステート選択モジュール内でcaseのネスト構造にする。

の2通り考えました。
@だとメイン1個+サブ5個のステート選択回路が出来、
Aだとあくまで1個のステート選択回路で実現します。
どちらでも実現できると思うんですが、どちらが一般的でしょうか。
697774ワット発電中さん:2009/08/22(土) 16:45:20 ID:CBBkK3yS
>>696
メインステートとかサブステートと、というものとか、

> 【⇒24時間表示⇒sw1=1⇒アラーム設定⇒
> sw1=1⇒キッチン⇒sw1=1⇒ストップ→sw1=1⇒
> 時刻合わせ⇒sw1=1】

のような、自分では理解しているのだろうけど、
一般的ではない表現方法なので、他人には意味不明すぎる。。

何をステートと定義しているのか、遷移条件、矢印の意味とかぐらい、
明確にわかるように書かないと。(簡潔に)

特に、メイン・サブって何を言ってるの?
698667:2009/08/22(土) 19:35:21 ID:HszQy+Wg
すません。
まず24時間表示の状態にあり、
sw1を1回押すとアラーム設定の状態に遷移するという意味です。
sw1を押す度に状態が遷移していき5回目で24時間表示に戻るリング状の構造です。
この5つの状態をとりあえずメインと呼んでいました。

ここで例えばアラーム設定の状態から、sw2押下をイベントとして、
さらに詳細の「時を設定する状態」⇒「分を設定する状態」〜にリング状に遷移しいずれトップに戻ります。

このメインと呼んだステートに対して、各々のステートの詳細の状態遷移をサブと呼びました。
699774ワット発電中さん:2009/08/22(土) 19:39:00 ID:o4/NZcRW
俺ならもともとメイン・サブなんて分け方はしなくて、2番の方法で記述するかな
700774ワット発電中さん:2009/08/23(日) 14:21:00 ID:S0YFvkfa
>>698
ステートっていう言葉の使い方間違ってる気がする。

が、ともかく、sw1とsw2に親子関係があるなら分ければいいけど、
そうではないなら、ひとつのステートマシンにすべきでしょう。
まとまってないなら状態遷移図描けば?
701667:2009/08/24(月) 01:15:47 ID:gvp9V3EH
どうもすいません。
なんというかシーケンサというのが自分にはまだ雲か幽霊でも掴むみたいな話だもんで。
とりあえず遷移図や仕様書を作っては頭捻ってみます。
ありがとうございます。
702774ワット発電中さん:2009/08/24(月) 18:19:43 ID:CXuGaZJP
ステートがいくら複雑だろうと
結局はレジスタ値を上げたり下げたりするだけなんだよね・・・
703774ワット発電中さん:2009/08/24(月) 19:47:20 ID:NfZ81hTJ
レジスタ値の上げ下げ?
704774ワット発電中さん:2009/08/24(月) 20:01:44 ID:JF9ncG4/
デジタル回路って電圧がH,Lしてるだけなんだぜ?
705774ワット発電中さん:2009/08/24(月) 20:16:37 ID:NfZ81hTJ
どんな複雑なプログラムの0と1の組み合わせなんだぜ。
っていう、あれのことか!
706774ワット発電中さん:2009/08/24(月) 20:24:56 ID:RWSNtvHg
いいから宿題済ませろよ。
707774ワット発電中さん:2009/09/01(火) 12:52:44 ID:1I/jtwYG
夏休みがおわったっぽいが
Verilogとかの宿題がある方々は9月いっぱい休みなんだっけ
708774ワット発電中さん:2009/09/01(火) 22:30:28 ID:TnwunAKf
>>162
http://spiral.net/hardware/filter.html
のフィルタの特性設定(サンプリング周波数、カットオフ周波数)って
どうやって決める、または、求めたら良いのでしょうか?
709774ワット発電中さん:2009/09/01(火) 22:38:01 ID:o8t2UOcB
自分で決める。
710774ワット発電中さん:2009/09/05(土) 15:00:33 ID:+Iut2iW/
教えてください。
verilogで、次のような記述をしたところ、思うような結果が得られません。
原因を考えたのですが、私には

reg [7:0] count;
reg    outA;

always @ ( negedge reset or posedge clock ) begin
  if( reset == 1'b0 ) begin
    count <= 0;
    outA <= 0;

  end else begin
    if( count < 100 ) begin
      outA <= 1'b1;
    end else if( count < 200 ) begin
      outA <= 1'b0;
    end else begin
      count <= 0;
    end
  end
  count <= count + 1;
end

outAの期待する動作は、
______(100clock)____|~~~~~~~(100clock)~~~~~~ の繰り返しです。

ところが動作結果は、
______(100clock)____|~~~~~~~~~~~~~~~~~~(155clock)~~~~~~~~~~~~~~~ の繰り返しになってしまいます。

予想では、
    end else if( count < 200 ) begin
      outA <= 1'b0;
    end else begin
      count <= 0;
    end
が記述してあるので、count = 199の次は、count = 0になり、頭から始まると思っています。

199の次のとき、count <= 0; と count <= count + 1; が同時に発生することがいけないのかと思い、

    if( count < 100 ) begin
      outA <= 1'b1;
    end else if( count < 200 ) begin
      outA <= 1'b0;
    end

    if( count < 200 ) begin
      count <= count + 1;
    end else begin
      count <= 0;
    end

のように変更したところ、ちゃんと動きました。

しかし、前者の書き方で、なぜあのように255まで行ってしまうのか、わかりません。

宜しく教えてください。
711774ワット発電中さん:2009/09/05(土) 15:06:50 ID:+Iut2iW/
補足です。
レジスタの代入が重複しているときの動作は「不定」。
だからお前の期待通りにならなくてもいいだろ! という感じがしてきました。

このように、レジスタの代入が重複しているときに
「オッサン! レジスタの代入が重複してまっせ。 結果はどうなるかわからんで。ええんかいな?」という
Warningメッセージは出ないものでしょうか? 初心者の私には 助かるのですが。
712774ワット発電中さん:2009/09/05(土) 15:56:00 ID:1SRGECzl
>>711
ハンバーガーショップ♪もたいな
関西弁のウォーニングメッセージは、出んぞ。
713774ワット発電中さん:2009/09/05(土) 15:56:47 ID:1SRGECzl
訂正
×ハンバーガーショップ♪もたいな
○ハンバーガーショップ♪みたいな
714774ワット発電中さん:2009/09/05(土) 16:50:25 ID:f4SDgnax
ifネストの中のこの行  と、
      count <= 0;
並列記載のこの行
  count <= count + 1;

これが平行評価(解釈)されたとき、
最終記述行になってる  count <= count + 1; が優先されるんじゃねーのかな。
715774ワット発電中さん:2009/09/05(土) 16:56:10 ID:f4SDgnax
あと、このカウンタロジックだと0〜200までのカウントになるから、
outAのデューティがおかしくありませんか?
716774ワット発電中さん:2009/09/05(土) 19:01:35 ID:fHV3FtKQ
>>710
verlogを使う人がよくやるミス。
VHDLで経験をつむと起こさない。

  end else begin
    if( count < 100 ) begin
      outA <= 1'b0;
    end else if( count < 200 ) begin
      outA <= 1'b1;
    end else begin
      count <= 0;
      outA <= 1'b0;
    end
  end

カウンターの初期化の時に、出力の初期化を行っていないのが問題。
VHDLだと変更点と出力変化はすべて記述するのがデフォルトになっているから手抜きになれたverlog使いがやる簡単なミス。

面倒だけど、信号やカウンターの切り替え時にはすべての信号を記述するVDHLだとミスを犯さないか、すぐにわかるよ。
717774ワット発電中さん:2009/09/05(土) 20:20:05 ID:KJKQMUGc
そもそも初心者というか慣れてない人はalways文は分けた方が良いと思うけどな。
718774ワット発電中さん:2009/09/05(土) 20:59:12 ID:BIYb57gY
>>717
というか、わけるのは必須だよ。
719774ワット発電中さん:2009/09/05(土) 22:24:39 ID:1SRGECzl
alwaysを分けるってどういうこと?
720774ワット発電中さん:2009/09/05(土) 22:33:37 ID:KJKQMUGc
>>719
上記の場合countとoutAは別のalwaysで記述するということ。

あとoutAをどう使うかによりけりだけど、俺ならoutAはFFにしないなぁ
721774ワット発電中さん:2009/09/05(土) 22:52:25 ID:fVCaB3XU
>>716
今回の問題に関しては関係ないね。
VHDL使いはverilog使いを上から目線で馬鹿にして、
結果だれからも相手にされなくなる典型的な人にみえる。
直したほうがいいよ。
>>719
一個のalways(process)ブロックでは
一個のレジスタ出力だけを記述するようにすること。
合成語の回路のイメージがしやすい利点があるかな。
ステートマシーンではわざとやらないこともある。
722710:2009/09/05(土) 23:49:37 ID:Vgn1wRAq
まとめるとこんな感じですか?
// 0 - 199 counter, count
always @ ( negedge resetn or posedge clock ) begin
    if( resetn == 1'b0 )
        count <= 0;
    else if(count < 199 )
        count <= count + 1;
    else
        count <= 0;
end

// outA
/******************************************
always @( negedge resetn or posedge clock ) begin
    if( resetn == 1'b0 )
        outA <= 1'b0;
    else if ( count < 99 )
        outA <= 1'b0;
    else if( count < 199 )
        outA <= 1'b1;
    else // count >= 199
        outA <= 1'b0;
end

******************************************/
always @( count ) begin
    if ( count <= 99 )
        outA = 1'b0;
    else if( count <= 199 )
        outA = 1'b1;
    else // count >= 200
        outA = 1'b0;
end
723774ワット発電中さん:2009/09/06(日) 00:19:49 ID:viKeu25u
おいおい、君は>>710じゃないだろ。
724774ワット発電中さん:2009/09/06(日) 00:27:46 ID:24WPmnIa
8時間たってIP変わったんじゃね?
俺はモデムが熱暴走で落ちてIP変わるけどw
725774ワット発電中さん:2009/09/06(日) 06:32:43 ID:zWfIbWwR
>>710
always @ ( negedge reset or posedge clock ) begin
  if( reset == 1'b0 ) begin
    count <= 0;
    outA <= 0;

  end else begin
    if( count < 100 ) begin
      outA <= 1'b1;
    end else if( count < 200 ) begin
      outA <= 1'b0;
    end else begin
      count <= -1;
    end
  end
  count <= count + 1;
end
726774ワット発電中さん:2009/09/06(日) 14:30:48 ID:jNmW5bQV
もう#遅延使えよ
727774ワット発電中さん:2009/09/06(日) 17:39:12 ID:3Xt1owXk
合成されるんだっけ?
728774ワット発電中さん:2009/09/06(日) 21:47:42 ID:Tv4V2Vrb
遅延素子が入ってないFPGAで
遅延したいけど手作業は嫌だからといって
実装した奴がいる。
729774ワット発電中さん:2009/09/06(日) 22:17:44 ID:NuCdCiQA
always @ ( negedge resetn or posedge clock ) begin
    if( resetn == 1'b0 )
        count <= 0;
    else
    if( count == 199 ) count <= 0;
    else count <= count + 1;
end

assign outA = (count < 100) ? 0 : 1;
730774ワット発電中さん:2009/09/06(日) 22:26:05 ID:5axjcEdb
まーなんというかoutAには髭が出てもOKならば組み合わせ出力でよいが。
当人はどうなの?
731774ワット発電中さん:2009/09/06(日) 22:41:30 ID:YWBSkvV4
>>730
outAは内部クロックと妄想
732>>730:2009/09/06(日) 22:49:45 ID:dm+psbrN
>>731
ん?当人以外かな?
>内部クロック
という呼び方の確認だけど、いわゆるDFFクロッキング利用でなくて、
イネーブル扱い的なクロック(タイミング同期信号とか)ですね。
ならば理解。
733774ワット発電中さん:2009/09/06(日) 22:53:46 ID:NuCdCiQA
>>731
assign clk200 = outA

always @ posedge clk200
beign


で死亡確定
734774ワット発電中さん:2009/09/07(月) 04:13:31 ID:QFZP2M9b
内部信号ならハザードフリーでGo。
735>>730:2009/09/07(月) 09:38:26 ID:Ei34A0JS
>>733
そんな恐ろしいことをwwwwwやめてwwwww
736774ワット発電中さん:2009/09/07(月) 14:28:16 ID:6RHFBnkX
なんで恐ろしいの?
737774ワット発電中さん:2009/09/07(月) 16:55:00 ID:sEjDQI1F
>>710

ずばり言うと、count<= count + 1; を最初にもってこい


always @ ( negedge reset or posedge clock ) begin
  if( reset == 1'b0 ) begin
    count <= 0;
    outA <= 0;

  end else begin

  count <= count + 1;

    if( count < 100 ) begin
      outA <= 1'b1;
    end else if( count < 200 ) begin
      outA <= 1'b0;
    end else begin
      count <= 0;
    end
  end
end
738774ワット発電中さん:2009/09/07(月) 20:43:32 ID:yhzuezNF
>>729だけが正解
739774ワット発電中さん:2009/09/07(月) 20:53:36 ID:dtphz0xt
>>738
>>729だと出力が同期化されていないぞ。
740774ワット発電中さん:2009/09/07(月) 21:24:09 ID:yhzuezNF
>>739
ha?
741774ワット発電中さん:2009/09/07(月) 21:53:04 ID:7e8gq9ye
always @ ( negedge resetn or posedge clock ) begin
    if( resetn == 1'b0 )
        count <= 0;
    else
    if( count == 199 ) count <= 0;
    else count <= count + 1;
end

assign outA = (count < 100) ? 0 : 1;
742774ワット発電中さん:2009/09/07(月) 21:55:18 ID:8XIC1uKg
>>736
>>730で言われてるようにclk200の出力はヒゲがでるんだよね、そんな信号をクロックに使うとどうなるか想像してみてくれ
ここらがプログラムなどの論理だけで動いてる物の違いだと思う、あくまでもハードウェアなんだよね。
他の方が書かれてるように、同期信号として使えば何ら問題は無いけど
ある意味引っかけとして>>729を書いた
743774ワット発電中さん:2009/09/07(月) 22:15:07 ID:yhzuezNF
>>742
countが変化する時に髭が出るってこと?
outAをクロックで使う場合はたたけばおK?
744774ワット発電中さん:2009/09/07(月) 22:49:28 ID:8XIC1uKg
>>743
おk
けどそのままだと1cycleずれる
745774ワット発電中さん:2009/09/08(火) 01:27:29 ID:Kv7ec40s
じゃあおれも

always @ (posedge clock or negedge reset) begin
if(!reset) begin
count <= 8'd0;
outA <= 1'b0;
end
else begin
if(count < 8'd100) begin
count <= count + 8'd1;
end
else begin
count <= 8'd0;
outA <= ~outA;
end
end
end
746774ワット発電中さん:2009/09/08(火) 01:47:05 ID:aEWKIsoG
半角スペース使っても無駄だってことわかって。
747774ワット発電中さん:2009/09/08(火) 02:05:07 ID:urc8vfWb
っ &nbsp;
748774ワット発電中さん:2009/09/08(火) 02:59:51 ID:cgqYoIHa
wire b;
wire [15:0] c;
wire a = b & ( c[15:0] != 16'd0);

wire a = b && c[15:0];
って書いたら怒られたんだけどこれ駄目?
749774ワット発電中さん:2009/09/08(火) 07:32:07 ID:yxSanGOp
文法的には、wire a = b & (&c[15:0]); で合ってるけど
コンテクストは wire a = b & (| c[15:0]); じゃまいか?
750774ワット発電中さん:2009/09/08(火) 10:36:02 ID:8xojPcjp
コンテクストって何?
コンテクストメニューとか 良く聞くけど。
751774ワット発電中さん:2009/09/08(火) 10:45:06 ID:gqLHaeQ/
context 文脈。
コンテクスト(コンテキスト)が何を指してるからコンテキストに依存する。
752774ワット発電中さん:2009/09/08(火) 10:46:25 ID:gqLHaeQ/
指してるから→指してるかは
753748:2009/09/09(水) 02:58:42 ID:dyAxCs0U
演算子&&を!=0の代わりに使ってしまうのは問題?

>>749
そういう書き方もあるんですね。
754774ワット発電中さん:2009/09/09(水) 12:02:54 ID:SpR4CtDa
>>753
動作はするんじゃないかな?

そもそも、誰に怒られたの?
その人に理由を聞いてみたら?
755sage:2009/09/09(水) 13:06:50 ID:3jrW4rH9
module CLK_GEN(
  CLK,
  RST_X,
  GCLK
)

input CLK;
input RESET_X;
output GCLK;

reg GCLK;
reg [15:0] g_cnt;

wire g_cnt_clr_flg;
wire g_pos_flg;
wire g_neg_flg;

parameter P_gen_clk = 200;

parameter P_gen_pos_clk = (P_gen_clk / 2);
parameter P_gen_neg_clk = P_gen_clk - P_gen_pos_clk;

always @(posedge CLK or negedge RST_X)
  begin
    if(!RST_X)
      g_cnt <= 16'd0;
    else if(g_cnt_clr_flg)
      g_cnt <= 16'd0;
    else
      g_cnt <= g_cnt + 16'd1;
  end

always @(posedge CLK or negedge RST_X)
  begin
    if(!RST_X)
      GCLK <= 1'b0;
    else if(g_cnt_clk_flg)
      GCLK <= !GCLK;
    else
      GCLK <= GCLK;
  end

assign g_pos_flg = !GCLK & (g_cnt == P_gen_pos_clk);
assign g_neg_flg = GCLK & (g_cnt == P_gen_neg_clk);
assign g_cnt_clr_flg = g_pos_flg | g_neg_flg;

endmodule

コメント書こうかと思ったけどやめましたOTL

&nbsp;なんていう便利なものがあったんだ・・・
そっちのほうがうれしい・・
756774ワット発電中さん:2009/09/09(水) 13:08:29 ID:3jrW4rH9
ごみん、ageちゃった
757774ワット発電中さん:2009/09/10(木) 01:42:04 ID:pOOdV9C1
>wire a = b & ( c[15:0] != 16'd0);
>を
>wire a = b && c[15:0];
動作違うじゃん。
758774ワット発電中さん:2009/09/12(土) 02:33:08 ID:YjQnLjAk
拾い物。どうなるの?

【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel 11
http://science6.2ch.net/test/read.cgi/denki/1246360585/822

822 名前:774ワット発電中さん[sage] 投稿日:2009/09/10(木) 23:49:20 ID:cDeXdPUB
ISEにおいて以下の状態でselが1であった場合、aの値はどうなりますか?

always @( posedge clk ) begin
  a <= 1'b0;
  if ( sel == 1 ) begin
    a <= 1'b1;
  end
end
759774ワット発電中さん:2009/09/12(土) 09:40:28 ID:ASjGcJNW
http://www.nikkei.co.jp/news/main/20090912AT1D1105311092009.html

富士通マイクロ、中国で半導体設計拡大 現地開発7割に

現地設計か。中華汚染企業決定だな。富士通マイクロなんかどーでもいいけど。
今後はLSIからの出火も懸念しなきゃな。
760774ワット発電中さん:2009/09/12(土) 09:55:41 ID:U6wfBfyK
>>758
ノンブロッキング代入だから不定になって終わりじゃないの?
何がやりたいのか知らないけど
761774ワット発電中さん:2009/09/12(土) 13:27:41 ID:mCSkaFq7
>>758
always @( posedge clk ) begin  // clkの立ち上がり毎に
  a <= 1'b0;          // a出力=1になる
  if ( sel == 1 ) begin    // 次に、もしsel入力が1なら
    a <= 1'b1;        // a出力=0になる
  end
end
ということで、別に間違っていないのでは?

a=0の後、次のifでa=1になり、次のclockでスグにa=0になるので、
ヒゲがでるかもしれないけど、フィルター通せば良いと思う。
762774ワット発電中さん:2009/09/12(土) 13:32:02 ID:dz4thIQD
>>761
おまえ、ソフトしか書いたことないだろ?
763774ワット発電中さん:2009/09/12(土) 13:46:13 ID:2NgZpFdW
>>761
ノンブロッキング代入という記述になっているので、
aには0と1が同時に代入されることになります。

ブロッキング代入を用いて、
always @( posedge clk ) begin  // clkの立ち上がり毎に
  a = 1'b0;          // a出力=1になる
  if ( sel == 1 ) begin    // 次に、もしsel入力が1なら
    a = 1'b1;        // a出力=0になる
  end
end
とすれば、aに0が代入された後、
selが1なら次のifでaに1が代入されることになるでしょう。
764774ワット発電中さん:2009/09/12(土) 14:06:28 ID:mCSkaFq7
>>762
Verilogもソフトじゃないですか。
僕はCと、Verilogを使っています。
765774ワット発電中さん:2009/09/12(土) 14:06:57 ID:XVt7EiBq
コメントが逆なのはわざとなのか?
766774ワット発電中さん:2009/09/12(土) 14:12:40 ID:AqpaV+rn
FPGAスレの差別発言者といい、
なんだか香ばしいのが沸いてるなあw

雨の日はみんなマッタリ2chだよね、
オイラもみんなの農園やりながらだけどw
767774ワット発電中さん:2009/09/12(土) 14:24:16 ID:ReUTQM4b
>>766
よう、基地外!
>FPGAスレの差別発言者といい、
>なんだか香ばしいのが沸いてるなあw
2chは日本人特有の精神疾患"基地外"を患ってる人専用の掲示板だから
まともなの居ないぞ
768774ワット発電中さん:2009/09/12(土) 14:24:34 ID:/1qcPPLj
>>764
always @( posedge clk ) begin
  if ( sel == 1 ) begin
    a <= 1'b1;
  end
  else begin
    a <= 1'b0 ;
  end
end



769>>766:2009/09/12(土) 14:45:00 ID:AqpaV+rn
>>767
ナカーマ(・∀・)人(・∀・)
770774ワット発電中さん:2009/09/12(土) 14:49:03 ID:U6wfBfyK
>>764
ブロッキング、ノンブロッキングを勉強した方が・・・
けど実際はブロッキング代入ってあんまり使わないような気がするな
771774ワット発電中さん:2009/09/12(土) 15:06:38 ID:/1qcPPLj
>>764
Verilogはソフトかもしれないけど、目的はHDLだから。誰が見てもわかる安全な記述でお願いします。
772774ワット発電中さん:2009/09/12(土) 15:40:57 ID:dz4thIQD
>>764
ぷぷぷ。

おまえの書いたverlogを回路図にしてみればわかるよ。ソフト屋。
773774ワット発電中さん:2009/09/12(土) 19:03:48 ID:w2cvOTnl
試しにコンパイルしてみた。QII。
ブロッキング・ノンブロッキング、どっちも同じ回路になったよ。selがD、aがQにつながったDFFが一つ。

process (clk)
begin
if (clk'event and clk = '1') then
a <= '0';
if (sel = '1') then
a <= '1';
end if;
end if;
end process;

これも通った。

でも気持ち悪い〜自分はこの書き方はしないなぁ。
するときはvariable使う。
774774ワット発電中さん:2009/09/12(土) 19:04:36 ID:w2cvOTnl
おっと、tabのままだった。
775774ワット発電中さん:2009/09/12(土) 19:15:47 ID:bqOW8bIb
>>773  Q2確認GJ(*^ー^)b
776774ワット発電中さん:2009/09/12(土) 19:25:17 ID:rvWAVkuc
なあ、Lintチェックって知ってるか?
777774ワット発電中さん:2009/09/12(土) 19:32:40 ID:U6wfBfyK
>>773
GJ
こんな記述も通ってしまうんですね、俺こそ勉強不足でした
けどさすがVerilogというかなんというか・・・
778774ワット発電中さん:2009/09/12(土) 19:43:12 ID:ReUTQM4b
>>777
いや、それVHDL
779774ワット発電中さん:2009/09/12(土) 19:48:31 ID:bqOW8bIb
>>776
まあASICフローじゃはねられるよね

ATRENTA SpyGlass
Synopsys LEDA

あたり使ってるのかな。
まあFPGAは後から直せるから暢気なんだろう。
そういう自分もFPGA屋だが。
780774ワット発電中さん:2009/09/12(土) 19:55:23 ID:26e/mFkQ
>>773
prcess内で、同じ先に出力した場合、最後に出力したものが有効になるのは、
VHDLでは仕様になってたんじゃないかな。
条件外の時の値を冒頭に書いておいて、その後で条件分けすれば、複数のelseに
またがる場合に、書き落とすことがなくなる。
Verilogは知らない。
781774ワット発電中さん:2009/09/12(土) 20:06:38 ID:w5h+fMRs
>>773
その書き方OpenCoresなんかでよく見るんだが・・・
俺も普通の書き方だと思って多用してた
else使うより見た目スマートにかけることも多いし

まあ俺の場合趣味でしかHDL使わないから正しくなくてもいいのかもしれないけどな
782774ワット発電中さん:2009/09/12(土) 20:09:22 ID:d9MSHl0D
>Verilogもソフトじゃないですか。
htmlもプログラム言語だと言いはってたやつを思い出した。
783774ワット発電中さん:2009/09/12(土) 20:17:03 ID:U6wfBfyK
>>778
( ゚д゚)
784774ワット発電中さん:2009/09/12(土) 20:55:46 ID:w2cvOTnl
>>781
process (clk)
 variable tmp : std_logic;
begin
 if (clk'event and clk = '1') then
  tmp := '0';
  if (sel = '1') then
   tmp := '1';
  end if;
  a <= tmp;
 end if;
end process;

やるときはこういう書き方にする。
でも、これも問題あって、a <= tmp;をif (clk'event...の下に持って行くと
挙動変わっちゃう(記述の順番で動作が変わる)ので、注意しながら使ってる。
非同期入力の同期化とかでは意図的に順番変えたりも。

ということで、一つの値を変化させるのは、一つのif〜elsif〜end if;だけにする、
とかルール付けてます。HDLはまだまだ学習中。
785774ワット発電中さん:2009/09/12(土) 22:42:53 ID:cf7XPx6d
ソフト屋っていうより学生が多いんだと思う。

コンパイルが通る、またはシミュレーションが動く = 実用可能なRTL

ではないので注意が必要。
このあたりがソフトと違う所なので勉強がんばれ。
786774ワット発電中さん:2009/09/12(土) 23:05:59 ID:q2wUcAJK
正直言えば、質の悪いHW屋がどんどん増えてくれるのも
いいと思う。
結果的にベテラン勢の企業に仕事が回るから。
ソフト屋がハード設計できるようになります!と愚民化
政策をEDAベンダがやってくれたおかげで、業種差別化
が加速化されていて、かなりウハウハ。
787774ワット発電中さん:2009/09/12(土) 23:54:15 ID:YjQnLjAk
>>785
どうにかしてくれよ。稀にハングするFPGAを。。。
納期には絶対無理、たまたま動く版を提出して終わりにしたい

>>786
一番安いとこに出して、デスマーチが増えるだけだと思うよ
788774ワット発電中さん:2009/09/13(日) 00:28:13 ID:18T3I+qD
>>786ウハウハ  →実際今現在ウハウハですか? いいなあ。

>>787デスマ   
あはは 笑えないねえ(苦笑)
そういう話は最近伝え聞くよ。
正直関わりあいたくないよね。
たださ、そのせいでFPGA(ASIC)=ハードは駄目だ
やっぱりプロセッサかDSPだな、とか向きが行くとヤダよね。
             
789774ワット発電中さん:2009/09/13(日) 00:34:14 ID:+/qcfkTa
>>781をみると、>>758がジョークネタとして笑いをとれる環境なら幸せなんだろな。

これを見るまでこんな書き方が出来るとは思いもしなかった人と、
あくまでネタとして書いてみせる人がいるような環境。

>>761>>763>>764は分かってて書いてるだろw
790774ワット発電中さん:2009/09/13(日) 01:50:21 ID:uxS8+CAz
>>789
してはいけない記述だが、仕様の理解度を試すには良いネタじゃね
(>>758はそんな感じで転載したんじゃね)
結果がどうなるか答えられないようじゃ、まだ、お前言語仕様よく分ってなよと
791774ワット発電中さん:2009/09/13(日) 02:03:44 ID:2hhG5h+O
>>790
sel==1の時はaは不定(ツール依存)
sel==0の時はa=0
でFA?
792774ワット発電中さん:2009/09/13(日) 02:10:06 ID:kWfGD+HW
寺でも照でも財でも、みな同じ結果が出る?
793774ワット発電中さん:2009/09/13(日) 02:46:43 ID:p8vkcJif
>>791
仕様的には許されていて、QuartusやISEではフリフロになるらしい
よってselが1の時は、aは1になる(当然だが、こう書くべきではない)

恥ずかしながら、不定でエラーでると思ってました。意外と面白いネタだったね
794774ワット発電中さん:2009/09/13(日) 09:29:24 ID:P7KX3Eq+
早い話が仕様では
always @( posedge clk ) begin
    a <= 1'b0;
    a <= 1'b1 ;
end
で許されると言うことか、なんだかな
LINTチェックは通らないことを祈るが・・・
795774ワット発電中さん:2009/09/13(日) 09:58:28 ID:nYqOCHdf
always @( posedge clk ) begin
    if( x <= 100 ) begin
        a <= 1;
    end
    if( x >= 90 ) begin
        a <= 2;
    end
end

うっかりミスでこんな感じの記述したのにコンパイル通っちゃった記憶がある。
796774ワット発電中さん:2009/09/13(日) 09:59:24 ID:hyKsB8X4
>>786
だけど、外注に出すと、“質の悪い記述”で戻ってくるんだぜ orz
個人的には、STARC ガチガチの読みにくい記述より
読みやすいほうがありがたいけどね。
797774ワット発電中さん:2009/09/13(日) 12:13:01 ID:H/UtuLWT
>>795
always@構文で条件の記述を追加したのに、
センシティビティリストに追加するの忘れて動かねーなぜだって事はあった。
798774ワット発電中さん:2009/09/13(日) 12:36:19 ID:zyV1a5mQ
>>796
STARCガチガチはヤダねwww
まあ、いいとこどりというか、
STARCカスタマイズルールをLINTツールには仕込むもんじゃないのかしら?
799774ワット発電中さん:2009/09/13(日) 13:45:35 ID:hyKsB8X4
>>797
そこで @* ですよ
800774ワット発電中さん:2009/09/13(日) 14:05:29 ID:UnFwSvEF
@* はVerilog2001からサポートだね。
これは素晴らしい気がして感心した。
801774ワット発電中さん:2009/09/13(日) 14:28:30 ID:kWfGD+HW
>>794とか>>795のような、
辻褄が変な記述を、チェックしてくれるようなソフトはないですかね?
「オッサン、212行目と356行目で、reg HOGEがマルチソースになっとるで。」とか

あと、変数名(信号線名)のリストを作ってくれるようなソフトはないかなぁ。
802>>779:2009/09/13(日) 14:45:00 ID:zPiH6EkN
>>801

それが>>779だよLINTチェッカー
アルデックもALINTとか出してるね。
803774ワット発電中さん:2009/09/13(日) 15:41:52 ID:hyKsB8X4
>>801
だからそれは文法エラーじゃないと(ry
804774ワット発電中さん:2009/09/13(日) 15:55:21 ID:kWfGD+HW
>>802, >>803
ありがとうございます。そうなんですか。ちょっと調べて来ます。

一つ教えてください。
ISE10.1を使っていますが、画面一番下の横長のconsole windowに出る
エラーやワーニングのメッセージが、文章の途中でとぎれてしか表示されません。
全文を表示しない理由も納得できないのですが、これを全部表示する方法はあるでしょうか?

・Σメニュー(?)の中に入って進んでいけば、全部見えるようですが、入っていくのが面倒ですし、
 consoleに比べて横幅が短いので、結局改行されてしまい見にくいんです。
・consoleのそのメッセージの上にカーソルポインターを合わせてしばらく待つとOSの機能?で
 全文が表示されますが、ポインターを持っていくのも面倒ですし、待つのもツライです。
console上で全文表示してくれれば、すべて解決なのですが。
宜しくお願いします。
805>>779:2009/09/13(日) 16:04:30 ID:fCJ6fUoW
>>804
導入できればより良いね。

オイラはこう書いてても導入失敗orz
上司の理解がorz終了orz

まあ安価では無いし。
SynopsysはDC-ULTRA買ったら激安で付けてやる とかゆーてましたわ
806774ワット発電中さん:2009/09/13(日) 16:13:18 ID:kWfGD+HW
>>805
>オイラはこう書いてても導入失敗orz
って、そんなに高いものなんですか?

LINT あるいは、ALINTで 検索したら、だいぶわかりました。
Verilogだけではないみたいですね。
みなさんの言うSTRACとは、この半導体・・・センターのことだったですね。
僕も、半導体・・・センターの出してるVerilogの本、持っています。6000円のやつ。

ところで、LINTについては、いっぱい検索できるのですが、
LINTが何の略なのか見つけられませんでした。Wikiにも書かれていない。
これはいったい何の略なのでしょうか。

Language Inspection N.... Tool かしらん、と思っていますが。




807>>805:2009/09/13(日) 16:30:14 ID:fCJ6fUoW
>>806
まあ高いかどうかは企業判断のところもあるしな、価値の見出し次第。

LINTの語源ですか、
正しいか知らないが、
スーツとかに付着した毛ぼこリを取るブラシありますよね。
繊維質の逆毛になってる生地がついたブラシ。

あれで毛ぼこリ取るのをLINTとか言う  ってカリフォルニアな御仁がゆうてましたわ。
808774ワット発電中さん:2009/09/13(日) 17:20:51 ID:jI31Pefe
>>805
うちは、お前がテイノウだからlintいるんだろって感じがあるな
IC屋ならともかく、FPGA屋だとお気楽にバグ修正できるから
わざわざlintを高い金を出して部署に導入するのもどうかってあるだろうがな

FPGA屋で部署にlintを標準開発ツールとして導入しているところっって多いのか?
809774ワット発電中さん:2009/09/13(日) 17:30:22 ID:kWfGD+HW
>>807
ありがとうございます。ちょっと嬉しいです。

Lintって、省略語ではないんですね。だからちっとも出てこなかったんですね。
Lintそのものは、こんなのが出てきました。

lint【名】
1. 糸くず、綿ほこり
・Get the lint off of the drier [dryer] before you run, OK? : 乾燥機を使う前に綿ほこりを取ってね。
2. リント布◆衛生用品

ありがとうございました。
810774ワット発電中さん:2009/09/13(日) 17:33:06 ID:D6cFdB+s
そりゃFPGAがいくら簡単に書き換えられるとは言え、製品出荷した後に同じことが言えるとは思えないし。
タイとか南アメリカとか南アフリカとかの顧客から、「ここまで書換えに来い、何で客に書き換えさせる?」とか言われたりするかもだし。
というか製品では書換え不可にしているかもしれない。
811774ワット発電中さん:2009/09/13(日) 17:52:57 ID:IG2TMqR0
lint って、ソフト屋で、cもやるなら、名前くらいは知らないとダメだろ。
KRの頃から、cには標準装備だろうに。

パソコン用のはついてるかどうか知らんがな。
812774ワット発電中さん:2009/09/13(日) 18:34:27 ID:kWfGD+HW
Lintと warningの違いがわからないです
813774ワット発電中さん:2009/09/13(日) 18:50:19 ID:jI31Pefe
>>812
lint使ったことあるの?
なら、lintは>>773>>794-795のコード発見すると
なんて文句言う?
で、コンピラーのwarningは何か出るの?

俺、lint使ったこと無いが、lintは>>773>>794-795のコードに対して
どんなこと言うのかわかる香具師いる?
814774ワット発電中さん:2009/09/13(日) 19:42:01 ID:P7KX3Eq+
LINTと行ってもルールがいくつもありまして・・・
それこそ上記で出てるSTARCルールとかね、その上STARCルールでもランク分けしたりとか
LINTを使うのも楽じゃないんだよね

会社で品質管理の部門などが、STARCルールなどをベースにきっちり作ってくれるところならいいが
大体は各設計者が好き勝手にやってるのが現実じゃないかな?
815774ワット発電中さん:2009/09/13(日) 21:09:56 ID:QWX3Af3l
>>809
lint trap でぐぐると幸せかも。
816>>805:2009/09/13(日) 21:30:42 ID:Eh+1yhLs
>>808

主な趣旨は>>810氏指摘の通りだよ。
あと誤解させたが、
ASSP開発でのスタセルIC化におけるFPGAプロトタイピングとして関わったFPGA屋ですた。
#でも前々職時代は純粋なFPGA最終形態での受託だったけど。

チーム設計、過去の遺産、IPとか活用・流用しようとすると
結構クセのあるコードとかあるよ。
あとうっかり自分もやらかす可能性もそれはある。
あわてて修正入れた時とか。

確かに費用対効果の説得力は課題だね。

結局これは、過信・慢心対策だとは思う。
まあ>>808の態度はまさに危険な香りがするがwww
っっ →まさにLintだなあw ちょっとホノボノしたよw
817774ワット発電中さん:2009/09/13(日) 21:34:34 ID:7xiC3b1y
>>808
>うちは、お前がテイノウだからlintいるんだろって感じがあるな
会社勤めのフリをしているが
実のところグループ作業をしたことがない引き籠もり(藁)
818>>805:2009/09/13(日) 21:40:15 ID:Eh+1yhLs
>>817
それは言っては気の毒だよ しーーーっw

オイラFPGAスレでも最近カキコしたが、
なにかと衝突するんだよね。
オイラがおかしい感覚なのか、ちょっと自分を疑った。
http://science6.2ch.net/test/read.cgi/denki/1246360585/835  とか
819774ワット発電中さん:2009/09/13(日) 22:32:33 ID:7jZTPuOR
うちは必ずLintはかけるよ。
FPGAとASICが半々くらいで、IPベンダみたいな面もあるからだけどね。
大きいところと話をすると、必ずカバレッジとLintの話は出てくる。
「Lintかけません」=「品質が悪いです」と認識してる。
820>>805:2009/09/13(日) 22:38:07 ID:BRPkW7Tc
>>819
なるほどですね。

IPベンダみたいな側面とありますが、メインは受託か何かですか?
821774ワット発電中さん:2009/09/14(月) 00:24:39 ID:4dJ87o9A
カバレッジとかリントチェックとかで出てくるバグもあるにはあるんだけど、
仕様抜けとか、基本設計のミスとかのほうが大きいんだよね。
チップが出てきてから、オーバーフローしてましたとかね、もうね、
822>>805:2009/09/14(月) 01:22:04 ID:Ly7nHT+z
>>821
それを言ったらね、まあねwww ありがちwww

それぞれ大事だけども、
バグ全体の中のウェイトでは少数ということか=カバレッジ・リント

だからこそ導入が遅れ気味だったり、重要視され難いんだよね。
でもプロセス微細化でICなんかは失敗がシャレにならないから
普及の牽引役になってる、と。

で、

FPGAはいまいち旧態依然とはしているが、
>>819氏みたいなところがASICフローと同様に導入するようになり、
業界全体では徐々に あたりまえ になっていくのかな?

まあ、ユーザーサイドの要求度合いもあるけど。
例えば、大トヨタ様なんかの仕事は必須なのかな?
まあFPGAあるかわ知らないが。
823774ワット発電中さん:2009/09/14(月) 02:17:04 ID:pKFZ8sUN
lint使う場合って完全OKになるまでソース修正するの?
824774ワット発電中さん:2009/09/14(月) 02:27:03 ID:P2bPIseV
ちなみにLINTって、いくらぐらいするの?
5〜6万円なら、俺も欲しい。
825774ワット発電中さん:2009/09/14(月) 07:06:47 ID:rew/8oJg
ALINTだと$13000くらい。ちょっと手を出しにくい。

コンパイラの構文チェックを単機能化して特化したツールということで、コンパイラのWarningレベルを上げてもある程度は代用できる。

LINTが出す指摘事項は結構どうでもいいのもあるから、その取捨選択は適当に判断して、プロジェクト毎にルール化するとかしたらいい。
826774ワット発電中さん:2009/09/14(月) 09:45:43 ID:VONmCMrq
$13000って、超高いじゃないか。うちでは導入なんて出来ないな、orz
おまえらの会社ってリッチ...
827774ワット発電中さん:2009/09/14(月) 09:58:50 ID:jQwT4cJo
>>826
$13000 なら安くね?タイムベースかな?

だれか Lint チェッカー作ってくれよ。
フリーとは言わないから・・・5000円くらいなら出すよ。
828774ワット発電中さん:2009/09/14(月) 11:51:19 ID:BSalRzJU
130万円か 高いな
829774ワット発電中さん:2009/09/14(月) 12:15:55 ID:X/usHiVc
大手上位2社はもっと高価なのは確実w
830774ワット発電中さん:2009/09/14(月) 13:39:30 ID:7Pl4XSjd
>>827

$10000 で メンテが月 $10000 くらいでどうですか
831774ワット発電中さん:2009/09/14(月) 17:44:25 ID:mlvVVB3+
>>830
ジンバブエドルですね、わかります。
832774ワット発電中さん:2009/09/14(月) 21:11:58 ID:rew/8oJg
>>825の価格は、
ttp://japan.xilinx.com/publications/xcellonline/xcell_66/xc_pdf/p39_65_66_news_ToX.pdf
の2枚目の「Nguyen 氏によると、ALINT は他の市販ツールに比較してより堅調で、しかも、
アップグレード価格は $7,500 からと、$13,000 のスタンドアロン バージョンの約半分ですみます。」
って内容を参照したわけだが、

ttp://eetimes.jp/article/20838
だと、永久ライセンスの価格は112万5000円とのこと。
833774ワット発電中さん:2009/09/15(火) 00:50:41 ID:vm8VjCEJ
CQ出版のFPGAボードで学ぶ論理回路設計の付属基板がシリアルポートなんだけど、
シリアル(:基板)<->USB(:PC)で通信できる?

PCが壊れたから買い換えて、シリアルポートが無くなってたの忘れてた。
834774ワット発電中さん:2009/09/15(火) 01:11:29 ID:WFGHS8JL
>>820
ほぼ受託。
リーマンショックから、案件が激減して大変みたいです。
835774ワット発電中さん:2009/09/15(火) 01:18:46 ID:WFGHS8JL
>>823
完全OKはまずないよ。
クロックドメインの変更とかあればダメだから。
だから、ERRORとMANDATORYは取れるだけとって、
残ったところは、その理由をコメントしたログを納めてる。
836774ワット発電中さん:2009/09/15(火) 01:40:04 ID:O1MDMO/2
>>835
なるほどやっぱりそうなんですね。
数が何百個になると、その理由(仕様上避けられない)を全部説明するのが本当に大変で無駄な作業だと言ってた人がいました。

837774ワット発電中さん:2009/09/15(火) 08:27:48 ID:efxjR6Vs
>>835
仕様上避けられない ってのがよく分からないけど、
Lint のルール(ポリシー)を変更したほうがいいかもね。
エラーが多いと本当に必要なものを見逃しかねないし・・・
まあ、確かに無駄な作業とも言えるけど。

だいたい、DCとかの合成ツールがきちんとエラーを吐けば
いいだけなのに、別途 Lint ツールを買えってのがねぇ。
フォーマリティチェックもそうだよね。
838774ワット発電中さん:2009/09/15(火) 11:22:33 ID:vQKXxnFH
>いいだけなのに、別途 Lint ツールを買えってのがねぇ。
>フォーマリティチェックもそうだよね。

まいどおおきに(手もみUSオヤヂ
839774ワット発電中さん:2009/09/16(水) 00:05:47 ID:z2pPcRC9
エラーを吐くどころか
間違った合成しやがるから油断ならねぇ
840774ワット発電中さん:2009/09/16(水) 07:45:33 ID:Kl0ydaWp
>>839
それはあまりないでしょう。
記述が悪いんですよ。きっと。
841774ワット発電中さん:2009/09/16(水) 08:31:50 ID:wenrsl8E
>>833
USB-serial変換器で動くものと動かないものがあると思う
842774ワット発電中さん:2009/09/16(水) 11:54:37 ID:86F4rE9j
>>840
つまりはLintの使いようがある、と。
843774ワット発電中さん:2009/09/16(水) 14:49:16 ID:9yuUS3KB
超高機能LINTツールが無料だったらツール作ってるところ(ALINT)とかは困るが

世界のHDLの質は全体的に上がるのかねぇ
844774ワット発電中さん:2009/09/16(水) 20:18:53 ID:/LHli7H6
ならないと思う
845774ワット発電中さん:2009/09/16(水) 21:09:27 ID:LVO6qsP8
無料のLINTがあるC/C++の世界でも、そんなにコード品質上がってない状況を見渡せば、あがんないよね。
まあ、Verilog⇒VHDL⇒Verilog変換でチェックするとかかなあ。
846774ワット発電中さん:2009/09/17(木) 01:11:21 ID:qr4x9iDc
modelsimでこんな感じの↓VHDLコードをシミュレーションしているんですが
全部Uになってうまくいきません
なにか知っている方おられましたら教えてください

process(clk)
begin
If rising_edge(clk) then
  for L in 0 to 7 loop
array(L+1) <= array(L);
  end loop;
end if;
end process;
847774ワット発電中さん:2009/09/17(木) 01:34:05 ID:Mu65C9TV
>>846
array(0)には何が入るん?
848774ワット発電中さん:2009/09/17(木) 01:36:45 ID:qr4x9iDc
>>847
"00000001"みたいな8ビットデータです
849774ワット発電中さん:2009/09/17(木) 01:40:32 ID:uYepUVwn
>>846
リセット信号入れて初期化しな。

初期化されていないので出力が'U'になる。
850774ワット発電中さん:2009/09/17(木) 02:06:17 ID:qr4x9iDc
>>849
ありがとうございます
うまくいきました!

たとえば除算の結果とタイミング合わせるために遅延させるにはこんな方法であってます?
851774ワット発電中さん:2009/09/17(木) 02:23:01 ID:z+wfSl38
>>840

これが合成されんのよ
always @(posedge clk) begin
if (!reset_n) begin
b <= 1'b0;
c <= 1'b0;
end
begin
b <= a;
c <= b;
end
end

これだとok
always @(posedge clk) begin
if (!reset_n) begin
b <= 1'b0;
c <= 1'b0;
end
begin
c <= b;
b <= a;
end
end
852774ワット発電中さん:2009/09/17(木) 02:40:39 ID:7x4mMxLR
reset時と通常時は、elseにしなくてもいいの?
853774ワット発電中さん:2009/09/17(木) 02:53:18 ID:z+wfSl38
おっと抜けてたか
あとスペース消えてて見づらかったね
always @(posedge clk) begin
  if (!reset_n) begin
    b <= 1'b0;
    c <= 1'b0;
  end
  else begin
    b <= a;
    c <= b;
  end
end
854XC5VFX200T-2FFG1738CES:2009/09/17(木) 04:03:14 ID:nYQNosPH
それなら いいんじゃないの?

ちなみに

a <= a; とか
y = (y==1'b0)? 1 : 0;

ってできるんですか?
855774ワット発電中さん:2009/09/17(木) 06:59:54 ID:T2IrD/oW
>>846
8bitのデータで、Lを0〜7まで振っちゃったら、はみ出しちゃうでしょ?
856774ワット発電中さん:2009/09/17(木) 09:36:00 ID:Ckww7GzH
>>851
「これが合成されんのよ 」は、「これが合成されないんだよ」なのか
「これが合成されるのよ」なのか、関東人には良くわからないが、
always @(posedge clk or negedge reset_n) だと思うよ。
857774ワット発電中さん:2009/09/17(木) 11:23:40 ID:wdiLTEUP
>>854
どちらもできると思うけど

aはレジスタならelseでよくやる
yはassign文としてまず参照演算子が嫌いだからあんまりしない
(双方向だと仕方なく使うけど)

assign y=z自体もあんまりするな、って聞いた気がする
858774ワット発電中さん:2009/09/17(木) 12:14:52 ID:Hh29BLpd
>>855
array だよ。
859774ワット発電中さん:2009/09/17(木) 12:17:11 ID:Hh29BLpd
>>856
同期リセットだとしても、合成できないのはおかしいな。
860774ワット発電中さん:2009/09/17(木) 13:32:27 ID:7x4mMxLR
>>857
>a <= a;
これは、1clock待ち合わせに使うということですよね? きっと。

>y = (y==1'b0)? 1 : 0;
これはどんな回路ができるのか、想像がつかない。
デッドロック?
861774ワット発電中さん:2009/09/17(木) 14:29:54 ID:v6IwkIml
>a <= a;
ラッチ

>y = (y==1'b0)? 1 : 0;
y = ~y;

じゃないかな。
862774ワット発電中さん:2009/09/17(木) 22:31:56 ID:T2IrD/oW
>>858
おぉ、そういうことか。スマンです。
863774ワット発電中さん:2009/09/18(金) 00:17:13 ID:Qa/4q3cD
>>853
合成されると思うけど、
使ったEDAツールは何?
864774ワット発電中さん:2009/09/18(金) 08:44:27 ID:n3KALvYj
>>856
たしかに。
関西人の俺にもわからない。

富山人じゃね?
865774ワット発電中さん:2009/09/18(金) 19:26:09 ID:JBOvxvaw
>>864
富山人のくせに
866774ワット発電中さん:2009/09/18(金) 19:33:21 ID:EoXb+tJp
>>856
「これが合成されるのよ」
->「これが合成されんのよ 」

「これが合成されないんだよ」
->「これが合成されへんのよ」
867774ワット発電中さん:2009/09/18(金) 19:39:34 ID:+6ySNIEj
>>864
じゃねってチョン系言葉(それより派生したダイハン民国語)?
倭人系日本人はこれを疑問文に使わないな。じゃまたね(サヨナラ)を略したものだからね
富山人さよなら?...何を言っているのか分らん
868774ワット発電中さん:2009/09/19(土) 15:48:46 ID:CE+ROCZn
〜んのよ って多摩弁じゃね?
じゃね? って多摩弁じゃね?
869774ワット発電中さん:2009/09/19(土) 17:10:03 ID:JDMtkfL8
じゃね? って、〜じゃないの?が鈍ったんじゃね?
870774ワット発電中さん:2009/09/19(土) 21:46:15 ID:lhqyGIUY
DPIについて教えていただきたいのですが

下記環境にて DPI を試してみようと試みました
OS : Windows Vista 64bit
Soft : ModelSim Altera版 6.4a
Ccompiler : gcc (cygwin)

ModelSimのマニュアル通りに
vlog -dpiheader hoge.h hoge.v
で export するタスクの C用ヘッダファイルを作成し、次にオブジェクトファイルを作成しようと
vsim -dpiexportobj exportobj -c hoge_top
を実行しましたが、下記エラーが出力されます

# vsim -dpiexportobj exportobj -c hoge_top
# Loading sv_std.std
# Loading work.hoge_top
# ** Fatal: (vsim-7019) Can't locate a C compiler for compilation of DPI export tasks/functions.
#
# Time: 0 ps Iteration: 0 Instance: /hoge_top File: hoge_top.v
# FATAL ERROR while loading design
# Error loading design

エラーを見る限り、vsimに対してCコンパイラの場所を教える必要があるように思えるのですが
どの様にしたらよろしいのでしょうか?
どなたか知っている方おられましたらお教え下さい
871774ワット発電中さん:2009/09/19(土) 23:00:15 ID:TpeKovE3
>>870
スレタイ嫁
872774ワット発電中さん:2009/09/20(日) 18:49:52 ID:QvoSTD43
教えてください。
Verilogで、インスタンス化により、top階層からドンドンとモジュール階層が深くなっていきますが、
その下の方の階層のレジスタの内容を、FPGAのpinに取り出したいとき、
通過するモジュール全部にwireで入出力宣言をしないといけないのでしょうか?
何か特別な文法があって、直接pinとやりとりできる、とかは無いでしょうか?

ちょっとオシロで波形を確認してみたいだけなので、確認が終わるとまた元通りに
戻すことになるので、とても面倒なんです。
美しいと思う方法は、
目的のモジュールのセンシティビティリスト部分は、残したままで、
別記述により、FPGA空きpinを指定して、デバイスに焼き込み、波形確認。
終わったら、その別記述を削除すれば、元通りになる。
という感じですが、無理なのでしょうか。

873774ワット発電中さん:2009/09/20(日) 23:00:44 ID:9JnZuUmt
>>872
それがないのよ。
シミュレーションだったら、インスタンス指定で出来るのにね。

まあ、そのための専用ツールなら出てるけど。
Xilinx なら Chipscope とか。

面倒でなければ、必要な信号を全部取り出して繋ぐっと。
不要になったら FPGA の出力ポートから削除すればいいじゃん。
874774ワット発電中さん:2009/09/20(日) 23:05:19 ID:mV0rHzKY
>>872
module a ();
reg a1;
endmodule;

module b ();
a u1 ();
a u2 ();
endmodule;

module c ();
b u3 ();
endmodule;

module cからa1にアクセスするにはu3.u1.a1とu3.u2.a1でできたと思う。
875774ワット発電中さん:2009/09/20(日) 23:12:10 ID:aiYUNyz7
>>874
上にも書いてあるけどsimでは出来るけど、合成してpinに出せるの?
876774ワット発電中さん:2009/09/21(月) 01:24:20 ID:2ny1WjKC
>>863
DC使ってた。もう何年も前の話。
みんなして???状態。

じゃね?ってじゃんの疑問系じゃね?
俺は横浜訛りだって聞いてたけど、多摩→横浜の流れかな。
877774ワット発電中さん:2009/09/21(月) 01:31:30 ID:GhU9K3Ch
>>873
>不要になったら FPGA の出力ポートから削除すればいいじゃん。
でもFPGAのピンが余ってないの。
PQ208で、余りピンが10ピン程度。この10ピンで勝負しないといけないんです。
ChipScopeでもいいと思うけど、オシロで見たいときって無いですか?

あと、その空き10pinを、debug_pin[9:0]とかにして、
いろいろ使い回してるんだけど、使わなくなったときにソースだけ削除しても
「知らないucfの記述があるがや」と言う理由で、Paceは起動しないし。

assign debug_pin = { 10{1'b0} }; ってやって逃げてはいますけど、
とにかくFPGAのI/Oピンの登録/削除って面倒だと思う。
そうは思いませんか? → おーる

それともISEが融通を利かせてくれれば済むんですが。
878774ワット発電中さん:2009/09/21(月) 01:36:42 ID:GhU9K3Ch
>>874
ありがとうございます。
まるで DOSのFullPath指定みたいですね。

具体的にはどのように記述するのでしょうか。

module c (
  wire [9:0] debug_pin
  );

  b u3 ();
  assign debug_pin = u3.u1.a1;
endmodule;

という感じでよいのでしょうか。
879774ワット発電中さん:2009/09/21(月) 01:47:02 ID:RWKp7YkZ
>>876
elseがあれば、合成できる。
elseがなければ、ツール依存。
880774ワット発電中さん:2009/09/21(月) 01:49:27 ID:2ny1WjKC
あるのに合成されないから困ったんだよ。
881774ワット発電中さん:2009/09/21(月) 08:54:40 ID:J5nipzcH
>>880
少なくとも、今はどんなツールでも合成はでけると思うな。

あと、elseがなければ合成されないんじゃなくて、保持されるんだよ。暗黙の保持といいます。
882774ワット発電中さん:2009/09/22(火) 01:48:07 ID:PxDBhwzE
>>880
そりゃあ、ツールにバグもあるだろう。
で、困っただけ?
883774ワット発電中さん:2009/09/22(火) 03:37:11 ID:2q4ZZ3I8

教えてください。

verilogを勉強しています。次のような記述はできないでしょうか?

wire [23:0]  zentai;   // 全24bitのzentai

1. この24bitの、上中下の3byteを、別々に扱いたいのですが、方法はありますでしょうか。今は
   assign zentai[23:16] = xxx;
   assign zentai[15:08] = yyy;
   assign zentai[07:00] = zzz;
   と、添え字が必要な書き方しか知りません。この書き方の問題点は、
   いちいち添え字の数字を書かなければならず、面倒なところです。
   また、[ ] の中の数値は、間違えやすいと思うのです。
   これをCと同じように、

   assign higher_byte = xxx;    // zentai[23:16] = xxxxと同じ働き
   assign middle_byte = yyy;    //   同上
   assign lower_byte = zzz;    //   同上
   という簡潔な表記ができないものでしょうか。

   defineを使って、
   `higher_byte zentai[23:16]
   と定義すれば良いのかもしれませんが、これだと定義の部分でも、使用する部分でも
   頭に「`」をつけなければならないという煩わしさがあると思います。
   Cのように「`」なしで、higher_byte = xxx; とかできればよいのですが。

2. assign WR = 1'b0; のように、zentai[0]の1bitを、WRという名前で
  アクセスしたりは、できないでしょうか。

  C言語の struct や union のように使えると、上記の問題は解決だと思うのですが。

3. begin end を「{」、「}」で記述することはできないでしょうか?
  begin endは、明らかに{、}と置き換えができると感じでいます。
  連接で{ }を使用するので、単純にdefineというワケにもいかないのですが、
  Cのように、{ }で書く方法というのは、無いものでしょうか。

4. assignの省略はできないてしょうか。
   wireに接続するときに、assign middle_byte = yyy; など、assignと
   書く必要がありますが、これは、代入ですので、省略しても良いのではないかと
   思うのですが。どうでしょうか。
   BASICの記述の「LET」と同じだと考えています。

以上です。宜しくお願いします。
884774ワット発電中さん:2009/09/22(火) 03:45:39 ID:Ea+epmiy
>>883
1. 代入される側に連接演算子を使って結合しる
2. wire定義してassign代入しる
3. ツールによる。使ってるツールのマニュアルよく嫁
4. できない。少なくとも記述間違いが発見しにくくなるので止めとけ
885774ワット発電中さん:2009/09/22(火) 03:51:26 ID:9pUFa93U
>>878
シミュレーション記述だから、合成不可。
signaltapとか使えば?

>>883
verilogは、cではないから、そういう記述をしたいという発想自体があまりお勧めできない。
間違えやすいとか、簡潔な、と言うのは、あなたの個人的感想だし。。

だから、どうしても、cっぽくしたいなら、プリプロセッサ書いた方が早そう。
簡単な置換マクロでもいいけど。
886774ワット発電中さん:2009/09/22(火) 08:46:28 ID:Z1AKvMD7
>>883
vb厨が、cやpascal使うときによく言ってることと、かわらんな。
言語仕様が違うんだから、文句言うなよ。

でなきゃ、お得意のcでさっさとプリプロセッサ作れよ。
887774ワット発電中さん:2009/09/22(火) 09:08:24 ID:q3fYX7Wx
始めたばかりの人はbegin〜endに文句言う人が多いね。
888774ワット発電中さん:2009/09/22(火) 10:20:41 ID:nbFvPdei
>>883
つm4
889774ワット発電中さん:2009/09/22(火) 14:04:49 ID:Ea+epmiy
>>887
確かにalways文とかbegin-endだとインデントしにくいけどね。
他人のソース読むなら慣れなきゃ。自分だけの世界の住人なら他人に聞くな。
890774ワット発電中さん:2009/09/22(火) 14:06:09 ID:3m3RaNUw
>>883
なんか>>886で結論が出ているが。

1.
   assign zentai[23:16] = higher_byte;
   assign zentai[15:08] = middle_byte;
   assign zentai[07:00] = lower_byte;
としておけばできる。

2.
   assign zentai[0] = WR;
としておけばできる

3.
無理

4.
省略できない。単純代入と継続的代入(assign)は別物ですよ。
891774ワット発電中さん:2009/09/22(火) 14:22:05 ID:Ea+epmiy
>>890
おいおいw >>883の質問の意図を理解できてるかい?
1,2あたりはHDL記述の意味が良く判ってないっぽいが
別に、assignなしで代入したいとか(代入先の属性みてくれ)とか
begin-endじゃ冗長だから{}にしたいというのは、普通の疑問だよ。
892774ワット発電中さん:2009/09/22(火) 16:33:30 ID:Z1AKvMD7
>>891
普通の疑問じゃなくて、ただのc厨の疑問なだけ。
Pascalから入った俺は全然気にならん。

アメリカでは学校で習う言語処理系がpascalだから、
begin〜endがスタンダードなだけ。

悔しかったら、自分でプリプロセッサか処理系作れ。
rubyみたいに作ってる人も実際いるんだから。
893774ワット発電中さん:2009/09/22(火) 16:44:45 ID:th4ZSoBS
今北産業
894774ワット発電中さん:2009/09/22(火) 23:03:19 ID:3m3RaNUw
>>891

>>883
>verilogを勉強しています。次のような記述はできないでしょうか?

が質問なのだから、Verilog の文法で可能かどうかという意味なのだと思うが。

むしろ

>>884
>3. ツールによる。使ってるツールのマニュアルよく嫁

可能なツールを提示して欲しい。


>>892 の言うように、
> 悔しかったら、自分でプリプロセッサか処理系作れ。
> rubyみたいに作ってる人も実際いるんだから。

に同意見。私も時間があれば Ruby 風の記述から Verilog を吐き出す
ツールを作りたいところではあるのだが。
895774ワット発電中さん:2009/09/22(火) 23:47:45 ID:PxDBhwzE
*** 現在、スルー検定実施中です ***
896774ワット発電中さん:2009/09/23(水) 00:08:35 ID:IBztvV9s
>>893
begin
#
end
897774ワット発電中さん:2009/09/23(水) 01:57:01 ID:8WXXIuvC
ISE10.1のVerilogで、指導ください。

always @ ( negedge res or posedge CLK ) begin → OK

always @ ( negedge res or posedge CLK or negedge AAA) begin
 if( res==1'b0 ) begin
  処理0
 end else begin
  if( clk==1'b0 ) begin
   処理1
  end else if( AAA=1'b0 )begin
   処理2
  end
 end
end
という記述ではNGになります。
センシテビテイーリストの括弧の中に3つのorはだめなのでしょうか?
あるいは私の書き方に問題があるのでしょうか。
宜しくお願いします。
898774ワット発電中さん:2009/09/23(水) 02:05:28 ID:YAMTDKt6
>>897
シミュレーションではどうでした?
899774ワット発電中さん:2009/09/23(水) 03:45:57 ID:1W3pnjfJ
>>897
DFFって、どんなものか知ってる?
900774ワット発電中さん:2009/09/23(水) 08:56:06 ID:OPyO28aj
>>897
きっと他に適切な書き方があるはずだから、論理を箇条書きにしてくれないかな?
あと、DFFとLATCHを勉強しとくのをおすすめします。
901774ワット発電中さん:2009/09/23(水) 09:00:52 ID:OPyO28aj
>センシテビテイーリストの括弧の中に3つのorはだめなのでしょうか?

は大丈夫です。順序回路としてなら、クロック条件が1つと、リセット条件が複数。ただし、ASICではリセットに論理が絡むのがデザイン制約違反になるので、おすすめできない記述です。
902774ワット発電中さん:2009/09/23(水) 11:38:01 ID:KiwQX+e1
いつも思うのだが、シミュレーション記述と実際の回路をごっちゃにするな。
質問者は、合成できないのか、シミュレーションできないのか、
文法を知りたいのかはっきり汁。
903774ワット発電中さん:2009/09/23(水) 12:48:46 ID:8WXXIuvC
897です。
みなさん、ありがとうございました。

>>898 シミュレーションはしていませんので、わかりません、すみません。

>>899 >>901
>DFFって、どんなものか知ってる?
ありがとうございます。そういうことですか。やっと「もやもやが晴れた」という感じです。

もしかすると、このような考え方は正しいでしょうか?

1. 「always @ ( )という部分は、D-FFのイメージで書けば良い」ということでしょうか。
    D-FFは、「↑動作のclock端子」と「レベル動作のRESET、D、Q、/Q」があり、
    sensitivity list中の信号メンバーは、D-FFのそれぞれのピンに対応している、
    ということですね?

2. 1の理由から「clock以外のedge動作信号」を併記することはできない、で正しいでしょうか?

3. またD-FFには、「clockのようなedge動作のピン」は 他に無いし、
 また「clockが複数」というのは、動作上の辻褄が合わないので、
 sensitivity listには、clockは1本だけしか記述できない、という理解で。

4. ところが、RSESTは、複数箇所から来ても良いので、次のように
  reset1, reset2, reset3をorでくくって、RESETピンにつなぐということができる。
  よって、sensitivity listに複数のRESET信号が書いてあっても、良い。
  この理解で良いでしょうか?

always @ ( negedge reset1 ornegedge reset2 or negedge reset3 or posedge clock ) beginという記述なら、

if( (rsest1==1'b0) || (rsest1==1'b0) || (rsest1==1'b0) ) begin
  reset処理
end else begin
  clockで駆動される通常処理
end

何か、ちょっとわかってきた気がします。ありがとうございます。
904774ワット発電中さん:2009/09/23(水) 15:11:46 ID:XoItriFw
>>903
>1. 「always @ ( )という部分は、D-FFのイメージで書けば良い」ということでしょうか。
良くない。

>    D-FFは、「↑動作のclock端子」と「レベル動作のRESET、D、Q、/Q」があり、
>    sensitivity list中の信号メンバーは、D-FFのそれぞれのピンに対応している、
>    ということですね?
ちがう。

> 4. ところが、RSESTは、複数箇所から来ても良いので、次のように
>  reset1, reset2, reset3をorでくくって、RESETピンにつなぐということができる。
>  よって、sensitivity listに複数のRESET信号が書いてあっても、良い。
>  この理解で良いでしょうか?
良くない。

単に、verilogとして書けるか、ということとは別にして、
fpgaなり、asicなり、のRTLを書くのには良くない記述、という意味でね。
905774ワット発電中さん:2009/09/23(水) 15:33:14 ID:8WXXIuvC
>>904
さっそくありがとうございます。

>単に、verilogとして書けるか、ということとは別にして、
>fpgaなり、asicなり、のRTLを書くのには良くない記述、という意味でね。
ありがとうございます。
べき論があって初めて納得ができるものと思っていますので、「こうあるべき」というお話を
ぜひ聞きたいです。よかったら教えてください。

always @ ( )のsensitivty list部分は、何をイメージして書けば良いでしょうか。

本には「このlist内に書いた信号が'変化したら'〜」と書いてあるのですが、
そもそも本のこの表現では、回路図をイメージできずにいます。
   変化したらったことは、ISEが「D-FF2個と2入力ANDによる変化を検出する回路」を
   それぞれの信号に対して組み込んでくれるのだろう、と思っていました。
今まで、(negedge RESET or posedge CLOCK)しか書いたことがありません。
()内の意味を良く理解していないから、怖くて書けないんです。

いいチャンスだと思いますので、sensitivity listの意味をぜひ知りたいと思っています。
宜しくお願いします。
906774ワット発電中さん:2009/09/23(水) 18:41:47 ID:ImluNg3r
DFFと非同期リセット、同期リセットを勉強
907774ワット発電中さん:2009/09/23(水) 19:48:47 ID:8WXXIuvC
>>906
ありがとうございます。
非同期/同期のresetは、この程度しか知りません。

always @ ( negedge reset or posedge clock ) begin // clock変化もreset変化も受け付ける
 if( rsest==1'b0 ) begin             // 先にresetを評価するので、非同期reset
   reset処理
 end else begin
   clockで駆動される通常処理
 end
end

always @ ( posedge clock ) begin     // clockの変化しか受け付けない
 if( rsest==1'b0 ) begin         // そのclockによりresetが評価されるので、同期reset
   reset処理
 end else begin
   clockで駆動される通常処理
 end
end
このように理解しています。

sensitivity listに、3つ以上書くのが良くない理由が・・・・ワカリマセン
908774ワット発電中さん:2009/09/23(水) 23:53:58 ID:ghuSafRO
>>907
DFFでは、
1.エッジ駆動ができるのは、クロックだけ。
2.非同期のセット/リセットがある。
3.後は、DとQ。
でしょ?
なら、センシビリティリストには、クロックとリセットだけだよね?
それ以外のイベントでは、Qは変化しないんだから。

ついでに、VHDLでは、DFF正確に記述できるが、
VerilogHDLでは、DFFを正確に記述する事ができない。
クロックエッジと、セット/リセットのエッジを使う事になるから、
暗黙の了解として、
always @(negedge reset or posedge clock)
等と記述する。

あと、ラッチや非同期の場合も、always @を使うけど、
その場合、センシビリティリストは関係あるもの全てとなる。
私の場合は、always @(*)で逃げるけどね。
909774ワット発電中さん:2009/09/23(水) 23:55:56 ID:YAMTDKt6
alwaysブロックが組み合わせ回路であれば、
センシティビティリストに全ての入力信号を
記述しなければならないが、
フリップフロップを記述する場合は、
クロックとリセット以外は通常記述しない。

というのは、D-FFはリセット信号と、クロックによってのみ駆動されるためで、
>>>>always @ ( negedge res or posedge CLK or negedge AAA) begin
のように>>897で、センシティビティリストに記述されているAAA信号は、
クロックまたはリセットの入力が2本あるD-FFとして解釈される可能性がある。

おそらく、上記の記述であればAAA信号はalwaysブロック内で
記述されていれば、クロックの立ち上がりエッジに同期して値が
評価されるので、センシティビティリストに入れる必要はない。

910774ワット発電中さん:2009/09/24(木) 00:42:25 ID:4m7SQJGt
911774ワット発電中さん:2009/09/24(木) 02:59:36 ID:fq6XqNBf
>>907
>sensitivity listに、3つ以上書くのが良くない理由が・・・・ワカリマセン
同期リセット、非同期リセットの理解はあっていると思います。
リセット条件が複数あるのがいけない理由はFPGAでは関係ありません。関係あるのはASICでスキャンテストをする時です。外ピンから全てのフリップフロップのリセット、クロックが制御出来る必要があります。
回路の流用性を考えても、FPGAとASICで記述が異なるのを避ける意味でも、リセット条件が複数あるのは、あまらおすすめできない記述です。
912774ワット発電中さん:2009/09/24(木) 03:42:09 ID:eh/pUkEr
907です。みなさん、どうもありがとうございました。
おかげで少しわかってきたような気がします。
私の、そもそもの勘違いというか理解不足な点は、
「always文は、clock同期の回路に使う書き方」と思い込んでいた事です。
組み合わせ回路にも使えるんですね。知りませんでした。
以前に本を呼んだときに、(a or b or c or ...)のように複数書かれていたのを記憶していて、
「clock動作の物で、あの書き方もできるんだ」と思っていました。すみません。

>>908
>なら、センシビリティリストには、クロックとリセットだけだよね?
>それ以外のイベントでは、Qは変化しないんだから。
同期回路の記述をするときのalways()では、やはり、D-FFのイメージで良かったんですね。
ありがとうございます。

>>909
>クロックまたはリセットの入力が2本あるD-FFとして解釈される可能性がある。
この文章のおかげで、理解できました。ありがとうございます。

>>910 ありがとうございます。ご紹介のページ、明日読んでみます。

>>911
夜分に、ありがとうございました。
Verilogはシミュレーション言語だというのを、すっかり忘れていました。
実機を動かすために、へたくそなHDLばっかり書いているので、すっかり。

手持ちの本を読み返してみたら、木村さんの本に
「always@()は、組み合わせ回路でも使えるが、混乱しやすいので、同期回路だけで話を進める」
と書かれていました。今になって、その意味がわかりそうです。

HDLを書くときは、いつも「回路図を思い浮かべながら」書くようにしていますが、
a <= b; が2カ所にあると、出力が喧嘩するからいけないとか、case文のセレクタは
ロータリーSWと同じだとかです。しかし、always()は、結びつける実態がわからずに
今まで過ぎてきましたが、D-FFだとすれば、合点がいきます。

今回の私の結論です。
・always()は、D-FFの接続を考える。
・always()は、同期回路だけに使おう。
・always()は、( negedge nRESET or posedge CLOCK )のみを使うようにしよう。

みなさん、本当にありがとうございました。
913774ワット発電中さん:2009/09/24(木) 08:44:13 ID:hkWA460O
>>911
>リセット条件が複数あるのがいけない理由はFPGAでは関係ありません。
>関係あるのはASICでスキャンテストをする時です。外ピンから全ての
>フリップフロップのリセット、クロックが制御出来る必要があります。

別に、複数のリセット条件があっても別に関係なくね?
LSI全体のリセットと特定ブロックのリセットがある場合もあるし。
always に CLK と RESET しか書けないのは、合成ツールの都合だと思うけど。


>>908
>あと、ラッチや非同期の場合も、always @を使うけど、
>その場合、センシビリティリストは関係あるもの全てとなる。
>私の場合は、always @(*)で逃げるけどね。

always @* 使ったら、ラッチは出来ないぜ
ってか、ラッチが出来ないようにするためじゃね?
914774ワット発電中さん:2009/09/24(木) 09:32:42 ID:Y/XpDhit
センシティビティリストの中でどれがクロックイベントなのか明示できればいいのにね
915774ワット発電中さん:2009/09/24(木) 12:20:25 ID:xOlcyJpl
>>913
>別に、複数のリセット条件があっても別に関係なくね?
>LSI全体のリセットと特定ブロックのリセットがある場合もあるし。
その場合でも、外ピンから全てのフリップフロップのリセット、クロックが制御出来る様に回路を挿入する必要があります。

>always に CLK と RESET しか書けないのは、合成ツールの都合だと思うけど。
リセット条件は複数でもalwaysに書くことができるし、合成もできます。リセット端子の手前に論理が絡むだけです。

ただ多くの場合はちゃんと考えればリセット条件が複数ある必要はないはずですので、推奨としてはclk, rst_x だけの方がいいです。
916774ワット発電中さん:2009/09/24(木) 13:13:08 ID:ABXtaX07
ISEで、Verilogの書き方について教えてください。

現在VerilogでHDLを書いてますが、top階層のファイルに、HDLがズラ〜っと長く並んでいます。
機能ごとなどで ////////// とか /* ------- */ とかで区切って、見やすくする
工夫はしていますが、大まかなブロック的なことも、a[0]のような細かいことまでが、
1ファイルに長くなって見にくいし、間違って触ってしまう危険もあると考えています。

そこで、次のような方法を考えたのですが、実現できるのでしょうか?

まず、topレベル階層を回路図でブロック図を書く。
次に、そのブロック図をダブるクリックしたら、
今度はVerilog HDLの画面になるというふうにできないか?と考えています。

こんなこと、ISEにできるのでしょうか?
917774ワット発電中さん:2009/09/24(木) 15:33:14 ID:+ydggj/u
>>916
Top階層の.vには接続だけが書いてあるんですよね?
小さなプロジェクトならそれも便利だと思います。方法は知りません。すいません。
ただ、デザインがおおきくなってくると処理が重くなるばかりで、現実的じゃないので別のドキュメントを用意した方がいいでしょうね。
ISE以外も使えるなら、HDL DesignerとかVerdiとかあるんですが。なかなか思う様にはなってくれません。
918774ワット発電中さん:2009/09/24(木) 17:10:49 ID:ABXtaX07
>>917
ありがとうございます。

>ただ、デザインがおおきくなってくると処理が重くなるばかりで、現実的じゃないので
ということは、やはりtop階層も含めて、全身Verilogで書いた方が良い、
ということでしょうか?
919774ワット発電中さん:2009/09/24(木) 17:29:06 ID:221ebNt1
>>918
それが一般的ですね。
あまりアイデアないです。すいません。
920774ワット発電中さん:2009/09/24(木) 17:41:44 ID:ABXtaX07
了解です。ありがとうございました。

今は、////////// とか /* ------- */ で区切ることと、
`includeで別Fileにすること、
DCM #(xx) U1 ( .a(), .b(), .... )
などで、接続を分かり易くしていますが、
果たして1年先に見たときに、良くわかるかどうか。

ありがとうございます。

921774ワット発電中さん:2009/09/24(木) 18:51:54 ID:SITxXTNx
ブロック図描いて、ブロック=モジュール=ファイル、にすれば?
922774ワット発電中さん:2009/09/24(木) 19:02:45 ID:CZhVZbR2
>>916
quartusは出来たから、多分ISEでもできるんじゃないかな?

トップをスケマで指定する。
次にソースからブロックモジュールを生成。
トップのスケマでソースから生成したブロックモジュールを接続して出力ピン指定すればよかったはず。

ISEかquartusか忘れちまったが、ピンの追加、削除が面倒だったような記憶がある。

処理が重くなるってのは、確認したわけじゃないだろうから気にしなくてもいいと思う。
でかいモジュールを設計したら、ソースレベルでもブロックレベルでも変わらないと思う。
オレも比べたわけじゃないけど、配置配線の負荷にくらべれば、ネットリストの変換なんて屁みたいなものだろうと思うぞ。
923774ワット発電中さん:2009/09/24(木) 21:05:23 ID:ABXtaX07
>>921,>>922
ありがとうございます。
できるみたいですね。Xilinxのページに行って、ISEのチュートリアルを読んでみます。
みなさんは、どのようにして見やすくしているのか、興味があります。

本来の回路図は大規模なものまで書いたことがあり、それぞれ部品の位置やICの大きさや形状が違っていて個性的なので、
「これは差動アンプだな」、「DAコンバータだね」と視覚的にすぐにわかって、調子良いです。
一方、これがHDLでは、全部が全部 always@()で始まる「文字列ばっかり」なので、何か工夫できればと思っています。
特にtop階層が回路図のように書けたら、各moduleが四角い箱で表せていいなぁ、って。

HDL書きながら、いつも自動車の配線?をイメージしています。
・module()は、ECUに相当して
・wireはそれらを結ぶハーネス
・各ECUには「エンジンECU」とか「ABS ECU」とかの名前がついていますが、それはVerilogのmodule名、
・ECUのコネクタは、port listに相当するようか気がします。
・さらに、module内に組み込むインスタンスは、ECU基板上のICみたい。
  TC74HC00 IC101 ( .pin1(SW1), .pin2(SW2), .pin3(wire0), ..... );
  TC74HC00 IC102 ( .pin1(SW4), .pin2(SW5), .pin3(wire1), ..... );
  TC74HC00 IC103 ( .pin1(wire0), .pin2(wire1), .pin3(SOL1), ..... ); という感じ。
924774ワット発電中さん:2009/09/24(木) 21:19:04 ID:ucsXuaah
>>923
僕は使うツールがISEとも限らないので、Visioとかお絵描きソフトを使ってます。
その方がブロックの持つ機能や信号パスがよく整理できて良いと思っています。
が、1対1になる様にメンテナンスするのが大変です。おすすめはまず、絵を書いてからRTLを書く。その方が、記述ミスも格段に減るので良いですよ。
925774ワット発電中さん:2009/09/24(木) 21:32:00 ID:YA2OPZhY
ASIC屋はやっぱりVerdiが多いのかな?
926774ワット発電中さん:2009/09/25(金) 00:28:50 ID:xVFNhlOR
>>924は大丈夫だろうけど。
1対1になってなかったがためにバグ混入させた先輩がいた。
visioで1対1回路図描いてる人って、それだけで満足しちゃってるんだよね。
仕事の大半を1対1の付け合せ作業してる。
そして、挙句の果てに面倒だから後輩にそれをさせる始末。
自分の趣味でそういうボトムアップ設計やってんだから、自分で面倒見ろよって話。

そんなことするよりも日本語でちゃんと仕様書を書いた方がいい。
ちなみに、上の先輩の設計仕様書はたった3ページ。
日本語のないvisio(図面オンリー)は20ページ。
あなたの仕事は引き継げません。

>>923
上のようにならないようにね。
927774ワット発電中さん:2009/09/25(金) 00:39:00 ID:xVFNhlOR
ああ、言いたかったのは、
図を描くのは重要なんだけど、概略図的なもので十分で、
こまごまと1対1の回路図なんかを自己満足で書いて、
本来の仕事を見失ってる人にはならないようにねってこと。

そもそも、1対1の図を一生懸命描いた時点でHDLの存在意義って?
って考えにならないのかな?結局、同じことを2回繰り返してるわけで。。
928774ワット発電中さん:2009/09/25(金) 00:54:20 ID:ZloM3W9l
>>913
always @(*)でも、ラッチは生成されるよ。
929774ワット発電中さん:2009/09/25(金) 02:22:42 ID:o4QP62+F
>>927
機能仕様書も設計仕様書(Visio)も例え完璧だったとしても、HDLに存在意義は
あるよ。安全な設計の為なら2回くらい同じことしたっていいじゃないですか?というのが1つと、信号の関係やクリティカルパスをつかむのも簡単だし、仮にECOになってもすごく楽だと思う。
あと、さらに加えるとタイミングチャートも必要ですね。
個人的な趣味になっちゃうかもしれませんが、同じ機能仕様であっても、RTLに落とす時にそれぞれ担当者がどう考えたかが知れるので、設計仕様は必要だと思います。思想が垣間見れるので面白いです。

930774ワット発電中さん:2009/09/25(金) 03:24:43 ID:nr3zXVEJ
always @(*) って、

「このalways @(*)begin 〜 end 間に記述する信号は全て」という意味の「*」
という意味で合っているでしょうか?
931774ワット発電中さん:2009/09/25(金) 08:46:46 ID:D5ONfiqy
932774ワット発電中さん:2009/09/25(金) 09:35:10 ID:8HRR+aS2
>>930
入力信号
933774ワット発電中さん:2009/09/25(金) 14:50:44 ID:jqMn7u1K
>>931
何か意見があるんだったら教えてください。
934774ワット発電中さん:2009/09/25(金) 15:18:50 ID:KPUaKbw6
>>929
私も同感です。
>安全な設計の為なら2回くらい同じことしたっていいじゃないですか?
その通りだと思います。やっているうちに間違いに気づくことも多いです。

>RTLに落とす時にそれぞれ担当者がどう考えたかが知れるので、
これは重要なことだと思います。
後日に他人がメンテしなくても、自分で1年後に見たときに、動作がわかる
あるいは、そのような記述に至った理由を知ることは重要だと思います。
私は、1行毎にコメント入れています。
あるいは、コメント部分を作って
//  今回の○○の処理は、○○の方法で実施した。理由は、次の2つ。
//  1  ○○課長の指示
//  2  デバイス商社の技術の○○さんのアドバイスによる。
//  私は、○○の方法のほうが良いと思ったが、課長が言うのでやむなく。
//  後日修正するときは、注意して行うこと。
などと、書き込んでいます。


935774ワット発電中さん:2009/09/25(金) 19:51:05 ID:wadScYeW
>>934
チラシの裏じゃないんだから・・・
936774ワット発電中さん:2009/09/25(金) 21:01:54 ID:xVFNhlOR
>>929
2回同じことをすることが安全な設計になるならいいんだが、
それは1対1になってることが大前提であって、それが崩れるとかなり危険だよ。
そして、その大前提を保証するものは何もない。
あと、そうやって立ち上げたRTLって、visioありきのRTLだから可読性に欠けるものをよく見る。

TATが要求されるこの時代に、昔のスケマ設計に戻っちゃってることに気づいてほしい。
エンジニアなら、最新の方法で効率的な設計を探求したくならない?

ECOやクリティカルパスとかってのはツールで一発。visioで眺めるより見逃しないし。

タイムチャート云々以下はもちろん同意。
ただし、visio回路図だけでこれが設計仕様書だとかいっちゃう奴は消えてほしい。
文章をかけと。
937774ワット発電中さん:2009/09/25(金) 22:52:46 ID:NDLi0+df
>>935
何も書かないよりもはるかにいいし、一見脱線かつチラシの裏に近いものでも、
心情描写には当人の記憶を呼び戻す効果が強まるから「未来の自分」のための
コメントとしては結構役に立つよ。
938774ワット発電中さん:2009/09/25(金) 23:12:00 ID:VCQ0reY3
CAMみたいなものか
939774ワット発電中さん:2009/09/25(金) 23:18:59 ID:wadScYeW
未来の自分に、コメントを書こう。
http://www.japanpost.jp/mirainotegami/

まぁ言いたいことも分かるんだけど、ほどほどに
940774ワット発電中さん:2009/09/25(金) 23:23:31 ID:a5H+5VZx
>>936
1対1対応とは言うものの、図面とHDL設計では実は1階層下がっているんでないかい?
スケマ通りのロジックを作って一本一本接続を記述してるわけでもなかろう。
まぁ、“対応の検証が出来ないのはどうよ?”とは思うが。
941774ワット発電中さん:2009/09/26(土) 00:13:00 ID:72uxw14H
>>927
以前居た会社の社長がそういう図面を、VISIOとかの作図ツールじゃなくて
MAC系のDTPツール書かせるものだから、えらく生産性が低くなっていた。

それで納期が遅れたとか何とか、馬鹿か阿呆かと(-_-#
942774ワット発電中さん:2009/09/26(土) 02:41:45 ID:oCGzFXFl
DTPソフトはともかく、
VISIOってそんなにいいの? (使ったこと無いけど)
機械CADよりもいいのかな。
943774ワット発電中さん:2009/09/26(土) 02:58:14 ID:th03bRJq
ビジネス用の図を描くのに特化してるから
その手のものを描く"だけ"なら生産性は高いよ。
創造的なことと作業的なことは根本的に違うってことかな。

早く出来てもチェックという名の駄目だしで結局止められて
タイムアップで実質そのままリリースとかホントに生産性の
向上が必要なのは組織体制だったりするけどな。
944774ワット発電中さん:2009/09/26(土) 10:32:41 ID:D+mN/i/F
ISEだったら、SynthesisのとこのView RTL Schematicで、RTL記述から回路図を表示してくれるけど、それじゃだめなの?
モジュールの箱の位置を移動できれば、導線がもっと見易くなるとか思うけど、無料なWEBPACKだし仕方ない気もする。
見易いかどうかはともかくとして、RTLと回路図が一致する訳だし。
945936:2009/09/26(土) 10:54:45 ID:klbKFqfI
>>940
うちの先輩はFFとワイヤとセレクタのレベルで図面書いてた。
しかもセレクタの制御線の出所は、省略されてたり、
すごい遠くはなれた図面からやってきたりで・・・


>>944
そそ。それならいいと思うよ。Verdiとかもできるね。
でも>>929とかが言ってるのは、回路図が先でそれを描いてからRTLを書くという手順。

むかし、回路図からRTL生成ツールってあった気がするが、
そんなRTL読めたもんじゃないだろうし。
そもそもRTLの存在意義が本末転倒だしね。

946774ワット発電中さん:2009/09/26(土) 11:24:00 ID:jsX6UK9X
>>944
僕は、ISEのその回路図をよく見ている。改造した部分が、予想通りになっているか、ってね。
でも、回路図がわかりにくい。
ALTERAの方が3.14159倍見易いと思う。
947774ワット発電中さん:2009/09/26(土) 12:56:25 ID:nuCfVUPb
>>945
compassだっけ?確かそんなツールがあったような。
948774ワット発電中さん:2009/09/28(月) 21:16:36 ID:uTjDHM9x
VISIOの代わりにOpenOfficeのDrawでやってます
949774ワット発電中さん:2009/09/28(月) 21:19:37 ID:IgnRqxjl
そういうのはどうでもいい
950929:2009/09/28(月) 21:40:57 ID:eifXG5zo
>>945
回路図もRTLも抽象度を意識して書くべきだと思うよ。FFとセレクタとワイアまで落として読み易いはずがないし。
どのレベルまで落とすのが適切か?は事前に話しておくべき。その後も実際書いたものとの差分を設計レビューでさらうのがいいかなと思ってます。
できるだけ多くの人に読み易いと思ってもらえた方がいいと思うので。
951929:2009/09/28(月) 21:52:37 ID:oWdOEWxi
>>936
下手するとスケマ設計に戻るかもしれないですね。RTLのメリットが出る様に考えて書かないとだめってことです。
952774ワット発電中さん:2009/09/29(火) 10:38:48 ID:YG7fpN1k
>>946
>ALTERAの方が3.14159倍見易いと思う。
これ、ALTERAの方が分かりにくいって意味?
へんなところで文章に独自性を発揮されると真意が伝わらないわけで・・・
953774ワット発電中さん:2009/09/29(火) 19:23:36 ID:XvdFEgEo
> これ、ALTERAの方が分かりにくいって意味?
どこをどう読めば・・・
954774ワット発電中さん:2009/09/29(火) 19:26:06 ID:6DcytiL7
ただ単に数倍と書くのもつまらないから、3.14倍とつまらないことを書いただけなのに・・・
955774ワット発電中さん:2009/09/29(火) 20:29:37 ID:HGNq4K49
だよな?
この文章でどう曲解したらALTERAの方が分かりにくい方向へ解釈されるのかwww
956774ワット発電中さん:2009/09/29(火) 21:44:19 ID:1kSBuTRb
>>952のわけがわからん。
957774ワット発電中さん:2009/09/29(火) 23:33:13 ID:fjipAGzh
たまに抽象度が高いクロック系統図がリリースされることがある。
こんなのでCTS張れるかってやつ。
958774ワット発電中さん:2009/09/29(火) 23:43:46 ID:p15f9Ihx
sin(π)だと0になるので・・・
まあsinを付けるのがありなら、logを付ける奴も出てきてわけわからんことに。
959774ワット発電中さん:2009/09/29(火) 23:47:13 ID:EEBziBaV
n倍と f(n) を比較する方がわけわからん。。
960774ワット発電中さん:2009/09/30(水) 02:09:04 ID:7+10Z+iF
>>957
それでTapeoutしちゃえ
961774ワット発電中さん:2009/10/01(木) 12:04:10 ID:yb0QkO6t
スケジュールチキンとは言ったものだな・・・
ガクブル
962774ワット発電中さん:2009/10/01(木) 20:40:39 ID:Kozkf/p/
すみません、verilogで質問があります。おしえてください。

a = ( sw==1'b1 )? b : c;
d = ( sw==1'b1 )? e : f;
g = ( sw==1'b1 )? h : i;

という記述で、現在動いています。これは、SWのon/offに応じて切り替える、まるで
3連スイッチのような回路です。
ところで、同じ( sw==1'b1 )?が何回も登場しますが、もっと簡便な記述はないものでしょうか?
たとえば、
{ a, d, g } = ( sw==1'b1 )? { b, e, h } : { c, f, i }; のような感じです。

もっとも
wire x [2:0];
wire y [2:0];
wire z [2:0];

x = ( sw==1'b1 )? y : z; と書けるのは了解していますが、
変数名がxxx[2], xxx[1]とかになってしまうと、ソースが読みにくくなるので、
それぞれの信号名が生かしたいのです。そんな都合のいい記述方法はないでしょうか。
963929:2009/10/01(木) 20:56:41 ID:GOApCJX9
>>962
>{ a, d, g } = ( sw==1'b1 )? { b, e, h } : { c, f, i };

よりも、
 
>a = ( sw==1'b1 )? b : c;
>d = ( sw==1'b1 )? e : f;
>g = ( sw==1'b1 )? h : i;

の方が簡便だと思いますが。
964774ワット発電中さん:2009/10/01(木) 21:42:09 ID:aygaiehS
>>962
always @ * begin
if( sw == 1'b1) begin

か、 function でも書ける。

しかし、always で組み合わせ回路書くのを嫌う人もいるし、
3つ程度なら、元のままでいい気がする。
965774ワット発電中さん:2009/10/01(木) 22:35:00 ID:Kozkf/p/
さっそくありがとうございます。
そうですか、そのままのほうが見やすいですか。
私も慣れるようにしないといけないかも。ありがとうございます。

always @ とくれば、clockに合わせて動作する範囲だ、と思い込んでいますので
(*)も使ったことがありません。

assign 文が結構好きで、特に a = ( xxx )? b : c; が好きです。
折り返して、
  a = ( xxx )? b
   : ( yyy )? c
   : ( yyy )? d
   :      e ;
とか使ったりもします。
STARCの本には「2つまでにしとけ」と書いてありますが。

ありがとうございました。
966774ワット発電中さん:2009/10/03(土) 01:23:23 ID:NYFQ0Rb4
教えてください。

ISEの吐くメッセージで、よく見かける次のエラーメッセージがあります。

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

実は、この文章を何度読んでも、意味がわからないのです。
「あ、いつものこれか」と理解し、wire と regの代入間違いを修正していますが、
実際には、どのように訳すべき文章なのでしょうか。

具体的に上記の文章は、
「行番号122で参照したvector wire 'HOGE' は、legal reg または variable lvalueではありません」
という感じだと思うのですが、その次がわかりません。

1. vector wire
2. legal reg
3. variable lvalue

  「legal reg」のregは、registerのことだと思いますが、
  legalという単語については、いくら調べても「法的な」としか訳が見つけられません。
  でもきっと、Verilog HDLにぴったりの語訳があると思うのです。

  lvalueについては、調べてわかりました。これがなんと、「左辺値」だそうです。
  L(左) + value でlvalueでした。ちょっとビックリです。
967774ワット発電中さん:2009/10/03(土) 03:15:25 ID:uTwN1+7x
このスレの住人に英語はちょっと・・・・_
968774ワット発電中さん:2009/10/03(土) 04:40:12 ID:u79yEHhU
969774ワット発電中さん:2009/10/03(土) 08:24:14 ID:0vC3shnY
>>966
修飾の順序関係は、こう。

 Reference (to vector wire 'HOGE') is not a legal ((reg or variable) lvalue).

助詞を足して日本語の語順にすると

 vector wire 'HOGE'のReferenceはlegalなreg or variableのlvalueではありません。

あとは単語を適当に訳してくれ。
970774ワット発電中さん:2009/10/03(土) 08:42:17 ID:Tiexx/nt
Verilog/VHDL混在デザインの論理シミュレーションってどうやってます?
やっぱ ModelSim PE を買うしか無いんかな・・・。
971774ワット発電中さん:2009/10/03(土) 11:00:14 ID:FAXsQMMN
>>966
英辞郎で調べた?
4番目に「合法な、適法な」と出てくるよ。
今の場合の「法」は「文法」のこと。
つまり「文法的に正しい」という意味。
972774ワット発電中さん:2009/10/03(土) 12:40:36 ID:NYFQ0Rb4

996です。みなさん、ありがとうございました。とても参考になりました。

>>968
>多分これじゃねえの
はい、まさしくそれです。

>>969
>修飾の順序関係は、こう。
>Reference (to vector wire 'HOGE') is not a legal ((reg or variable) lvalue).
ありがとうございます。括弧でくくると、とてもよくわかりますね。
つまり、vector wire 'HOGE'の参照は合法ではない。ということですね。
「legal reg」という括りではなかったんですね。お恥ずかしい。

>助詞を足して日本語の語順にすると
すばらしいです。ありがとうございました。

>>971
ありがとうございます。
はい、アルクは愛用していますので、それで調べました。そうしたら法的なという語訳でした。
>今の場合の「法」は「文法」のこと。
>つまり「文法的に正しい」という意味。
今考えるとその通りですね。ありがとうございました。

単語の意味をその通りにしか解釈できないのは、私の勉強不足ですが、
>>969のような、修飾の順序関係をうまく読めないのも、英文の苦手な原因です。
「正しい情報は、英文データシートでないとね」とか良く言われますが、
私にとっては、「余計にわからない」です。

もう一つ教えてください。
ちょくちょく出てくる「vector wire」とは、どのように理解すればよいのでしょうか?
wireは、reg , wire のwireだと思うのですが、vectorの意味がわかりません。
アルクとかIT用語辞典とか調べましたが、ピンと来る解釈が見つかりませんでした。

  束の線? 配列の線? 大きさを持つ線? 
973774ワット発電中さん:2009/10/03(土) 12:56:35 ID:tJiByb+z
>>972
vector wireとして示される信号線は、バスじゃありませんか?
974774ワット発電中さん:2009/10/03(土) 13:04:38 ID:NYFQ0Rb4
>>973
ありがとうございます。
はい、おっしゃる通り、wire [15:0] HOGE で、バス線です。
「vector wire」とは「複数の線」という解釈でしょうか。
vectorという単語に、「複数の」という意味がある・・・・でしょうか。
すみません。
975774ワット発電中さん:2009/10/03(土) 13:39:04 ID:8/YSJ4FI
>>974
文字通り「ベクトル」だろ
ベクトルの数学的意味は何かでしらべてくれ
976774ワット発電中さん:2009/10/03(土) 14:15:57 ID:pFBchL6D
・Verilogの入門書(若しくはサイト)を見る
・使用しているツールのドキュメントを読む
ぐらいのことはしてから質問してください
977774ワット発電中さん:2009/10/03(土) 14:55:55 ID:NYFQ0Rb4
>>975
ありがとうございました。
はい、数学的なベクトルの意味は了解しています。方向と大きさをもつ物理量ですね。
vectorの対義語として、scalarがありますが、これは方向を持たない大きさです。
vector, scalar どちらの単語にも「大きさ」という意味はあるので、
複数のwireを「vector wire」、1本のwireを「scalar wire」と表すならば、
方向の意味を持つかどうかの違いだと思うのです。
ですので、「方向が、wireの複数を表現しているのではないだろう」と考え、
はてvectorとは何ぞや?という疑問に至りました。
すみません。

>>976
ありがとうございました。
さっそくご指示の通り、調べてみたところ、
XilinxのXST guideに、Nビット幅(ベクタ)、1ビット幅(スカラ)と書いてありました。
しかし、なぜ複数本のことをVECTORと言うのか、見つけられませんでした。
ありがとうございました。
978774ワット発電中さん:2009/10/03(土) 15:11:15 ID:RyA+IGUE
vectorはアルクで調べてみてください。
979774ワット発電中さん:2009/10/03(土) 16:04:22 ID:2bXCIrZJ
>>966
N88-BASIC で、Illegal function call とか出てきたのを覚えてないのか?

>>970
VCS も NC もOKじゃまいか?
980774ワット発電中さん:2009/10/03(土) 17:41:15 ID:4M3xYNHd
いまどきBASICを共通知識と思うなよ...
981774ワット発電中さん:2009/10/03(土) 20:10:35 ID:kI775zyK
BASICはいいだろ。N88とか付けるあたりは糞。
982774ワット発電中さん:2009/10/03(土) 20:13:06 ID:BkisESmZ
VBとN88は別モンでしょうからね。
983774ワット発電中さん:2009/10/03(土) 21:43:11 ID:dJEBqaXf
>>980
いまはFORTRAN 77が共通知識だよな
984774ワット発電中さん:2009/10/03(土) 21:45:20 ID:nfm61CV2
一般に数学では
複数のスカラ値の集まりであれば、それだけでベクトルと呼ぶんだよ

スカラ値が量を意味してもいいし、しなくしてもいいのと同じように
ベクトルが有向量を意味してもいいし、しなくてもいい
985774ワット発電中さん:2009/10/04(日) 03:40:54 ID:an8Y5Ojq
>>984
そうすると、なぜ「vector」という単語が、複数のwireのことを表しているのか
ますますわからなくなりますね。

あるいは、用語の由来を深く追求してはいけないのでしょうか?
986774ワット発電中さん:2009/10/04(日) 03:52:15 ID:UmhN5lyO
>>983
未だ COBOL は現役
987774ワット発電中さん:2009/10/04(日) 04:19:09 ID:4Yn9T3xL
古駄汁かよ
988774ワット発電中さん:2009/10/04(日) 14:22:33 ID:tcrTdRDF
>>985
だから、984氏がscalarが複数集まったものがwireだと教えてくれてるだろ。
今の場合はwireがscalarで、wireが複数集まったもの、例えば
wire [1:0] がvectorでしょ。
英語力とかではなくて、物事を抽象化する事が苦手なのでは?
989774ワット発電中さん:2009/10/04(日) 14:24:31 ID:tcrTdRDF
>>988
失礼。

(誤) だから、984氏がscalarが複数集まったものがwireだと教えてくれてるだろ。

(正) だから、984氏がscalarが複数集まったものがvectorだと教えてくれてるだろ。
990774ワット発電中さん:2009/10/04(日) 16:23:46 ID:oLKg+dN0
素朴な疑問、おしえてください。

verilogで、for()というのがあります。
配列とかメモリの初期化に使用するみたいです。
合成したとき、このfor()は実際にどのような動きをするのでしょうか?

例えば、メインクロック100MHzの回路の記述の中にfor()で10回繰り返すような記述を合成した場合、
・次のクロックまでの間に、クロックの10倍の早さ(1GHz)でfor()内が処理される。←違うと思います。
・それ以降のメインクロック10個期間で処理される。他の処理はそれまで(100ns)待たされる。
・その他
宜しくご教示お願いします。
991774ワット発電中さん:2009/10/04(日) 19:22:21 ID:M67/9cWw
> ・次のクロックまでの間に、クロックの10倍の早さ(1GHz)でfor()内が処理される。←違うと思います。
それに似た結果かもな。

> ・それ以降のメインクロック10個期間で処理される。他の処理はそれまで(100ns)待たされる。
非同期回路だったらどうする木田。

> ・その他
正解。
992774ワット発電中さん:2009/10/04(日) 23:00:48 ID:hTx/hP12
>>990
 for文で合成が前提なら時間軸上での繰り返しを指定するものではないよ。
データバスなんかの回路をイメージするといい。8ビットのバス全てが同じ
回路を構成しているとき、各ビットごとに回路を記述するのが面倒なので、
for文で繰り返し部分を記述する。
993774ワット発電中さん:2009/10/05(月) 03:09:58 ID:lQAV833x
990です。
>>991
>非同期回路だったらどうする木田。
仰るとおり、たしかにマズイですね。for()のイメージが、まったくわかりません。

>>992
ありがとうございます。
>for文で合成が前提なら
なるほど、シミュレーション用の言葉ですか。納得です。

>各ビットごとに回路を記述するのが面倒なので、for文で繰り返し部分を記述する。
ということは、次のような理解で良いでしょうか?
・for()は、コンパイラーに対して、例えば
「forで簡単に書いてあるけど、<この回路>が64回路分あると思ってくださいよ」と
 依頼する時に使用する記述。
・そのため、実際にFPGA内に繰り返し回路が配置されるわけではないので、回路はイメージできない。
  (イメージするものではない)


994774ワット発電中さん:2009/10/05(月) 05:16:51 ID:Semnbr3d
reg [7:0] hoge [0:63];

for(i=0; i<64; i=i+1) hoge[i]<= 0;



hoge[0]<= 0;
hoge[1]<= 0;
:
hoge[63]<= 0;

は、どっちがいいかってだけの話じゃね?
995774ワット発電中さん:2009/10/05(月) 07:27:41 ID:0L2n5v+7
パラメタライズを推し進める時には重宝しますね。>for
上位階層から与えるparameterを変更するだけで中の記述を使い回せるので。

parameter WIDTH = 8;
parameter NUM = 64;

reg [WIDTH-1:0] hoge [0:NUM-1];

for(i=0; i<NUM; i=i+1) hoge[i]<= 0;
996992:2009/10/05(月) 08:28:26 ID:5ZO63/dI
>>993

>>for文で合成が前提なら
>なるほど、シミュレーション用の言葉ですか。納得です。

シミュレーションにも使えるが、合成の場合にはの意味。
従って、時間的な遅れを表現するものではない。

>>各ビットごとに回路を記述するのが面倒なので、for文で繰り返し部分を記述する。
>ということは、次のような理解で良いでしょうか?
>・for()は、コンパイラーに対して、例えば
>「forで簡単に書いてあるけど、<この回路>が64回路分あると思ってくださいよ」と
> 依頼する時に使用する記述。
>・そのため、実際にFPGA内に繰り返し回路が配置されるわけではないので、回路はイメージできない。
>  (イメージするものではない)

 回路が64回路あるということは、実際の回路として64回路実装される。つまり、繰り返しの
記述を圧縮している。
 >>994の説明そのもの。
997774ワット発電中さん:2009/10/05(月) 10:24:54 ID:4m4RzRpS
forの、合成について言うなら、
C言語で言うところの プリプロセッサ命令や、♯defineのイメージ。
コンパイル前に終了してしまう話ね。
998774ワット発電中さん:2009/10/05(月) 11:18:55 ID:EAE19/Ui
>>993
> 依頼する時に使用する記述。
>・そのため、実際にFPGA内に繰り返し回路が配置されるわけではないので、回路はイメージできない。
>  (イメージするものではない)

繰り返しというより、並列記述じゃないかなぁ。
あと、回路はイメージしないとだめだと思う。

もうちょっと抽象度の高い言語だとイメージは難しいけど、
verilogなら、意識しないと、意図しない回路が生成されたときに
気づかないことになる。
999774ワット発電中さん:2009/10/05(月) 11:25:29 ID:zz9999Fg
制御文と回路記述がごっちゃに論議されてるんでね?
1000774ワット発電中さん:2009/10/05(月) 12:35:38 ID:pC32x4wK
>>999
ID がカッコよすぎるぜ!

でも言ってることは違うと思うYO!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。