« 意外と自由に使えるピン数が少ない | トップページ | 12bitパラレルDAコンバータTLV5639 »

2014年7月 5日

SIN波を発生されるVHDLコード

SIN波を発生されるVHDLコード

を書いています。

5bitsinwave

振幅は5bit、時間軸は20サンプリングのSIN波。

7bitsinwave

振幅は7bit、時間軸は20サンプリングのSIN波。

こんなレベルの荒い発生器を予定しています。

純2進コードのDAコンバータに最上位ビットから必要ビットを接続予定です。

1999年に

アルテラ社のFPGA開発環境

MAX+PLUS II Version 9.1

を60万円で購入して、

Dscf0415

VHDLコードで、しばらく論理回路開発をしていた。

それから、10年以上、遠ざかっていたところ、

今は、QuartusII Version 14.0が最新。

無料。

ALTERA社のWEBからダウンロードできます。

さて、

「モーションおやじ」もロジック開発に参加するテーマがあって、

久々に論理回路開発をしています。

ところが、シミュレータが「ModelSim」に変わってしまったので、

シミュレーション方法がまったくわからない。

WEBトレーニングビデオをダウンロードして、まず、視聴。

それから、「ModelSim」を使ったが、カウンタが動かない。

基本のAND回路を作ると動く。

4時間経過して、やっとわかりました。

RESETを1回入力しないと、何も表示されないのね。

単純な話でした。

時間かかったあ。

20進カウンタ値をデコーダして、SINデータをIF文で、出力するVHDLコード。

「t_sin.vhd」をダウンロード

組み合わせ回路が数珠つなぎになるので、動作周波数が上がらない良くないコードです。

時間をかけられないので、許してね。

出力部にグリッジを取るDFFを入れるつもりです。

■リンク: 「モーションおやじ」のノウハウ

プライムモーション社

リアルタイムWindows 40軸超高速マシンコントローラ

|

« 意外と自由に使えるピン数が少ない | トップページ | 12bitパラレルDAコンバータTLV5639 »

技術」カテゴリの記事

コメント

いろいろ詳しいですね。
情報ありがとうございます。
かなり設計のご経験があると推測します。

周期ジッタ0.5%くらいの
100kHzの正弦波を作りたいと考えています。
ローパスフィルタをかけるので、4bitDAくらいの出力で、高調波があってもよいです。

最低でも1.6MHzくらいのDAデータ更新レートになります。

モーションおやじ

投稿: モーションおやじ | 2014年7月 8日 20時51分

BRAMはブロックRAMです(省略語を使うのはXilinxだけかもしれません)。FPGAではロジックエレメントが小さなRAMで実装されているのでSIN波形生成回路を効率的に実装できると思います。要はCで書くよりアセンブラみたいな世界の話ですが、最近の論理合成ツールは賢いので作成された組み合わせ論理でも同じ結果に落ちているかもしれません。

EPLDというのは所謂CPLDのことだという認識ですが、だとするとFPGAと違ってAND-ORの配線リソースが合成されるので今回の記述方法になると思います。メモリ動作合成はCPLDでは上手くいかない気がします(FPGAしか使ったことがないので分かりません)。

周波数や揺らぎの許容値が分かりませんが、パラレル出力で良いのなら8ビットマイコンのタイマ割り込みで順繰りにSIN値を内部ROMから取り出すほうが簡単で、小規模回路なのでは?AVR TINYやPIC16Fなら200円もかからないし手半田も可能なTSSOPパッケージで8ビットが2ポート取り出せるものや内部クロックで動作するものがあります。

SIN波形以外の回路も組み込むことを考えられていらっしゃるからPLDなんでしょうけど。

投稿: | 2014年7月 8日 02時04分

コメントありがとうございます。
素直にうれしいです。

BRAMは、ブロックRAMのことでしょうか?

できるだけ小さな実装面積で実現したいので、RAMがないようなEPLDと小さなDAだけになると思います。

DA付きの小型マイコンという方法もありかなと思いますが、DA更新周期は、どれくらい短くできるのか、未調査です。ソフト開発環境習熟もありますし、、、

また、気が向いたら、コメントくださいね。

モーションおやじ。

投稿: モーションおやじ | 2014年7月 7日 20時00分

ROMやRAMの動作記述をすればBRAMに自動で落ちるので、それの初期値としてSIN値でテーブルを埋めれば手堅いです。それほどコードも難しく無いと思います。

投稿: | 2014年7月 7日 14時41分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 意外と自由に使えるピン数が少ない | トップページ | 12bitパラレルDAコンバータTLV5639 »