2017年12月17日日曜日

[機器][自作][Raspberry Pie] Carte Blanche II


Carte Blanche II で FPGA の勉強
記事をクリップするクリップ追加
書庫FPGA
カテゴリその他コンピュータ
2017/4/2(日) 午後 5:48
Carte Blanche II をまともに使えるようになるため、FPGAの勉強を始めてみます。
教科書はこれを使います。
『回路図で学べるFPGA入門』
http://amzn.asia/7GUWWzA
この本では、Basys2 Spartan-3E FPGA Board を使っていますが、
Carte Blanche II は Spartan-3AN です。
まずは、3章のプッシュスイッチを押すとLEDが点灯する回路を作ってみます。
Family: Spartan-3A and Spartan3AN
Device: XC3S400AN
Package: FGG400
Speed: -4
入力ポートと出力ポートを直結する単純なものです。
ピンアサインは、LEDにつながる出力ポートをZIFソケットの1番ピン (TT_PIN1)、プッシュスイッチにつながる入力ポートをZIFソケットの2番ピン (TT_PIN2)としました。
外付けの回路で、LEDとプッシュスイッチをつなぎます。
bitファイルの書き込みは、Papilio Loader を使います。
Windows10ではドライバのインストールは不要です。が、それを忘れていて、無理にインストールしたため、何度もドライバを入れ直すことになりました。
正常にインストールできれば、このように書き込めます。
動きました。
        
Apple IIGS
https://blogs.yahoo.co.jp/ushi_cow
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=10
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=23
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html
             
             
             
              





Carte Blanche II で FPGA の勉強








Carte Blanche II で FPGA の勉強 
記事をクリップするクリップ追加
書庫FPGA
カテゴリその他コンピュータ
2017/4/8(土) 午後 0:50
■VHDL
4章の VHDL / Verilog HDL での記述をやってみます。
新規プロジェクト作成
HDLモジュール作成
ポート設定
コード修正
ピン・アサイン
インプリメント
Verilog HDL もコードの書き方以外同じです。
コード
インプリメント
Papilio Loader でダウンロード
普通に動きました。
■論理素子 
5章基本回路でいきなりハマりました。
回路図から作る場合、New Project で Preferred Language を Verilog にしていると、論理合成で Warning が出てしまいます。あとから VHDL に変えてもダメなようです。
イメージ 1
最初から、VHDLで作ると大丈夫なようです。
イメージ 2
HDLで直接記述する場合は Verilog でも Warning は出ません。
https://www.xilinx.com/support/answers/23290.html
■プリミティブを直接記述する方法
本の通りにやっているのですが、うまくいかないところがあります。
5.2.2 HDLの3つの記述方法
XOR4_VHDL.vhd
Spartan-3Aのライブラリガイド(HDL用)を見ても XOR2 はない。
ライブラリガイド(回路図用)には「このエレメントは回路図でのみ使用できます。」と記載されている。
まず、教科書通り。
parse error, unexpected COMPONENT
component を、architecture の後に移動。
parse error, unexpected OPENPAR, expecting MAP
イメージ 2
port の後に map を追加。
Instantiating black box module .
下記コメントアウトを解除し、component宣言を削除。
library UNISIM;
use UNISIM.VComponents.all;
エラー、ウォーニングともなくなりました。
Verilog の方は、教科書通りで大丈夫でした。
XOR3_Verilog では、
module XOR3_VERILOG(A, B, C);
とあるが、ウィザードで生成する Verilog2001 以降の記法では、
module XOR3_VERILOG(
とする必要かある。
■算術演算 
教科書に特に説明ない部分の覚書
正誤表が公開されていますが、これも間違っているようです。
これは古い本の正誤表でした。
文法がまだよくわかっていないので、以下を参考に確認しながら進めます。
VHDLの文法
Verilog HDLの文法
5.2.3 マルチプレクサ
表 5.25 で signal というのが突然出てきます。
内部信号の定義のようです。
内部参照のため信号宣言
5.2.5 比較器
表 5.31 で use IEEE.std_logic_unsigned.all;
が加わっていますが、なくても問題ないようです。
New Source の Wizard で、Bus を設定すると、
イメージ 1
VHDL では、std_logic_vector が定義されます。
entity COMP2_VHDL is
    Port ( A : in  STD_LOGIC_VECTOR (1 downto 0);
           B : in  STD_LOGIC_VECTOR (1 downto 0);
           EQ : out  STD_LOGIC);
end COMP2_VHDL;
Verilog では、こうなります。
    input [1:0] A,
    input [1:0] B,
    output EQ
5.2.7 加算回路
use IEEE.std_logic_unsigned.all がないと、
表 5.39 の 32行目の + でエラーとなります。
        
Apple IIGS
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=10
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html?m=lc&p=23
https://blogs.yahoo.co.jp/ushi_cow/MYBLOG/yblog.html
             
             
             
        











Carte Blanche II で FPGA の勉強 




0 件のコメント:

コメントを投稿