[LEON-MJPEG]ML501(1)

NEEKでsofをダウンロードしても、grmonと通信出来ない。
ML501でも試してみる。

以下へ移動。
/mnt/hgfs/vm_share/leon/neek/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-xilinx-ml501

次の手順で進める。
touch systest.c
make soft
make ghdl → エラー出る。
ise起動して、bit生成
Virtex-5 FPGAへダウンロード。

grmonで通信するためのIP、MACを設定。
make xconfig > Debug Link > 以下設定。

MSB 16bit of IP address (hex) = C0A8 → 192.168の16進数
LSB 16bit of IP address (hex) = 0035 → 21.20の16進数
MSB 24bit of ethern number (hex) = xxxxxx → ML501のMACに合わせる
LSB 24bit of ethern number (hex) = xxxxxx → ML501のMACに合わせる



自宅LANへつなぐためにLANケーブルをML501に接続し、以下コマンド実行したが失敗。

[bob@localhost leon3-xilinx-ml501]$ grmon -u -eth -ip 192.168.21.20

GRMON2 LEON debug monitor v2.0.59 eval version

Copyright (C) 2014 Aeroflex Gaisler - All rights reserved.
For latest updates, go to http://www.gaisler.com/
Comments or bug-reports to support@gaisler.com

This eval version will expire on 14/05/2015

Ethernet startup...
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Sequence number initialization failed!
Exiting GRMON



仮想マシンではなく、ホストのDOSプロンプトからもやってみるが、同じくfailure。


C:\user\googledrive\vm_share\leon\download\grmon-eval-2.0.59\win32\bin>grmon.exe
-u -eth -ip 192.168.21.20

GRMON2 LEON debug monitor v2.0.59 eval version

Copyright (C) 2014 Aeroflex Gaisler - All rights reserved.
For latest updates, go to http://www.gaisler.com/
Comments or bug-reports to support@gaisler.com

This eval version will expire on 14/05/2015

Ethernet startup...
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Ethernet initialization failure, retrying
Sequence number initialization failed!
Exiting GRMON




WindowsファイアウォールとAVG保護を無効にして、DOSプロンプトから
grmon.exe -u -eth -ip 192.168.21.20 → make xconfigでEDCLで設定したIPアドレス
とやっても同じ結果。

次のアクションは、
・ML501で、ERR1のLED赤点灯の意味調べ
・NEEKでの動作確認(DOSプロンプト使用、ファイアウォール無効)
・Wiresharkによるパケット解析
かな。

(2014.11.30追記)
・ホストPC: Windows7 Home Pre 64bit ML501とは有線LANポートからクロスケーブルで接続。
・ボード: ML501 make xconfigのEDCLメニューで192.168.21.20設定。
・ホストPCのDOSプロンプトを開き、grmon-eval-2.0.59.tar.gz内のwin32のgrmon.exeを使用。
  grmon-eval-2.0.59\win32\bin> grmon.exe -u -eth -ip 192.168.21.20

コマンド実行後のパケットをWiresharkで見てみると、

278 xxxx.xxxxxxxxx WistronI_xx:xx:xx Broadcast ARP 42 Who has 192.168.21.20? Tell 192.168.21.21

スポンサーサイト

[LEON-MJPEG]NEEK動作確認(3)

make ghdl を実行した時の、pushなんちゃらのエラーは、GHDLがi686用つまり32bit版だった事が原因と予想。
GHDLのインストールバイナリがi686だけだったので、安易にそれを使ってしまった。

64bit版GHDLバイナリが無いので、ソースからインストールをしてみよう。


・gcc-4.3.4ソースを入手。ghdlのソースを入手。

・GHDLのREADMEを読む。
 それぞれ展開して、ghdlのvhdlフォルダを、gcc-4.3.4/gcc/以下へ移動。

mv ghdl/ghdl-0.29/vhdl gcc-4.3.4/gcc/
cd gcc-4.3.4/gcc/
./configure --enable-languages=vhdl --disable-bootstrap
コンフィギュアは成功した。

[root@localhost gcc]# make CFLAGS="-O"
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h" DEFINES="" \
/bin/sh ./mkconfig.sh config.h
TARGET_CPU_DEFAULT="" \
HEADERS="options.h config/i386/biarch64.h config/i386/i386.h config/i386/unix.h config/i386/att.h config/dbxelf.h config/elfos.h config/svr4.h config/linux.h config/i386/x86-64.h config/i386/linux64.h defaults.h" DEFINES="UCLIBC_DEFAULT=0" \
/bin/sh ./mkconfig.sh tm.h
gawk -f ./opt-gather.awk ./ada/lang.opt ./fortran/lang.opt ./java/lang.opt ./treelang/lang.opt ./vhdl/lang.opt ./c.opt ./common.opt ./config/i386/i386.opt ./config/linux.opt > tmp-optionlist
/bin/sh ./../move-if-change tmp-optionlist optionlist
echo timestamp > s-options
gawk -f ./opt-functions.awk -f ./opth-gen.awk \
< optionlist > tmp-options.h
/bin/sh ./../move-if-change tmp-options.h options.h
echo timestamp > s-options-h
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h" DEFINES="" \
/bin/sh ./mkconfig.sh bconfig.h
gcc -c -O -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I. -I./build -I./../include -I./../libcpp/include -I./../libdecnumber -I./../libdecnumber/bid -I../libdecnumber -o build/errors.o errors.c
build/genmodes -h > tmp-modes.h
/bin/sh: build/genmodes: No such file or directory
make: *** [s-modes-h] Error 127




うまくいかないので、VMware上にCentOS6.4 i386をインストールし、環境構築した。
その後、著書に従い進めた。

cd /home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek
touch systest.c
make soft
make ghdl
   :
altera_eek_clkgen.vhd:47:14:warning: (in default configuration of altera_eek_clkgen(rtl))
altera_eek_clkgen.vhd:49:13:warning: port "fbout" of entity "altpll" is not bound
altera_eek_clkgen.vhd:47:14:warning: (in default configuration of altera_eek_clkgen(rtl))
../../lib/gaisler/greth/greth.vhd:268:5:warning: component instance "tx_fifo0" is not bound
../../lib/gaisler/greth/greth.vhd:83:14:warning: (in default configuration of greth(rtl))
../../lib/gaisler/greth/greth.vhd:273:5:warning: component instance "rx_fifo0" is not bound
../../lib/gaisler/greth/greth.vhd:83:14:warning: (in default configuration of greth(rtl))
../../lib/gaisler/greth/greth_gbit.vhd:131:3:warning: component instance "gtxc0" is not bound
../../lib/gaisler/greth/greth_gbit.vhd:81:14:warning: (in default configuration of greth_gbit(rtl))
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
ghdl: compilation error
make: *** [make.ghdl] Error 1


やたら長いコンパイル後、エラーが出た。

http://armadillo.atmark-techno.com/faq/zlib-not-Installed
http://www.cyberciti.biz/faq/centos-install-zlib-devel/

zlib-develをインストールすれば良いのかな?

yum install zlib-devel


それ以外にもこんなページも発見したが、上の zlib-develインストールでmake ghdlのエラーが解消した。
http://d.hatena.ne.jp/naga_sawa/20120503/1336020352

次は以下でシミュレーション実行。

[bob@localhost leon3-altera-ep3c25-eek]$ ./testbench
../../lib/tech/altera_mf/simprims/altera_mf.vhd:13040:13:@0ms:(assertion note): Cyclone III PLL was reset
../../lib/tech/altera_mf/simprims/altera_mf.vhd:13040:13:@0ms:(assertion note): Cyclone III PLL was reset
LEON3 Altera Embedded Evaluation Kit Demonstration Design
GRLIB Version 1.0.22, build 4095
Target technology: cycloneiii, memory library: cycloneiii
ahbctrl: AHB arbiter/multiplexer rev 1
ahbctrl: Common I/O area at 0xfff00000, 1 Mbyte
ahbctrl: AHB masters: 4, AHB slaves: 8
ahbctrl: Configuration area at 0xfffff000, 4 kbyte
ahbctrl: mst0: Gaisler Research Leon3 SPARC V8 Processor
ahbctrl: mst1: Gaisler Research JTAG Debug Link
ahbctrl: mst2: Gaisler Research SVGA frame buffer
ahbctrl: mst3: Gaisler Research GR Ethernet MAC
ahbctrl: slv0: European Space Agency Leon2 Memory Controller
ahbctrl: memory at 0x00000000, size 512 Mbyte, cacheable, prefetch
ahbctrl: memory at 0x20000000, size 512 Mbyte
ahbctrl: memory at 0xa0000000, size 256 Mbyte, cacheable, prefetch
ahbctrl: slv1: Gaisler Research AHB/APB Bridge
ahbctrl: memory at 0x80000000, size 1 Mbyte
ahbctrl: slv2: Gaisler Research Leon3 Debug Support Unit
ahbctrl: memory at 0x90000000, size 256 Mbyte
ahbctrl: slv3: Gaisler Research Single-port DDR266 controller
ahbctrl: memory at 0x40000000, size 256 Mbyte, cacheable, prefetch
ahbctrl: I/O port at 0xfff00100, size 256 byte
apbctrl: APB Bridge at 0x80000000 rev 1
apbctrl: slv0: European Space Agency Leon2 Memory Controller
apbctrl: I/O ports at 0x80000000, size 256 byte
apbctrl: slv1: Gaisler Research Generic UART
apbctrl: I/O ports at 0x80000100, size 256 byte
apbctrl: slv2: Gaisler Research Multi-processor Interrupt Ctrl.
apbctrl: I/O ports at 0x80000200, size 256 byte
apbctrl: slv3: Gaisler Research Modular Timer Unit
apbctrl: I/O ports at 0x80000300, size 256 byte
apbctrl: slv5: Gaisler Research General Purpose I/O port
apbctrl: I/O ports at 0x80000500, size 256 byte
apbctrl: slv6: Gaisler Research PS2 interface
apbctrl: I/O ports at 0x80000600, size 256 byte
apbctrl: slv8: Gaisler Research AMBA Wrapper for OC I2C-master
apbctrl: I/O ports at 0x80000800, size 256 byte
apbctrl: slv9: Gaisler Research SPI Controller
apbctrl: I/O ports at 0x80000900, size 256 byte
apbctrl: slv10: Gaisler Research GR Ethernet MAC
apbctrl: I/O ports at 0x80000a00, size 256 byte
apbctrl: slv11: Gaisler Research SVGA frame buffer
apbctrl: I/O ports at 0x80000b00, size 256 byte
apbctrl: slv12: Gaisler Research SPI Controller
apbctrl: I/O ports at 0x80000c00, size 256 byte
greth3: 10/100 Mbit Ethernet MAC rev 03, EDCL 1, buffer 2 kbyte 128 txfifo, irq 10
spictrl12: SPI controller rev 2, irq 12
clkgen_cycloneiii: altpll lcd/vga clock generator, version 1
svgactrl11: SVGA controller rev 0, FIFO length: 384, FIFO part length: 128, FIFO address bits: 9
spictrl9: SPI controller rev 2, irq 9
i2cmst8: AMBA Wrapper for OC I2C-master rev 1, irq 11
apbps2_6: APB PS2 interface rev 2, irq 6
grgpio5: 5-bit GPIO Unit rev 0
gptimer3: GR Timer Unit rev 0, 8-bit scaler, 2 32-bit timers, irq 8
irqmp: Multi-processor Interrupt Controller rev 3, #cpu 1, eirq 0
apbuart1: Generic UART rev 1, fifo 8, irq 2
ddrsp3: 16-bit DDR266 controller rev 0, 8 Mbyte, 100 MHz DDR clock
ahbjtag AHB Debug JTAG rev 0
dsu3_2: LEON3 Debug support unit + AHB Trace Buffer, 2 kbytes
leon3_0: LEON3 SPARC V8 processor rev 0
leon3_0: icache 2*4 kbyte, dcache 2*4 kbyte
clkgen_cycloneiii: altpll sdram/pci clock generator, version 1
clkgen_cycloneiii: Frequency 50000 KHz, PLL scaler 5/5
../../lib/tech/altera_mf/simprims/altera_mf.vhd:13337:25:@90ns:(assertion note): Cyclone III PLL locked to incoming clock
../../lib/tech/altera_mf/simprims/altera_mf.vhd:13337:25:@90ns:(assertion note): Cyclone III PLL locked to incoming clock
../../lib/tech/altera_mf/simprims/altera_mf.vhd:13337:25:@590ns:(assertion note): Cyclone III PLL locked to incoming clock
../../lib/cypress/ssram/cy7c1380d.vhd:611:13:@66610ns:(assertion error): Dq - tDS violation
../../lib/cypress/ssram/cy7c1380d.vhd:627:13:@66610300ps:(assertion error): Dq - tDH violation
../../lib/cypress/ssram/cy7c1380d.vhd:611:13:@68270ns:(assertion error): Dq - tDS violation
../../lib/cypress/ssram/cy7c1380d.vhd:627:13:@68270300ps:(assertion error): Dq - tDH violation
../../lib/cypress/ssram/cy7c1380d.vhd:611:13:@70350ns:(assertion error): Dq - tDS violation
../../lib/cypress/ssram/cy7c1380d.vhd:627:13:@70350300ps:(assertion error): Dq - tDH violation
testbench.vhd:303:5:@72832ns:(assertion failure): *** IU in error mode, simulation halted ***
./testbench:error: assertion failed
./testbench:error: simulation failed

[LEON-MJPEG]NEEK動作確認(2)

Lattice Mico32が実機で動かないので、こちらをまた試してみる。

環境: VMware CentOS6.4 64bit

■設計データの入手

[bob@localhost neek]$ git clone git://git.sourceforge.jp/gitroot/fpga-leon-mjpeg/leon-mjpeg.git

[bob@localhost leon-mjpeg]$ cd leon-mjpeg/
[bob@localhost leon-mjpeg]$ git branch -r

[bob@localhost leon-mjpeg]$ git checkout -b hoge origin/start-point
error: You have local changes to 'snapgear-2.6-p42/user/iptables/extensions/libipt_ECN.d'; cannot switch branches.

http://transitive.info/article/git/command/checkout/
ここを見て、-mオプションでやれば良いのかな?

[bob@localhost leon-mjpeg]$ git checkout -b hoge origin/start-point -m
Branch hoge set up to track remote branch start-point from origin.
Switched to a new branch 'hoge'




■必要なソフトウェアのインストール

http://ghdl.free.fr/site/pmwiki.php?n=Main.Download
ここからghdl-i686-linux-latest.tarをダウンロード。
cp -iprL /mnt/hgfs/vm_share/leon/download/ghdl-i686-linux-latest.tar .
tar xvf ghdl-i686-linux-latest.tar
cd ghdl-0.29-i686-pc-linux/
vi INSTALL
tar -C / -jxvf ghdl-0.29-i686-pc-linux.tar.bz2  → これで/usr/loca/bin/ghdlが生成される。



http://www.gaisler.com/anonftp/bcc/bin/linux/
ここからsparc-elf-4.4.2-1.0.45.tar.bz2をダウンロード。
cd /opt/
cp -iprL /mnt/hgfs/vm_share/leon/download/sparc-elf-4.4.2-1.0.45.tar.bz2 .
tar -C /opt/ -jxvf sparc-elf-4.4.2-1.0.45.tar.bz2



http://www.gaisler.com/index.php/downloads/debug-tools
ここからgrmon-eval-2.0.59.tar.gzをダウンロード。
cd /usr/local/bin/
cp -iprL /mnt/hgfs/vm_share/leon/download/grmon-eval-2.0.59.tar.gz .
tar zxvf grmon-eval-2.0.59.tar.gz
/usr/local/bin/grmon-eval-2.0.59/linux/bin を PATHへ追加




http://www.gaisler.com/anonftp/linux/linux-2.6/toolchains/sparc-linux-4.4.2/
ここからsparc-linux-ct-multilib-0.0.7.tar.bz2をダウンロード。
cd /opt/
cp -iprL /mnt/hgfs/vm_share/leon/download/sparc-linux-ct-multilib-0.0.7.tar.bz2 .
tar -C /opt/ -jxvf sparc-linux-ct-multilib-0.0.7.tar.bz2
ln -s sparc-linux-4.4.2-toolchains sparc-Linux



■設計フローの理解(NEEK)

cd /mnt/hgfs/vm_share/leon/neek/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek
make xconfig > コンフィグ用のGUIがひらくが、特に変更せず終了。
touch systest.c
make soft
sparc-elf-gcc -c -I. -I../../software/leon3 ../../software/leon3/prom.S
cc1: error: .: Value too large for defined data type
cc1: error: ../../software/leon3: Value too large for defined data type
cc1: error: ../../software/leon3/prom.S: Value too large for defined data type
make: *** [prom.o] Error 1



http://stackoverflow.com/questions/2438890/cc1plus-error-include-value-too-large-for-defined-data-type-when-compiling-wi

よく分からないエラーだが、検索して以下のページを読んでてふと、VMwareの共有フォルダだからダメなのか?
と思い、VMware上のCentOS内のディスクへコピーして同じ手順をやってみた。
すると今度はコンパイルが進んだ。

/home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek
[bob@localhost leon3-altera-ep3c25-eek]$ touch systest.c
[bob@localhost leon3-altera-ep3c25-eek]$ make soft
sparc-elf-gcc -c -I. -I../../software/leon3 ../../software/leon3/prom.S
sparc-elf-gcc -I../../software/leon3 -nostdlib -Tlinkprom -N -L./ -Ttext=0 -nostartfiles -o prom.exe prom.o
sparc-elf-objcopy -O srec prom.exe prom.srec
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/report_device.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/apbuart.c
sparc-elf-gcc -I../../software/leon3 -O2 -c -mcpu=v8 ../../software/leon3/divtest.c
sparc-elf-gcc -I../../software/leon3 -O2 -c -mcpu=v8 ../../software/leon3/multest.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/regtest.S
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/cache.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/gpio.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/ramfill.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/ramtest.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/irqmp.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/leon3_test.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/gptimer.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/mulasm.S
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/cacheasm.S
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/spwtest.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/mptest.c
sparc-elf-gcc -I../../software/leon3 -ffast-math -O3 -c ../../software/leon3/fpu.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/grfpu_ops.S
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/base_test.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/grfpu_test.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/can_oc.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/mmu.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/mmu_asm.S
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/pcitest.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/greth.c
../../software/leon3/greth.c: In function 'greth_test':
../../software/leon3/greth.c:191: warning: incompatible implicit declaration of built-in function 'malloc'
../../software/leon3/greth.c:349: warning: incompatible implicit declaration of built-in function 'free'
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/atactrl.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/amba.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/dsu3.c
sparc-elf-gcc -I../../software/leon3 -g -msoft-float -c ../../software/greth/greth_api.c
../../software/greth/greth_api.c: In function 'almalloc':
../../software/greth/greth_api.c:40: warning: incompatible implicit declaration of built-in function 'malloc'
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/grcan.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/spictrl.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/i2cmst.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/misc.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/spimctrl.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/svgactrl.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/apbps2.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/i2cslv.c
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float -c ../../software/leon3/i2c.c
sparc-elf-ar -cr lib3tests.a report_device.o apbuart.o divtest.o multest.o regtest.o cache.o gpio.o ramfill.o ramtest.o irqmp.o leon3_test.o gptimer.o mulasm.o cacheasm.o spwtest.o mptest.o fpu.o grfpu_ops.o base_test.o grfpu_test.o can_oc.o mmu.o mmu_asm.o pcitest.o greth.o atactrl.o amba.o dsu3.o greth_api.o grcan.o spictrl.o i2cmst.o misc.o spimctrl.o svgactrl.o apbps2.o i2cslv.o i2c.o
sparc-elf-gcc -I../../software/leon3 -O2 -g -msoft-float systest.c -L./ lib3tests.a -o systest.exe
sparc-elf-objcopy -O srec systest.exe sram.srec
sparc-elf-objcopy -O srec systest.exe sdram.srec



[root@localhost leon3-altera-ep3c25-eek]# make ghdl
Scanning libraries
grlib: stdlib util sparc modgen amba
altera: simprims
altera_mf: simprims
cycloneiii: simprims
dw02: comp
synplify: sim
techmap: gencomp inferred dw02 altera_mf cycloneiii maps
eth: comp core wrapper
opencores: occomp i2c spi ata ac97
gaisler: arith memctrl leon3 misc net uart sim jtag greth usb ddr ata
esa: memoryctrl
fmf: utilities flash fifo
spansion: flash
gsi: ssram
cypress: ssram
hynix: ddr2
micron: sdram ddr
work: debug
testbench.mpf
rm -rf gnu
make -f tmpmake.ghdl ghdl
make[1]: Entering directory `/home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek'
mkdir gnu
mkdir gnu/grlib
ghdl -a -fexplicit --ieee=synopsys --workdir=gnu/grlib --work=grlib -Pgnu -Pgnu/grlib ../../lib/grlib/stdlib/version.vhd
gnu/grlib/version.s: Assembler messages:
gnu/grlib/version.s:209: Error: suffix or operands invalid for `push'
ghdl: compilation error
make[1]: *** [ghdl] Error 1
make[1]: Leaving directory `/home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek'
make: *** [make.ghdl] Error 2


ちょっとrootでやってしまったが、chownとchgrpで所属権を変えてやっても同じエラー。

[bob@localhost leon3-altera-ep3c25-eek]$ make ghdl
rm -rf gnu
make -f tmpmake.ghdl ghdl
make[1]: Entering directory `/home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek'
mkdir gnu
mkdir gnu/grlib
ghdl -a -fexplicit --ieee=synopsys --workdir=gnu/grlib --work=grlib -Pgnu -Pgnu/grlib ../../lib/grlib/stdlib/version.vhd
gnu/grlib/version.s: Assembler messages:
gnu/grlib/version.s:209: Error: suffix or operands invalid for `push'
ghdl: compilation error
make[1]: *** [ghdl] Error 1
make[1]: Leaving directory `/home/bob/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek'
make: *** [make.ghdl] Error 2

[LEON-MJPEG]NEEK動作確認(1)

VEEK用の環境立ち上げが上手くいかないので、書籍でも紹介されているNEEKで動くか試してみる。

・make quartus-launch を実行したら、.vqmが無いと指摘された。

# cd leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-ep3c25-eek
# make quartus-launch
Scanning libraries
grlib: stdlib util sparc modgen amba
altera: simprims
altera_mf: simprims
cycloneiii: simprims
dw02: comp
synplify: sim
techmap: gencomp inferred dw02 altera_mf cycloneiii maps
eth: comp core wrapper
opencores: occomp i2c spi ata ac97
gaisler: arith memctrl leon3 misc net uart sim jtag greth usb ddr ata
esa: memoryctrl
fmf: utilities flash fifo
spansion: flash
gsi: ssram
cypress: ssram
hynix: ddr2
micron: sdram ddr
work: debug
testbench.mpf
cp: cannot stat `../../netlists/altera/cyclone3/*.vqm': No such file or directory
make: [quartus-vqm] Error 1 (ignored)
quartus leon3mp.qpf

[LEON-MJPEG]VEEKへ移植(4)

・前回まででgtkwaveのインストールが完了したので、シミュレーションのssramデバッグへ。

./testbench --vcd=testbench.vcd
gtkwave testbench.vcd



(2013/11/24追記)
・シミュレーション中、QuartusII 13.1 Linux版のインストールしてたら、
 ディスクフルになってしまった。
 VMwareの設定では50GBにしてるので十分だが、ホストのWindowsのCドライブがフルに。
 今後の事も考えて、VMwareの設定は100GB、データ置き場は、Cドライブを止めて
 SDXCカード64GBにした。速度は遅いが。

(2013/11/25追記)
・シミュレーション時の以下SSRAMエラーMSGは次の動きが問題。
 ピンクカーソルの箇所で、クロックエッジとデータ変化点がかぶってしまってる。
 このデータ変化がなぜ起こったのかを追えば原因に当たるはず。

../../lib/cypress/ssram/cy7c1380d.vhd:611:13:@66610ns:(assertion error): Dq - tDS violation


leon_mjpeg_ssram_Dq-tDS_at_66610ns_with_oen.png

・OEN信号の変化が関係してる?? data_padなるモジュールを検索。

[leon@localhost leon_mjpeg]$ pwd
/mnt/hgfs/vm_share/leon_mjpeg
[leon@localhost leon_mjpeg]$ find leon-mjpeg/ -name '*.vhd' | xargs grep '\' | grep -v leon3mp
leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-asic/pads.vhd: data_pad : iopad generic map (tech => padtech, strength => 4, oepol => OEPOL)
leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.vhd: data_pad : iopadv generic map (tech => padtech, width => 8)
leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-ge-hpe-mini/leon3mini.vhd: data_pad : iopadv generic map (tech => padtech, width => 8)
leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-ge-hpe-mini-lattice/leon3mini.vhd: data_pad : iopadv generic map (tech => padtech, width => 8)
leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/ut699rh-evab/pads.vhd: data_pad : iopad generic map (tech => padtech, strength => 12, oepol => OEPOL)



・検索ヒットした中から、leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-asic/pads.vhd がそうかな?

(2013/11/29追記)
・継続して、dataバスへ出力された値とクロック立ち上がりとのタイミング違反を解析中。
 GHDLシミュレータでVCD出力したけど、なんか表示出来ない信号がある気がする。

(2013/11/30追記)
・VCDだと取得出来ない信号があるようだし、テキストでファイル容量大きくなってしまうので、
 ghw (GHdl Waveform) フォーマットなるものを生成してみた。

http://home1.cyber-labo.co.jp/ghdl_guide/Simulation-options.html#Simulation-options
 上のページを参考に、以下のように実行。

./testbench --wave=testbench.ghw


 VCDに比べて1/3以下(VCD=471MBに対してGHW=145MB)のバイナリファイル.ghwが生成された。

・VCDと違ってopenするまでの進捗が出ないから不安になるが、以下実行して放置したら、
 いつの間にかopenしてた。

# gtkwave testbench.ghw
GTKWave Analyzer v3.3.2 (w)1999-2010 BSI



(2013/12/7追記)
・.ghwを開く時の問題点は以下の著者ブログでも記載されてた。
 自分の場合は、開くまでに遅過ぎる、という問題なのでちょっと違うが、参考に添付。

gtkwave testbench.ghwと実行するとアボートします。


 Verilogばっかりだったので知らなかったが、VHDLってVCDだと見れない信号あるのは皆同じなのね。
 見れない信号に困って、.ghwを探したけど、やはりこの形式にする必要があるらしい。


(2013.12.8追記)
・make xconfig でいろいろ設定をいじってたら、本の通り直したつもりでも、
 make ghdl でエラーが出るようになってしまった。
 QuartusIIのデバイス設定で、VEEKに合わせてCycloneIVを選択したのが影響したり?
 それくらいしか変えてないのに。SPIコントローラとかNOにしたから?
 エラーが出た手順は以下。
 make xconfig > 設定変える > Saveで終了 > touch systest.c > make soft > make ghdl

[leon@localhost leon3-altera-veek]$ make ghdl
make -f make.ghdl GHDLFLAGS="-fexplicit --ieee=synopsys --workdir=gnu/work --work=work `cat ghdl.path`"
make[1]: Entering directory `/mnt/hgfs/vm_share/leon_mjpeg/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-veek'
ghdl -a -fexplicit --ieee=synopsys --workdir=gnu/work --work=work -Pgnu -Pgnu/grlib -Pgnu/altera -Pgnu/altera_mf -Pgnu/cycloneiii -Pgnu/dw02 -Pgnu/synplify -Pgnu/techmap -Pgnu/spw -Pgnu/eth -Pgnu/opencores -Pgnu/ihp -Pgnu/core1553bbc -Pgnu/core1553brt -Pgnu/core1553brm -Pgnu/corePCIF -Pgnu/gr1553 -Pgnu/gaisler -Pgnu/esa -Pgnu/#nasa -Pgnu/gleichmann -Pgnu/fmf -Pgnu/spansion -Pgnu/gsi -Pgnu/cypress -Pgnu/hynix -Pgnu/micron -Pgnu/openchip -Pgnu/work config.vhd
config.vhd:10:13: file ../../lib/techmap/gencomp/gencomp.vhd has changed and must be reanalysed
ghdl: compilation error
make[1]: *** [gnu/work/config.o] Error 1
make[1]: Leaving directory `/mnt/hgfs/vm_share/leon_mjpeg/leon-mjpeg/grlib-gpl-1.0.22-b4095/designs/leon3-altera-veek'
make: *** [ghdl] Error 2

カレンダー
06 | 2018/07 | 08
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード