Jtagprog Data untuk Xilinx xc9572xl-vq44

Akhirnya bisa juga memprogram CPLD Xilinx xc9572xl-vq44 dengan menggunakan program jtagprog.
Program bantuan yang digunakan untuk mengimplementasikan CPLD Xilinx dalam desain elektronik dan jalan di Linux adalah
1. Xilinx ISE sebagai IDE: GUI environment, design rules check, synthesis
2. Pace untuk pin assignment secara GUI
3. iMPact untuk programming RTL ke device atau file svf (serial vector format)
4. iverilog (dan vvp) untuk simulasi HDL verilog
5. gtkwave untuk simulasi secara grafis
6. jtagprog untuk memprogram svf ke device

Sedangkan perangkat yang digunakan adalah kabel paralel IGLOO untuk memprogram CPLD

Urutan prosesnya adalah:

  1. Desain HDL dengan menggunakan ISE, cek desain (syntax);
  2. Mungkin sebaiknya desain disimulasi dulu dengan iverilog dan vvp untuk melihat behaviornya;
  3. Assign konfigurasi pin dengan PACE, file dengan format ucf dihasilkan;
  4. Synthesis (implement design). Masalah yang kadang muncul adalah desain kita tidak sintesized, hehehe. Belajar lagi gih membuat HDL verilog yang synthesized;
  5. Gunakan iMPACT untuk memprogram desain ke device CPLD. Itu kalau kita punya kabel programmer punya Xilinx (Parallel III, atau Parallel IV). Kalau tidak, desain bisa kita program ke file menghasilkan file svf. Yang terakhir ini yang saya gunakan;
  6. Program file svf ke CPLD dengan menggunakan program jtagprog lewat kabel jtag programmer IGLOO;


Nah, program jtagprog tidak mempunyai data device xc9572xl-vq44, sehingga tidak akan dapat digunakan untuk memprogram device ini. Untuk mengatasinya, perlu penambahan device definition dan data device tersebut. Data device dapat diperoleh dari file xc9572xl_vq.bsdl, namun format yang digunakan oleh jtagprog berbeda, sehingga perlu penyesuaian. Repot, yah. Tapi begitu dibuat, akan tampak log berikut:

jtag> cable parallel 0x378 IGLOO
Initializing Excelpoint IGLOO JTAG Cable on parallel port at 0x378
jtag> detect
IR length: 8
Chain length: 1
Device Id: 01011001011000000100000010010011
  Manufacturer: Xilinx
  Part:         XC9572XL-VQ44
  Stepping:     0
  Filename:     /usr/local/share/jtag/xilinx/xc9572xl-vq44/xc9572xl-vq44
jtag> svf eb800_top.svf
requested frequency 1000000, now calibrating delay loop
new real frequency 242408, delay 1000
new real frequency 317748, delay 242
new real frequency 340058, delay 76
new real frequency 347988, delay 25
new real frequency 353561, delay 8
new real frequency 357376, delay 2
operating without delay
Warning svf: checking of TDO not supported for SIR.
 This message is only displayed once.
requested frequency 1000000, now calibrating delay loop
new real frequency 244201, delay 1000
new real frequency 317630, delay 244
new real frequency 340002, delay 77
new real frequency 347841, delay 26
new real frequency 353552, delay 9
new real frequency 356984, delay 3
new real frequency 357511, delay 1
operating without delay
requested frequency 1000000, now calibrating delay loop
new real frequency 244230, delay 1000
new real frequency 317638, delay 244
new real frequency 339983, delay 77
new real frequency 347965, delay 26
new real frequency 353520, delay 9
new real frequency 354760, delay 3
new real frequency 357517, delay 1
operating without delay

Manis sekali, dan CPLD dapat berfungsi dengan baik.

Berikut perubahan yang perlu

  1. Tambahkan entry berikut ke file /usr/local/share/jtag/xilinx/PARTS
    1001011000000100        xc9572xl-vq44           XC9572XL-VQ44
    
  2. Buat direktori /usr/local/share/jtag/xilinx/xc9572xl-vq44/, dan buat file STEPPINGS di dalamnya
    # bits 31-28 of the Device Identification Register
    0101    xc9572xl-vq44           0
    
  3. Buat file xc9572xl-vq44 di directori /usr/local/share/jtag/xilinx/xc9572xl-vq44, yang isinya
    #
    # 4 function blocks (A to D) by 16 macrocells (0 to 15)
    #
    signal 	GND		4 17 25 
    signal	Vcc		15 26 35
    # Function block 0
    signal	PB00_01		39
    signal	PB00_04		40
    signal	PB00_05		41
    signal	PB00_07		42
    signal	PB00_08		43
    signal	PB00_10		44
    signal	PB00_13		1
    signal	PB00_14		2
    signal	PB00_16		3
    # Function block 1
    signal	PB01_01		29
    signal	PB01_04		30
    signal	PB01_05		31
    signal	PB01_07		32
    signal	PB01_08		33
    signal	PB01_10		34
    signal	PB01_13		36
    signal	PB01_14		37
    signal	PB01_16		38
    # Function block 2	
    signal	PB02_01		5
    signal	PB02_04		6
    signal	PB02_07		7
    signal	PB02_08		8
    signal	PB02_10		12
    signal	PB02_13		13
    signal	PB02_14		14
    signal	PB02_15		18
    signal	PB02_16		16
    #Function block 3	
    signal	PB03_01		19
    signal	PB03_04		20
    signal	PB03_07		21
    signal	PB03_10		22
    signal	PB03_13		23
    signal	PB03_14		27
    signal	PB03_16		28
    # 
    signal	TCK		11
    signal	TDI		9
    signal	TDO		24
    signal	TMS		10
    
    # mandatory data registers
    register	BSR	216	# see [2]
    register	BR	1
    # optional data registers
    register	DIR	32
    # user-defined registers
    #register	ISPSR		# ISP (In-System Programming) Shift Register, see [2]
    register	IER	6	# ISPENABLE
    register	IDR	34	# ISDATA
    register	IAR	18	# ISADDRESS
    register	ICR	50	# ISCONFIGURATION
    
    # instructions - see [2]
    instruction length 8
    # mandatory instructions - see Table 3 in [1]	
    instruction EXTEST		00000000	BSR
    instruction SAMPLE/PRELOAD	00000001	BSR
    instruction BYPASS		11111111	BR
    # optional instructions - see Table 3 in [1]
    instruction IDCODE		11111110	DIR
    instruction HIGHZ		11111100	BR
    instruction INTEST		00000010	BSR
    instruction ISPEX		11110000	BR
    instruction CLAMP		11111010	BR
    # user-defined instructions - see Table 5 in [1]
    instruction ISPEN		11101000	IER
    instruction ISPENC		11101001	IER
    instruction FPGMI		11101011	IDR
    instruction FVFYI		11101111	IDR
    instruction FERASE		11101100	IAR
    instruction FBULK		11101101	IAR
    instruction FBLANK		11100101	IAR
    instruction FPGM		11101010	ICR
    instruction FVFY		11101110	ICR
    
    # see [2]
    
    
    
    bit 215 X ? .
    bit 214 X ? .
    bit 213 X ? .
    bit 212 I ? PB00_01
    bit 211 O ? PB00_01 210 0 Z
    bit 210 C ? PB00_01
    bit 209 X ? .
    bit 208 X ? .
    bit 207 X ? .
    bit 206 X ? .
    bit 205 X ? .
    bit 204 X ? .
    bit 203 I ? PB00_04
    bit 202 O ? PB00_04 201 0 Z
    bit 201 C ? PB00_04
    bit 200 I ? PB00_05
    bit 199 O ? PB00_05 198 0 Z
    bit 198 C ? PB00_05
    bit 197 X ? .
    bit 196 X ? .
    bit 195 X ? .
    bit 194 I ? PB00_07
    bit 193 O ? PB00_07 192 0 Z
    bit 192 C ? PB00_07
    bit 191 I ? PB00_08
    bit 190 O ? PB00_08 189 0 Z
    bit 189 C ? PB00_08
    bit 188 X ? .
    bit 187 X ? .
    bit 186 X ? .
    bit 185 I ? PB00_10
    bit 184 O ? PB00_10 183 0 Z
    bit 183 C ? PB00_10
    bit 182 X ? .
    bit 181 X ? .
    bit 180 X ? .
    bit 179 X ? .
    bit 178 X ? .
    bit 177 X ? .
    bit 176 I ? PB00_13
    bit 175 O ? PB00_13 174 0 Z
    bit 174 C ? PB00_13
    bit 173 I ? PB00_14
    bit 172 O ? PB00_14 171 0 Z
    bit 171 C ? PB00_14
    bit 170 X ? .
    bit 169 X ? .
    bit 168 X ? .
    bit 167 I ? PB00_16
    bit 166 O ? PB00_16 165 0 Z
    bit 165 C ? PB00_16
    bit 164 X ? .
    bit 163 X ? .
    bit 162 X ? .
    bit 161 X ? .
    bit 160 X ? .
    bit 159 X ? .
    bit 158 I ? PB01_01
    bit 157 O ? PB01_01 156 0 Z
    bit 156 C ? PB01_01
    bit 155 X ? .
    bit 154 X ? .
    bit 153 X ? .
    bit 152 X ? .
    bit 151 X ? .
    bit 150 X ? .
    bit 149 I ? PB01_04
    bit 148 O ? PB01_04 147 0 Z
    bit 147 C ? PB01_04
    bit 146 I ? PB01_05
    bit 145 O ? PB01_05 144 0 Z
    bit 144 C ? PB01_05
    bit 143 X ? .
    bit 142 X ? .
    bit 141 X ? .
    bit 140 I ? PB01_07
    bit 139 O ? PB01_07 138 0 Z
    bit 138 C ? PB01_07
    bit 137 I ? PB01_08
    bit 136 O ? PB01_08 135 0 Z
    bit 135 C ? PB01_08
    bit 134 X ? .
    bit 133 X ? .
    bit 132 X ? .
    bit 131 I ? PB01_10
    bit 130 O ? PB01_10 129 0 Z
    bit 129 C ? PB01_10
    bit 128 X ? .
    bit 127 X ? .
    bit 126 X ? .
    bit 125 X ? .
    bit 124 X ? .
    bit 123 X ? .
    bit 122 I ? PB01_13
    bit 121 O ? PB01_13 120 0 Z
    bit 120 C ? PB01_13
    bit 119 I ? PB01_14
    bit 118 O ? PB01_14 117 0 Z
    bit 117 C ? PB01_14
    bit 116 X ? .
    bit 115 X ? .
    bit 114 X ? .
    bit 113 I ? PB01_16
    bit 112 O ? PB01_16 111 0 Z
    bit 111 C ? PB01_16
    bit 110 X ? .
    bit 109 X ? .
    bit 108 X ? .
    bit 107 X ? .
    bit 106 X ? .
    bit 105 X ? .
    bit 104 I ? PB02_01
    bit 103 O ? PB02_01 102 0 Z
    bit 102 C ? PB02_01
    bit 101  X ? .
    bit 100  X ? .
    bit 99  X ? .
    bit 98  X ? .
    bit 97  X ? .
    bit 96  X ? .
    bit 95 I ? PB02_04
    bit 94 O ? PB02_04 93 0 Z
    bit 93 C ? PB02_04
    bit 92 X ? .
    bit 91 X ? .
    bit 90 X ? .
    bit 89 X ? .
    bit 88 X ? .
    bit 87 X ? .
    bit 86 I ? PB02_07
    bit 85 O ? PB02_07 84 0 Z
    bit 84 C ? PB02_07
    bit 83 I ? PB02_08
    bit 82 O ? PB02_08 81 0 Z
    bit 81 C ? PB02_08
    bit 80 X ? .
    bit 79 X ? .
    bit 78 X ? .
    bit 77 I ? PB02_10
    bit 76 O ? PB02_10 75 0 Z
    bit 75 C ? PB02_10
    bit 74 X ? .
    bit 73 X ? .
    bit 72 X ? .
    bit 71 X ? .
    bit 70 X ? .
    bit 69 X ? .
    bit 68 I ? PB02_13
    bit 67 O ? PB02_13 66 0 Z
    bit 66 C ? PB02_13
    bit 65 I ? PB02_14
    bit 64 O ? PB02_14 63 0 Z
    bit 63 C ? PB02_14
    bit 62 I ? PB02_15
    bit 61 O ? PB02_15 60 0 Z
    bit 60 C ? PB02_15
    bit 59 I ? PB02_16
    bit 58 O ? PB02_16 57 0 Z
    bit 57 C ? PB02_16 
    bit 56 X ? .
    bit 55 X ? .
    bit 54 X ? .
    bit 53 X ? .
    bit 52 X ? .
    bit 51 X ? .
    bit 50 I ? PB03_01
    bit 49 O ? PB03_01 48 0 Z
    bit 48 C ? PB03_01
    bit 47 X ? .
    bit 46 X ? .
    bit 45 X ? .
    bit 44 X ? .
    bit 43 X ? .
    bit 42 X ? .
    bit 41 I ? PB03_04
    bit 40 O ? PB03_04 39 0 Z
    bit 39 C ? PB03_04
    bit 38 X ? .
    bit 37 X ? .
    bit 36 X ? .
    bit 35 X ? .
    bit 34 X ? .
    bit 33 X ? .
    bit 32 I ? PB03_07
    bit 31 O ? PB03_07 30 0 Z
    bit 30 C ? PB03_07
    bit 29 X ? .
    bit 28 X ? .
    bit 27 X ? .
    bit 26 X ? .
    bit 25 X ? .
    bit 24 X ? .
    bit 23 I ? PB03_10
    bit 22 O ? PB03_10 21 0 Z
    bit 21 C ? PB03_10
    bit 20 X ? .
    bit 19 X ? .
    bit 18 X ? .
    bit 17 X ? .
    bit 16 X ? .
    bit 15 X ? .
    bit 14 I ? PB03_13
    bit 13 O ? PB03_13 12 0 Z
    bit 12 C ? PB03_13
    bit 11 I ? PB03_14
    bit 10 O ? PB03_14 9 0 Z	
    bit 9 C ? PB03_14
    bit 8 X ? .
    bit 7 X ? .
    bit 6 X ? .
    bit 5 I ? PB03_16
    bit 4 O ? PB03_16 3 0 Z
    bit 3 C ? PB03_16
    bit 2 X ? .
    bit 1 X ? .
    bit 0 X ? .
    

Hehehe, ribet yah….
Nanti saya juga akan buat file definition untuk xc9572xl-vq64.

5 Komentar to “Jtagprog Data untuk Xilinx xc9572xl-vq44”

  1. Iyah ribet bener…. . Btw kabel jtag programmer IGLOO itu beli? dimana? harga?

  2. Sip banget….aq belajar di kampus tentang Xilinx tapi cuman simulasi gerbang ga tau jelasnya buat apa.soalnya lebih condong ke mikrokontroller…aku mau tanya mas, klo mau program Xilinx itu pake bahasa program atau cuman simulasi biasa???langkah2nya bagaimana??terimakasih..

  3. Memprogram Xilinx (CPLD atau FPGA) yang saya lakukan adalah lewat JTAG mas. Xilinx sendiri sedia kabel JTAG (parallel LPT dan USB). Untuk memprogram menggunakan Impact yang ada di Xilinx ISE webpack (free), untuk Windows dan Linux. Saya hanya punya kabel JTAG dengan interface LPT, sedangkan laptop nggak ada LPTnya, sehingga saya tulis saja menjadi file JTAG svf (serial vector format / ASCII, kalau di mikro ini seperti kode assembly) untuk kemudian diprogram dengan jtagprog di PC yang ada LPTnya.

  4. mas mau tanya gimana caranya buat perintah outputan sekaligus inputan ke gerbang yang satunya dan outputanya juga sebagai inputan gerbang satunya jadi saling mengisi, seperti rangkaian flip-flop.
    TOLONG BATUANNYA ! ! !

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: