- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm using DE10-Lite Board to project a rgb picture on a 480 by 640 VGA screen.
The picture size 460800 bytes. So 12 times 480*640 pixels.
Due to limited resources on DE-10 LITE platform I have to upload this picture at startup.
I'm using Virtual JTAG mega function along with tcl script on Quartus_stp to upload this file into the SDRAM.
The upload speed is about 6kbps.So it takes about between 10 to 11 minutes to upload the picture file.
Intel Hex format:
After that I'm able to see the picture on the VGA screen.
For example the .sof file generated for this project is about 3.2MB and it loads within 5 seconds.
Is there a faster IP Mega function that can do this file transfer in seconds and pairing with Quartus_stp or custom C#, C to host the file. ? Let me know if there is a sample project I can sample from.
Find tcl script used for the file transfer below
#upload file to SDRAM using VJTAG
global usbblaster_name
global test_device
foreach hardware_name [get_hardware_names] {
puts $hardware_name
if { [string match "USB-Blaster*" $hardware_name] } {
set usbblaster_name $hardware_name
}
}
puts "\nSelect JTAG chain connected to $usbblaster_name.\n"
foreach device_name [get_device_names -hardware_name $usbblaster_name] {
puts $device_name
if { [string match "@1*" $device_name] } {
set test_device $device_name
}
}
puts "\nSelect device: $test_device.\n";
#open_device -hardware_name $usbblaster_name -device_name $test_device
######################################################################################################
#########decimal to binary string##############
proc dec2bin n {
incr n 0
set r {}
while {$n > 0} {
set r [expr {$n & 1}]$r
set n [expr {$n >> 1}]
}
return $r
}
#########end decimal to binary string###########
##############3 MAX 10 lite##########################
open_device -hardware_name {USB-Blaster [USB-0]} -device_name {@1: 10M50DA(.|ES)/10M50DC (0x031050DD)}
###########################TEST#################################
for {set i 0} {$i < 0} {incr i} {
set ln [format %08s [dec2bin $i]]
device_lock -timeout 10000
device_virtual_ir_shift -instance_index 0 -ir_value 3 -no_captured_ir_value
puts "writing=$ln"
device_virtual_dr_shift -dr_value 3deaf4321 -instance_index 0 -length 35 -no_captured_dr_value -value_in_hex
device_virtual_ir_shift -instance_index 0 -ir_value 0 -no_captured_ir_value
device_unlock
after 100
}
##########################END TEST##############################
########################File transfer module###############################
#set fname "C:\\vga1short.hex"
#set fname "C:\\vga1.hex"
set fname "C:\\vga2.hex"
#set fname "C:\\secuence.hex"
set file [open $fname r]
set num_row 0
set segment 0
#while { $num_row <1024 && [gets $file line]>= 0 } {
while { [gets $file line]>= 0 } {
set segment_data [string range $line 1 12]
set EOF_len [string length $line]
if { $segment_data =="020000040001" | $segment_data =="020000040002" | $segment_data =="020000040003" | $segment_data =="020000040004" } {
if { $segment_data =="020000040001" } {
set segment 1
} elseif { $segment_data =="020000040002" } {
set segment 2
} elseif { $segment_data =="020000040003" } {
set segment 3
} elseif { $segment_data =="020000040004" } {
set segment 4
}
#incr segment
puts $segment_data
} elseif { $EOF_len<15} {
puts "End of data"
} else {
incr num_row
set address [string range $line 3 6]
set data [string range $line 9 12]
#puts "address:$segment$address : $data"
##################### JTAG TRANSFER #######################
set ln $segment$address$data
#set ln $data
set data_length [string length $ln]
device_lock -timeout 10000
device_virtual_ir_shift -instance_index 0 -ir_value 3 -no_captured_ir_value
#puts "writing=$ln"
device_virtual_dr_shift -dr_value $ln -instance_index 0 -length 35 -no_captured_dr_value -value_in_hex
device_unlock
#after 1000
##################### END JTAG TRANSFER #######################
}
}
puts "rows:$num_row"
close $file
########################End File transfer module###############################
close_device
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the meantime I came accros an article using jtag_atlantic dll with C# and using JtagUART IP. Doqnload happens in seconds.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ABoel,
You can use Intel FPGA Download Cable II ( previously known as USB Blaster II) for faster speed rate.
Intel FPGA Download Cable II can support up to 24 MHz TCK frequency.
Regards,
Matt
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the meantime I came accros an article using jtag_atlantic dll with C# and using JtagUART IP. Doqnload happens in seconds.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page