・2022/07/07
Xilinxの FPGA Spartan-6 XC6SLX16に SRAMを追加する方法
(ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加した)
Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]
● Xilinxの FPGA Spartan-6 XC6SLX16に SRAMを追加する方法
ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加した。
AX309には 256Mb (16Mx16bit)の 133MHzの SDRAMが搭載されていますが、DRAMは扱いが面倒なので、扱いが簡単な SRAMを増設します。
Alliance Memoryの AS6C4008は DIPパッケージで、ありがたい事に動作電圧が +3.3Vにも対応していて、300円程度の手頃な価格で購入できます。
AS6C4008 - Alliance Memory
今回は AS6C4008-55PCNを入手しました。512KB SRAMで 300ml幅の DIP 32pinパッケージです。
・Alliance Memory AS6C4008-55PCN 512KB SRAMで 300ml幅の DIP 32pinパッケージ

ALINX AX309の 40pinの拡張コネクタにメス コネクタ 2x20ピンの足長ピンソケットを接続し、その足長ピンに直接 SRAMを半田付けします。
連結ピンソケット 2×20(40P)
・連結ピンソケット 2×20(40P)

ICの幅が 300milあるのでソケット側が足長ピンじゃないと足が届かず半田付けができないのです。(下記の写真を参照)
ちなみに昔は元気だったので専用基板を作成して表面実装のメモリ ICを使ったりして最強の拡張基板を作ったりしていました。
当時は OLIMEXと言うブルガリアに有る基板屋にプリント基板を発注するのがアマチュアの電子工作の間で流行していました。
今は気力が無いので お手軽半田付けで済ましています。
・2004/10/08
ヒューマンデータ製 ALTERA Cycloneボード
AlteraのCycloneは高性能
・2004/02/15
OLIMEXで基板を作ろう
ブルガリアの基板製造会社で低価格で基板を作ってくれます
ISSIの高速 SRAM IS61C1024-10Nは DIP 32pinのパッケージでも ICの幅が狭いので丁度良いのですが、動作電圧が +5Vなので今回の用途には使えません。
理由は Spartan-6の I/Oが +5Vレベルに対応していないから。(+5Vの TTLレベルの信号を突っ込むと Spartan-6が壊れる。仕様では +4.1Vまでが許容値)
+5V動作の IS61C1024を +3.3Vで動作させる事も考えましたが「どうせ動かんだろう」と思い辞めました。(とは言うものの1ヶ月くらい毎日悩みました)
まあ、容量も AS6C4008の 512KBに対して 1/4の 128KBなので不満もあった訳ですが、ICの幅が「狭い」と言うのは物凄い魅力的でした。
ちなみに IS61C1024のメモリ ICは 100円~200円程度です。
・ISSIの高速 SRAM IS61C1024-10Nは DIP 32pin ICの幅が「狭い」と言うのは物凄い魅力的
ICの幅が「狭い」と言うのは物凄い魅力的!
・ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の写真









● ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の配線図
・ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の配線図

・ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の配線図

・ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の配線図

・ALINX AX309 XC6SLX16に 512KB SRAM Alliance AS6C4008-55PCNを追加の配線図

SRAMの全領域の読み書きをテストするプログラムを作成して動作を確認しました。
ちなみに 55nsの動作仕様ですが、14.615MHz(68.42ns)まで動き、14.706MHz(67.99ns)ではエラーになりました。
// 10.0MHz OK = 100.00ns
// 12.0MHz OK = 83.33ns
// 14.0MHz OK = 71.42ns
// 14.5MHz OK = 68.96ns 14.500MHz
// 14.6MHz OK = 68.42ns 14.615MHz
// 14.7MHz NG = 68.00ns 14.706MHz
// 14.8MHz NG = 67.58ns 14.796MHz
// 15.0MHz NG = 66.66ns
※ DCMの丸めの関係で周波数が右側の値になります。
原因としては下記の複合要因が考えられます。
・信号ラインに直列に 33Ωの抵抗が入っている
・信号ラインを引き回している(上の抵抗と共に高速信号の伝達では波形が不利になる)
・コネクタを経由している(コネクタで信号が減衰している)
・電源ラインに細い線を使っている(電圧が変動して誤動作の原因になる)
・実は中華のリマーク品
・私の作成したテストプログラム(FPGA回路)がヘナチョコ(要因として大)
とりあえず SRAMとしての動作が確認できたので良しとします。
ucfファイル(ピン配置の定義ファイル)
######## Alliance AS6C4008-55 512K X 8 BIT LOW POWER CMOS SRAM ########
NET MemCE LOC = T15 | IOSTANDARD = LVCMOS33;
NET MemOE LOC = R12 | IOSTANDARD = LVCMOS33;
NET MemWE LOC = T4 | IOSTANDARD = LVCMOS33;
NET MemDB<0> LOC = N16 | IOSTANDARD = LVCMOS33;
NET MemDB<1> LOC = M16 | IOSTANDARD = LVCMOS33;
NET MemDB<2> LOC = K15 | IOSTANDARD = LVCMOS33;
NET MemDB<3> LOC = K16 | IOSTANDARD = LVCMOS33;
NET MemDB<4> LOC = L16 | IOSTANDARD = LVCMOS33;
NET MemDB<5> LOC = M15 | IOSTANDARD = LVCMOS33;
NET MemDB<6> LOC = P16 | IOSTANDARD = LVCMOS33;
NET MemDB<7> LOC = R16 | IOSTANDARD = LVCMOS33;
NET MemAdr<0> LOC = P15 | IOSTANDARD = LVCMOS33;
NET MemAdr<1> LOC = R15 | IOSTANDARD = LVCMOS33;
NET MemAdr<2> LOC = R14 | IOSTANDARD = LVCMOS33;
NET MemAdr<3> LOC = T13 | IOSTANDARD = LVCMOS33;
NET MemAdr<4> LOC = T12 | IOSTANDARD = LVCMOS33;
NET MemAdr<5> LOC = T9 | IOSTANDARD = LVCMOS33;
NET MemAdr<6> LOC = T7 | IOSTANDARD = LVCMOS33;
NET MemAdr<7> LOC = T6 | IOSTANDARD = LVCMOS33;
NET MemAdr<8> LOC = R7 | IOSTANDARD = LVCMOS33;
NET MemAdr<9> LOC = L8 | IOSTANDARD = LVCMOS33;
NET MemAdr<10> LOC = T14 | IOSTANDARD = LVCMOS33;
NET MemAdr<11> LOC = R9 | IOSTANDARD = LVCMOS33;
NET MemAdr<12> LOC = R5 | IOSTANDARD = LVCMOS33;
NET MemAdr<13> LOC = T5 | IOSTANDARD = LVCMOS33;
NET MemAdr<14> LOC = R2 | IOSTANDARD = LVCMOS33;
NET MemAdr<15> LOC = P2 | IOSTANDARD = LVCMOS33;
NET MemAdr<16> LOC = M4 | IOSTANDARD = LVCMOS33;
NET MemAdr<17> LOC = R1 | IOSTANDARD = LVCMOS33;
NET MemAdr<18> LOC = N6 | IOSTANDARD = LVCMOS33;
Tags: [FPGA], [電子工作], [Xilinx XC6SLX9], [FPGA 2022]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
AMD Xilinxの FPGA Spartan-6 XC6SLX16のボードを買ってアーケード ゲームを動かす
ALINX AX309 XC6SLX9の中華クローンの XC6SLX16版を購入しました
AMD Xilinxの FPGAの開発アプリ ISE WebPackをダウンロードして Windows 10で動かす方法
Spartan-6の FPGAの開発用に Xilinx ISE WebPack開発ソフトウェアを Windows 10で動かす方法
Xilinxの FPGA Spartan-6の Block RAM RAMB8BWERに初期値を入れて ROMとして使う方法
Xilinxの FPGA Spartan-6の Block RAM RAMB8BWERに初期値を入れて ROMとして使う方法
FPGA Spartan-6 XC6SLX16でファミコンを動かす!
Xilinx FPGA Spartan-6 XC6SLX16 NES clone in ALINX AX309
Xilinxの FPGA Spartan-6で PicoBlaze KCPSM 8 ビット マイクロコントローラーを動かす!
PicoBlaze KCPSM6 in Spartan-6 with ISE WebPack
Xilinxの FPGA Spartan-6で MicroBlazeを ISE WebPack 14.7で無料ライセンスで動かす方法
How to MicroBlaze in Spartan-6 with ISE WebPack 14.7 only Free License to Blink LED !
USB HOST機能を FPGAに実装する方法、FPGAの GPIOに USB HIDデバイスを接続したい!!
FPGAに USB HOST機能を実装して Low Speedの USB HIDデバイスを接続するのら
USBの通信プロトコルを勉強する
今まで漠然としていた USBデバイスの通信方法を理解します
USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する
FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています
OLIMEX LPC-H40(Philips LPC2106)
MOTHER BOARD for LPC-H40(LPC-H2106) and ASM Sample Program.
線形帰還シフトレジスタ LFSRのまとめ、FPGAの Verilog HDLでの実装例
LFSR Linear Feedback Shift Registerについて調べた
【2022年版】最近流行の RISC-Vプロセッサの環境を WSL Ubuntu上に構築する方法
RISC-Vプロセッサの Rocket Chipの開発環境を Windows上に構築して Verilogする方法
XILINX FPGAのBlock RAMをROMとして使う方法
FPGAに内蔵のBLOCK-RAMにROMとして初期値を与える方法
スパルタン2で"ギャラクシアン基板"を作る!
Verilog言語で記述してあります
スパルタン2で"MIDWAY 8080(TAITO インベーダ基板)"を動かす!
ハードウェアで本物を作ります
スパルタン2で"パックマン"を動かす!
FPGAでパックマンが動きます
スパルタン2で"ド*キーコ*グ"を動かす!
これもFPGAで動いちゃいます
スパルタン3でアーケードゲームを動かす!
XAPP694の使用例、INVADER/GALAXIAN/PACMAN/D*NKEY-K*NG/TIME PILOT
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2022 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/fpga/xilinx_spartan6_add_sram/