【Verilog】記述言語で論理設計 Project2【VHDL】
■ このスレッドは過去ログ倉庫に格納されています
0001792= ◆YMO/ALTERA
04/09/03 12:21ID:p+kby74r安価で入手できるようになってきました。
このスレが目に入ったおまえ! HDLで何か作って遊んでみませんか。
日曜工作のHDL書き、学生さん、プロの方、カキコお待ちしております。
関連情報は >>2-10 あたり。
前スレ
【Verilog】プログラムで作る回路 Project1【VHDL】
http://science3.2ch.net/test/read.cgi/denki/1072330555/l50
0703694
2005/05/27(金) 11:31:07ID:QHEYeCXAconstantにしているのは、複数ソース内で利用するために
「パッケージでconstant宣言!」しか方法が分からなかった為です。
どんな方法でも、複数ソース内で利用できれば何でも良いのですが・・・
0704774ワット発電中さん
2005/05/27(金) 19:23:34ID:1eReoTOhlibrary ieee;
use ieee.std_logic_1164.all;
package SystemLib is
constant SystemNumber : integer := 0 ;
function TABLE_A return std_logic_vector;
end SystemLib;
package body SystemLib is
function TABLE_A return std_logic_vector is
variable var: std_logic_vector(3 downto 0);
begin
case (SystemNumber) is
when 0 => var := "0011" ;
when others => var := "1010" ;
end case;
return var;
end;
end SystemLib;
0705774ワット発電中さん
2005/05/27(金) 22:37:59ID:kod8k8poconfiguration
0706タスク
2005/05/30(月) 20:51:28ID:ZVhUdiy8もちろん、お金あげるから
0707774ワット発電中さん
2005/05/30(月) 20:54:16ID:LiJvs7xQ0708俺様 ◆f0ugTrYQRI
2005/05/30(月) 21:19:08ID:9Ye+LOJI0709774ワット発電中さん
2005/05/31(火) 00:20:20ID:0StKJsP0そんな日本語で論文を書くのか
0710774ワット発電中さん
2005/05/31(火) 09:49:01ID:VlzJgi5eそして2chは日本語で書くもんだ
0711694
2005/05/31(火) 19:14:43ID:t3NT+PFo704さんの方法で実現できそうです。
>>705さんもコメントありがとうございました。
ググッてみたのですが、答えらしき所まで辿り着きませんでした。
情報を生かす事ができずにすいません。
皆さんのおかげでスッキリできそうです。では。
0712774ワット発電中さん
2005/06/03(金) 05:29:36ID:dLroBs/ghttp://find.2ch.net/?STR=%A3%B1%A5%C1%A5%C3%A5%D7&COUNT=10&TYPE=TITLE&BBS=ALL
0713774ワット発電中さん
2005/06/13(月) 17:39:58ID:G4/tYFUUヲーニング出まくりなのだが、きれいに書き直して消せるものなのか
0714774ワット発電中さん
2005/06/13(月) 21:28:35ID:AYy9lSvK0715774ワット発電中さん
2005/06/13(月) 22:39:33ID:BQt4dmam仕事なら知ってたほうが良いとオモフ。
0716774ワット発電中さん
2005/06/14(火) 08:58:50ID:cLnSsTT4でも、単なるパラメータという扱いもできなくなってしまっているように思える。
なんか、もう電気屋の仕事じゃないような気がしてきてちと悲しい。
0717716
2005/06/14(火) 09:01:53ID:cLnSsTT4× でも、単なるパラメータという扱いもできなくなってしまっているように思える。
○ でも、単なるパラメータという扱い方になってきてしまってるようにも思える。
訂正です。
皆さんはどう思いますか。私が単なるオサンだからでしょうか。
これで、Cベース設計がデフォの時代がきたら…
0718774ワット発電中さん
2005/06/14(火) 12:44:13ID:cIkGHkKcアナログから入ったオヤジだが、俺もFPGAは電気と違う気がしてる。
でも理論はFPGAに持って来れるので、昔やった事がまるっきり無駄とは思っていない。
昔苦労して調整して作ったフィルターとかが、信号処理回路作ってFPGAに入れられた時は
マジ感動した。 調整いらねーじゃん! って。
>>714
それでも仕事はできるが、今の状況では選択肢がかなり狭められるような気がする。
将来的には、ハードを理解していないFPGA屋が普通になっていくと思うが・・・
0719774ワット発電中さん
2005/06/14(火) 17:12:47ID:CJ2IsWTN100MHzくらいまでが安心して使える周波数で、1GHzは多分無理。
この周波数になるとメニーコアとかDSPアレイの方が適してるような気がしてる。
自由度は高いが、配線遅延がホントうざすぎる。
一人の信号処理屋が、FPGAもDSPも使いこなすのは負担が大きいよな。
0720774ワット発電中さん
2005/06/14(火) 20:19:54ID:uqWNI1k4言語書ければそれでできるんじゃないかって 以前 文系のやつがバリバリやってるってのみたことあるし
0721774ワット発電中さん
2005/06/14(火) 20:29:00ID:oPw+GkzOディジタル回路が理解できればHDLを習得して回路を書くことはできるだろうが、
例えばFFTを回路に起こしてくれと言われたら文系君にはできない。
タイムチャートまでしっかり仕様書に書いてもらって下位設計としてHDL専念するのであればできると思うけど、
公的スペックをポンと渡されて上位設計->下位設計に及ぶような仕事は多分無理
0722774ワット発電中さん
2005/06/14(火) 22:53:55ID:+fL0y+eeARMもド素人が設計したって話しだし。
0723774ワット発電中さん
2005/06/14(火) 23:07:39ID:uqWNI1k4ソフトもハードも使いこなせる人材は少ない
0724774ワット発電中さん
2005/06/14(火) 23:11:50ID:NwrQL4xfARMは電気分野のド素人かもしれないが、アーキテクチャや情報理論、
論理設計に関してはそれなりのプロだろ。完全ステートマシンを目指してたとか言ってたし。
で、ASICでもライブラリ弄って特殊なインターフェイスを実現するつもりなら
それなりに電気の知識はいるだろうと思われ。
0725774ワット発電中さん
2005/06/14(火) 23:47:37ID:+fL0y+ee半導体設計のド素人だったみたい。
ttp://www.cqpub.co.jp/hanbai/pdf/MIFZ200310/MIFZ200310_TECHI18.pdf
0726774ワット発電中さん
2005/06/15(水) 02:06:35ID:5d5Jo6UEそういうとこを出た奴がみんな使えるかどうかはまた別問題だが、探せば中には優秀な奴もいるんじゃない?
0727774ワット発電中さん
2005/06/15(水) 12:16:44ID:x9MMD2hmと思ったけど、設計担当範囲の話になるのか。
0728774ワット発電中さん
2005/06/15(水) 12:47:22ID:iN37Q4cD熱とかジッタとかスキューとかファンイン・アウトとか終端とかを気にせず設計した
オープンハードウエア界の巨匠は存在したけどねw
0729774ワット発電中さん
2005/06/15(水) 23:37:00ID:s1SJavJl情報科学とか 要は社会学みたいなことやるんじゃないの?
二年ぐらい前に 一からFPGA教えますみたいな派遣あったような記憶あるけど
採用試験にIQテストってのがあったW まあ確かにこういうのはIQの高さに比例するかもしれない
0730774ワット発電中さん
2005/06/15(水) 23:51:40ID:Z2649FH3でもそれが使い物になる代物に合成される様になるにはまだまだ時間がかかるだろうね。
根底はいつも泥臭い物、これは多分これから先も変わらないよ。
0731774ワット発電中さん
2005/06/15(水) 23:55:18ID:i1/JnM/N0732774ワット発電中さん
2005/06/16(木) 00:04:16ID:7g3ZrvNOハードにより近いって意味だ>うちのソフト屋
0733774ワット発電中さん
2005/06/16(木) 01:47:52ID:zNol4mg5それはトヨ(以下自粛
0734774ワット発電中さん
2005/06/16(木) 20:11:37ID:QCmadF770735774ワット発電中さん
2005/06/17(金) 12:10:37ID:4Ezuob99とてもじゃないがデバイス選べない。
FPGAの発熱がすごくて基板が変色したこともあった…
小規模ならなんも気にせんけど
0736774ワット発電中さん
2005/06/19(日) 01:16:51ID:tqujOr4u0737774ワット発電中さん
2005/06/19(日) 02:58:43ID:J5C8xv0N0738774ワット発電中さん
2005/06/20(月) 17:10:54ID:4/+H9ZYi0739774ワット発電中さん
2005/06/21(火) 20:29:05ID:O3UjfOs8・暗黙の了解で、チーム内では全角コメント禁止なんだけど、これはやはり常識なんでしょうか。
・全角コメントで不具合出た合成ツールってあるんですか?
この間、ソフト屋さんのソースを眺める機会があったのですが、
全角コメントばっかりで羨ましかったです。
ソフト屋「だって、デバイスもツールも国産(Renesas)だから」
0740774ワット発電中さん
2005/06/21(火) 20:39:29ID:aEPqYliu0741774ワット発電中さん
2005/06/21(火) 21:23:10ID:O3UjfOs80742774ワット発電中さん
2005/06/22(水) 07:48:28ID:JWaSnhuAつーか、全角コメントが羨ましいって心理 本気で理解できないのだが なぜ?
0743774ワット発電中さん
2005/06/22(水) 12:15:43ID:VcF7mubI今はどうか知らんが、ソースコードに日本語を含めないのはソフトでも常識だ。
0744774ワット発電中さん
2005/06/22(水) 12:18:22ID:BQwKJBc60745774ワット発電中さん
2005/06/22(水) 12:42:23ID:YtB4QzpGへっそうなの? HDL記述に 2ByteCode 入れた事は無いが、Cには良く入れてる。
上司の意向で、関数の頭に日本語コメントするテンプレが付いてるのがデフォなもので・・・
もしかして、こんなソースを外に出すと恥ずかしい?
0746774ワット発電中さん
2005/06/22(水) 15:40:27ID:VcF7mubIソフトでも日本語対応になってないツールも山ほどあるってこった。
わかってから対応するんじゃなくてコメントに日本語使わないとか、
ディレクトリ関係に日本語やSpaceを使わないのは当然の防御策
0747774ワット発電中さん
2005/06/22(水) 15:43:12ID:bq3eWW0g0748745
2005/06/22(水) 19:38:02ID:YtB4QzpGレスサンクス。 他ツール使った時の防衛策ですね。
>>747
すんません。誤解与えちゃったみたいですね。 私は >>739 さんとは別人です。
>>743 さんのカキコに、つい横から反応しちゃったもので・・・ HDL記述の2byteCodeの件は知ってます。
0749774ワット発電中さん
2005/06/22(水) 23:04:22ID:Hha79Rv9それでカッコイイ!!っていうのも理解できん
0750774ワット発電中さん
2005/06/22(水) 23:24:50ID:66LG1gHp0751774ワット発電中さん
2005/06/22(水) 23:29:06ID:wqXcHBAC正確性を期すなら仕様書にきっちり書け
0752774ワット発電中さん
2005/06/22(水) 23:38:21ID:3JyUAAcLclk _| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|
reset ____________| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
q _____________| ̄|_______________
上のようなクロック入力に対してリセット後1クロックのみ検出する信号qの作り方教えていただけませんか?
宿題ができずに困っています。
お願いします。
0753752
2005/06/22(水) 23:41:34ID:3JyUAAcLリセット後最初のclkを1パルス分のみ検出したいのですが。
お願いします
_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄| clk
____________| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ reset
_____________| ̄|_______________ q
0754774ワット発電中さん
2005/06/23(木) 00:06:54ID:kGTJLsAvうーん、これは難しい問題だな。
そもそも こんな難しいのをVerilogで書けるのかぁ?
0755774ワット発電中さん
2005/06/23(木) 00:30:37ID:uHTIDPbdどこまで調べてどこまで考えたのか晒せや
0756774ワット発電中さん
2005/06/23(木) 01:37:16ID:ssvNblqJ転がってませんか?
フリーだと嬉しいんだけど…
0757774ワット発電中さん
2005/06/23(木) 03:34:52ID:ChU/fL9Oalways@(posedge clk, negedge res ) begin
if( !res ) begin
counter <= 0;
gate <= 0;
end else begin
if( !counter ) begin
counter <= counter + 1;
gate <= 1;
end else begin
gate <= 0;
end
end
end
リセット後2クロック目でひげが出るかな?
0758774ワット発電中さん
2005/06/23(木) 05:14:35ID:BHwfbCsYそれだけでは仕様が不十分
resetは非同期リセットと同期リセットのどっち ?
非同期の場合、clkの立ち上がりと resetの立ち上がりが
同時に起きた場合 qをどう出力すればよいか ?
またresetの立ち上がりから qの highパルスを出力する
まで何クロックのディレイが許容されるのか ?
qはそれ以降の回路でクロック信号として使用されるのか ?
qは clkの highと同じ幅でなくてはならなのか ? 1 clk周期
ではいけないのか ?
さあ、答えれ
0759774ワット発電中さん
2005/06/23(木) 06:50:18ID:qlXt37Qj0760774ワット発電中さん
2005/06/23(木) 11:19:49ID:2f3SJtDp0761774ワット発電中さん
2005/06/23(木) 12:14:47ID:TmPaPWlD0762757
2005/06/23(木) 15:50:51ID:5qFT/Ks/module OneShot( clk, res, gate, gate2, oneshot);
input clk, res;
output oneshot;
output gate, gate2;
reg gate, gate2;
reg [3:0] counter;
assign oneshot = clk & gate & gate2;
always@(posedge clk, negedge res ) begin
if( !res ) begin
counter <= 0;
gate <= 0;
end else begin
if( !counter ) begin
counter <= counter + 1;
gate <= 1;
end else begin
gate <= 0;
end
end
end
always@(negedge clk, negedge res ) begin
if(!res ) begin
gate2 <= 0;
end else begin
if( counter ) begin
gate2 <= 0;
end else begin
gate2 <= 1;
end
end
end
endmodule
立下りでgate2をOffにした。
論理合成はXST、スパ3で273MHzで動くそうな。タイミングシミュレーションもOK
0763757
2005/06/23(木) 16:01:23ID:5qFT/Ks/oneshotが出力
0764774ワット発電中さん
2005/06/23(木) 16:35:32ID:fpaEQY/+条件はとりあえずパルスは1クロックだろうという事で設計してみました。
entity plus is
Port (clk : in std_logic;
rst : in std_logic;
one_plus: out std_logic
);
end plus;
architecture Behavioral of plus is
signal mode : std_logic;
begin
process(clk)
begin
if(clk = '1' and clk'event) then
if(rst = '0') then
mode <= '0';
one_plus <= '0';
else
if(mode = '0')then
one_plus <= '1';
mode <= '1';
else
one_plus <= '0';
mode <= '1';
end if;
end if;
end if;
end process;
end Behavioral;
0765774ワット発電中さん
2005/06/23(木) 16:48:58ID:pAFX2Btt0766774ワット発電中さん
2005/06/23(木) 16:57:16ID:fpaEQY/+男は黙って答えを書く。
0767774ワット発電中さん
2005/06/23(木) 18:45:47ID:TmPaPWlDPort (clk : in std_logic;
rst : in std_logic;
one_plus: out std_logic
);
end plus;
architecture Behavioral of plus is
signal mode : std_logic_vector(1 downto 0);
begin
process(clk)
begin
if(clk = '1' and clk'event) then
if(rst = '0') then
mode <= "00";
else
mode <= mode(0) & rst;
end if;
end if;
end process;
one_plus <= mode(0) and not mode(1);
end Behavioral;
0768752
2005/06/24(金) 03:32:55ID:9W82ArECVerilogできねえ奴はスッコンデロ。
アフォか?ホンマに
0769774ワット発電中さん
2005/06/24(金) 05:26:55ID:SF7gkNx80770774ワット発電中さん
2005/06/24(金) 07:23:03ID:LMTTDyXo色んな機能が動かなくないですか?チュートリアルを見てやりだしたんだけど
snapshotとか全然効かないし、timing reportが出てこない。
0771774ワット発電中さん
2005/06/24(金) 09:02:56ID:WGCpiX+W0772774ワット発電中さん
2005/06/24(金) 09:50:15ID:TWmzq/xc大事なのはやり方を覚えることなんだし。
簡単な例だし、ちょうどイイ機会じゃないか?
0773752
2005/06/24(金) 11:50:15ID:4zIlwy/D嫌だね。
お前らみたいに下請けの零細企業になんか就職する気はさらさらないから、両方こなす必要なんてまったくない。
もう大手に就職が決まってるんだよ。まぁ、お前らに仕事振ってやるからありがたく思えよ。
0774774ワット発電中さん
2005/06/24(金) 12:15:19ID:SF7gkNx8おまえは研修期間に逃げ出すだろ、どうせ。
っていうか、おまえの上司になる人間がこのスレにいるかもよw
0775774ワット発電中さん
2005/06/24(金) 12:18:12ID:xbY7Umqv0776774ワット発電中さん
2005/06/24(金) 12:21:15ID:7PgQ3B9c偽者な悪寒
最近質問者に成りすますアホをよくみかけるキガス
0777774ワット発電中さん
2005/06/24(金) 12:40:44ID:HdLZliaP0778752
2005/06/24(金) 12:46:54ID:4zIlwy/Dクソ宿題だと?
じゃ、コード晒せ。それも出来ずにお笑いなんだよアホが!
0779774ワット発電中さん
2005/06/24(金) 14:37:05ID:SF7gkNx8いいたい意味がわからん。
774(俺)は773に向けて書いたんで、752になりきろうとか思ってないんだが。
0780774ワット発電中さん
2005/06/24(金) 14:54:35ID:nloQe5rE0781774ワット発電中さん
2005/06/24(金) 15:36:58ID:vu0ro+8Yあの超絶ワケワカランAAではサッパリ?だ
0782774ワット発電中さん
2005/06/24(金) 16:22:12ID:1SWoqVpN0783774ワット発電中さん
2005/06/24(金) 18:12:16ID:TWmzq/xc方法がわかってるなら何でも書ける。わかんなきゃ何やってもダメ。
宿題は考えてやるんだよ。考えるのは頭。頭は生きてるうちに使う物だ。がんばれ。
0784774ワット発電中さん
2005/06/24(金) 18:18:35ID:1SWoqVpN何をわけわからんこと書いてるんだ?
お前こそがんばれや。
0785774ワット発電中さん
2005/06/24(金) 19:50:19ID:SF7gkNx80786774ワット発電中さん
2005/06/24(金) 20:56:08ID:pOB0xwE8そんなもん無くても構わないだろ、本人が宿題っていっているんだし。
0787774ワット発電中さん
2005/06/24(金) 21:45:43ID:4PHoRlc30788sage
2005/06/24(金) 23:43:12ID:N9s+7dXzreg ff1, ff2;
always@(posedge clk or negedge xrst)
if(!xrst)begin
ff1<=1'b0;
ff2<=1'b0;
end
else begin
ff1<=datain;
ff2<=ff1;
end
assign q=~ff2 & ff1;
endmodule
ここまで書いてて気づいた。
入力はresetかー。こりゃ、俺にははかけないや。
だれか答えを俺にも教えて。
0789774ワット発電中さん
2005/06/25(土) 00:28:47ID:Il+q3Oehinputclk, xrst;
outputq;
regq;
regq_mask;
always @(posedge clk or negedge xrst) begin
if (!xrst)
q <= 1'b0;
else if (xrst == 1'b1 && q == 1'b0 && q_mask == 1'b0)
q <= 1'b1;
else
q <= 1'b0;
end
always @(posedge clk or negedge xrst) begin
if (!xrst)
q_mask <= 1'b0;
else if (q == 1'b1)
q_mask <= 1'b1;
else
q_mask <= q_mask;
end
endmodule
0790758
2005/06/25(土) 01:50:29ID:RRAZhokE実装することはできないんだが、本物の >>752 は
どこ行った ?
しょうがないからとりあえず、以下の仮定をする。
(1) resetは clkに非同期。
(2) clkの立ち上がりとresetの立ち上がりが同時に
起きた場合 (正確には、使用するフリップフロ
ップの setup timeと hold timeの間に resetの
立ち上がりがあった場合)は出力 qはそれ以外の
場合より遅れてもよい。
(3) resetの立ち上がりから qの highパルスまでは
できる限り短い時間で出力すること。
(4) qはそれ以降の回路でクロック信号として使用さ
れない。
(5) q の high幅は 1clk周期とする。
以下次号
0791758
2005/06/25(土) 01:51:25ID:RRAZhokE(6) resetにグリッチはないものとする。
(7) モジュール名は mkpulseとする。
(8) Verilog-HDL (RTL)で記述すること。
(9) 負論理なのに resetという名前はいやらしいが、
そういう仕様なので従う。
以下次号
0792774ワット発電中さん
2005/06/25(土) 01:53:01ID:TsEjQbYg0793758
2005/06/25(土) 01:55:27ID:RRAZhokEreset,
clk,
q
);
input reset; // Active-low asynchronouse reset
input clk; // Using positive edge
output q; // Pulse width is one clock cycle
reg delay1reset;
reg delay2reset;
reg delay3reset;
// Synchronize asynchronous reset signal
always @(negedge reset or posedge clk) begin
if (~reset)
delay1reset <= 1'b0;
else
delay1reset <= 1'b1;
end
always @(posedge clk) begin
delay3reset <= delay2reset;
delay2reset <= delay1reset;
end
// Make one clock cycle width pulse for rising edge of delay2reset
assign q = ~delay3reset & delay2reset;
endmodule
以下次号
0794758
2005/06/25(土) 01:56:06ID:RRAZhokE仮定をしたが、今のところそのような指定はない。
よって resetは clkに同期していると仮定することも
できる。
すると、以下次号
0795758
2005/06/25(土) 01:58:27ID:RRAZhokEreset,
clk,
q
);
input reset; // Active-low synchronouse reset
input clk; // Using positive edge
output q; // Pulse width is one clock cycle
reg delay1reset;
always @(posedge clk)
delay1reset <= reset;
// Make one clock cycle width pulse for rising edge of reset
assign q = ~delay1reset & reset;
endmodule
以上
0796774ワット発電中さん
2005/06/25(土) 02:17:58ID:qLwyTd700797火魔人
2005/06/25(土) 04:37:57ID:4D+YN02Ainitial begin
q = 1'b0;
end
always @(posedge reset) begin
@(posedge clk) q = 1'b1 ;
@(posedge clk) q = 1'b0 ;
end
合成できる物って言ってなかったから・・・
0798774ワット発電中さん
2005/06/30(木) 20:38:43ID:cTpDojFz`define STATE1 3'b000
と
parameter STATE1 3'b000
はどう使い分ければいいのでしょうか?
parameterだとモジュールごとに同じのを書かないとだめみたいだし、
`defineだとレオナルドでは警告がでたし、
同じ定義を複数のモジュールやファイルで共用はできないのでしょうか?
0799774ワット発電中さん
2005/07/01(金) 11:46:24ID:Gq1lU/Xfparameterを別のファイルに書いて、`includeで読み込むようにしてたよ。
今はVHDLなんで使ってないが。
0800774ワット発電中さん
2005/07/01(金) 18:00:38ID:4oZSX0ys0801774ワット発電中さん
2005/07/01(金) 19:29:01ID:UB9KQarK0802774ワット発電中さん
2005/07/01(金) 21:09:25ID:4oZSX0ys■ このスレッドは過去ログ倉庫に格納されています