Welcome to Our Company
Home
Tutorial
Download
Opencores
F.A.Q.
Support
Purchase
Links

AVR-ATMEGA103

例によってOpencoresから頂いてきます。筆者が追加修正したものをここに置いておきます。(Dec.29.2006 Veritak VersionUpに伴い一部修正しました。)

F.A.Q.

Q.Xilinx ISEにおいてコンパイルする事が出来ませんでした。
どのようにすれば使用する事が出来るのでしょうか?

Ans.ソースは、VHDLから自動変換をしたものですが、限界があり、一般には、手修正が必要になります。論理合成には、また別な手修正が必要になります。この場合、論理合成可能な記述に変換するVHDL・Verilog両方のスキルが必要になることは言うまでもありません。




・Cコンパイル
WinAVRを使いました。以下は筆者環境でのバッチファイルです。
E:\WinAVR\bin\avr-gcc -g -Wall -O2 -mmcu=atmega103 -Tdata=0x801100 -c -o objfile %1
E:\WinAVR\bin\avr-gcc -g -Wall -O2 -mmcu=atmega103 -Tdata=0x801100 -Wl,-Map,mapfile -o elffile objfile
E:\WinAVR\bin\avr-objdump -h -S elffile >list.txt
E:\WinAVR\bin\avr-objcopy -j .text -j .data -O ihex elffile hexfile
E:\WinAVR\bin\avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex elffile eepfile
・ROM VHDLファイルの作成、hexfileからprom.vhdを生成します。z80で使ったhex2romが使えます。
hex2rom hexfile prom 16l16 > prom.vhd
・VHDLソース追加
 テストベンチTOPがありませんので追加しました。
・トランスレート(VHDL->Verilogに変換します。)
 translated.vが生成されます。
・Verilogソース追加修正
 log2__等によるビット幅指定→[15:0]にします。
 ramsize → 1024*64 にします。
 デバッガを入れ込みます。 
 以上の修正したもの->demo.v
・シミュレーション 
 arv_core.prj をLoadVerilogします。

しばらくしてからコンソールにメッセージが現れます。StartUpでRAMの初期化に時間がかかるようです。



Test時間は、3867430-1777950=2.1msとなりました。
予想以上に速いです。16ビットバスとハーバードアーキテクチャ、そしてコンパイラが優秀なのでしょう。