Quantcast
Channel: Altera Forums
Viewing all 19390 articles
Browse latest View live

Source synchronous transmitter constraints

$
0
0
Hi all,
before I start, I have read the Altera doc on this many times and often seem to end up confused one way or another though I have successfully constrained such interfaces before now.

This one is slightly different. I have an internal PLL clock driving some logic which generates a source synchronous transmit interface at a decimated rate. Both the clock and data output are fed by registers.

The internal clock ("pll1|clk[0]") drives a counter to produce a decimated version "tx_clk" (divide by 4) and the data output "tx_data" is arranged by logic to transition on the falling edge of tx_clock (so that the remote receiver can use the rising edge of the clock to capture the data).

The following lines are what I have used previously, where tx_clk was at the same frequency as the internal clk (through use of a DDR output). You can see that TX_CLK has a -phase 180 option to indicate that it is inverted wrt clk. This seems to work fine.

create_generated_clock -name TX_CLK -source {pll1|clk[0]} {tx_clk} -phase 180
set_output_delay -clock {TX_CLK} -max $OUTPUT_DELAY_MAX tx_data
set_output_delay -clock {TX_CLK} -min $OUTPUT_DELAY_MIN tx_data -add_delay


The question is how should I modify this to use a TX_CLK driven by a register and decimated down? I have tried the following but the fitter complains:
"Warning (332088): No paths exist between clock target "tx_clk" of clock "TX_CLK" and its clock source. Assuming zero source clock latency." And timing fails, though my constraints don't seem to paint the correct picture for Timequest to do a proper analysis.

create_generated_clock -name TX_CLK -source {surface_card_0|pll_tx_clk|altpll_component|auto_g enerated|pll1|clk[0]} {tx_clk} -divide_by 4
set_output_delay -clock {TX_CLK} -max $OUTPUT_DELAY_MAX tx_data -clock_fall
set_output_delay -clock {TX_CLK} -min $OUTPUT_DELAY_MIN tx_data -clock_fall -add_delay


Any help gratefully received.
Thanks for reading.

mtd: partition "JFFS2 Filesystem" doesn't end on an erase block -- force read-only

$
0
0
Hello everybody

I am trying to boot linux with mmu kernel from rocket boards (http://rocketboards.org/foswiki/Docu...inuxUserManual)
in a ARRIA V GX STARTER KIT .

I can boot linux with filesystem from ram and looking at initialization i see a error mounting the filesystem

(mtd: partition "JFFS2 Filesystem" doesn't end on an erase block -- force read-only)

why this is happening?

Code:

U-Boot 2013.01.01-00121-g32c1d91-dirty (Mar 09 2016 - 11:43:09)


CPU  : Nios-II
SYSID : 00001234, Fri Mar 04 21:14:35 2016
BOARD : ARRIA V
ERROR: too many flash sectors
*** Warning - bad CRC, using default environment


Net:  No ethernet found.
Hit any key to stop autoboot:  0
## Booting kernel from Legacy Image at d6000000 ...
  Image Name:  Linux-3.10.31-ltsi-05131-g55fdf0
  Image Type:  NIOS II Linux Kernel Image (gzip compressed)
  Data Size:    3384377 Bytes = 3.2 MiB
  Load Address: d0000000
  Entry Point:  d0000000
  Verifying Checksum ... OK
## Flattened Device Tree blob at d5000000
  Booting using the fdt blob at 0xd5000000
  Uncompressing Kernel Image ... OK
Linux version 3.10.31-ltsi-05131-g55fdf0e-dirty (franz@franz-vpcpu-alloc: s0 r0
d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyJ0,115200 root=/dev/mtdblock0 rootfstype=jffs2 r
w
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Sorting __ex_table...
Memory available: 250024k/7573k RAM (1567k kernel code, 6006k data)
NR_IRQS:64 nr_irqs:64 0
Calibrating delay loop... 72.70 BogoMIPS (lpj=36352)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
devtmpfs: initialized
bio: create slab <bio-0> at 0
Switching to clocksource timer
jffs2: version 2.2. (NAND) -® 2001-2006 Red Hat, Inc.
msgmni has been set to 488
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
ttyJ0 at MMIO 0x8000058 (irq = 1) is a Altera JTAG UART
console [ttyJ0] enabled, bootconsole disabled
console [ttyJ0] enabled, bootconsole disabled
loop: module loaded
0.flash: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000089 Chi
p ID 0x008963
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
erase region 0: offset=0x0,size=0x8000,blocks=4
erase region 1: offset=0x20000,size=0x20000,blocks=1023
1 ofpart partitions found on MTD device 0.flash
Creating 1 MTD partitions on "0.flash":
0x000006000000-0x000007fdffff : "JFFS2 Filesystem"
mtd: partition "JFFS2 Filesystem" doesn't end on an erase block -- force read-on
ly
mousedev: PS/2 mouse device common for all mice
Freeing unused kernel memory: 5536K (d0189000 - d06f1000)
Starting logging: OK
Initializing random number generator... done.
Starting network...
ip: socket: Function not implemented
ip: socket: Function not implemented


Welcome to Nios II
nios2 login: root
login[659]: root login on 'ttyJ0'
# ls
# ls
# cd ..
# ls
?[1;34mbin?[0m      ?[1;34mhome?[0m    ?[1;36mlib32?[0m    ?[1;34mmnt?[0m
?[1;34mroot?[0m    ?[1;34msys?[0m      ?[1;34mvar?[0m
?[1;34mdev?[0m      ?[1;32minit?[0m    ?[1;36mlinuxrc?[0m  ?[1;34mopt?[0m
?[1;36mrun?[0m      ?[1;34mtmp?[0m
?[1;34metc?[0m      ?[1;34mlib?[0m      ?[1;34mmedia?[0m    ?[1;34mproc?[0m
?[1;34msbin?[0m    ?[1;34musr?[0m
#

and why these strange characters are appearing? "?[1;34mhome?[0m"

when i try to boot filesystem from cfi i have a error and the system crash........

could someone please help me?

thank you....

Exporting PLL outputs through conduits in Qsys

$
0
0
Hi all,


I am working on a FPGA design using Qsys software, however, I have some problems connecting signals among components.
In the figure that I have uploaded you can see a part of the global system. Basically, it is an Altera PLL core (from Qsys library) that synthesizes two clock signals from an external oscillator, and a customized subsystem that deals with an analog-to-digital converter and a digital-to-analog converter. The signals generated by the PLL are used both to drive the internal logic of each subsystem, and to provide clock signals to the external converters. The customized subsystem has two clock inputs, and two conduit inputs (red lines). The problem is that I can't connect outputs of PLL to normal inputs of the other subsystem. Anybody know how could I do it?


Attached Images

Quartus II Problem Report: The Quartus II software quit unexpectedly

$
0
0
I have managed to crash Quartus by trying to synthesise my Cyclone V project. 13% through the 'Fitter' phase a pop-up indicates the message in the title.
When I click on 'Search for a solution' it searches for the following string within the Altera website:

'Internal Error: Sub-system: CCLK, File: /quartus/periph/cclk/cclk_gen5_base.cpp, Line: 5538'

Anyone seen this before?
Thanks in advance,
Robbie.

How to save settings in Nios II 13.1 Software Build Tools for Eclipse

$
0
0
Hi,

This is about Nios II 13.1 Software Build Tools for Eclipse, which is new to me. I would like to know how to save all the environmental settings from Nios II 13.1 Software Build Tools for Eclipse to a file ?

So, if I need to move to a new computer in the future, I just need to reload the setting file to the new computer, instead of going through all the menus to set all the parameters correctly. Your help is very much appreciated. thanks.

-Yufeng

Overriding encrypted IP files - specifically PLLs

$
0
0
Folks,

wanted to know if anyone had any experience overriding or superseding some encrypted source.

There is a pll that generates an application clock that I would like to reduce the frequency of.

I have regenerated the corresponding pll with a slightly slower output frequency however the tools are not happy that there are 2 plls with the same name.

Just wondering of there are any tricks/config that would help to accomplish my goal.

Cheers,

DC

Qsys "Generate HDL" stops after save

$
0
0
Not a bug, but quite an irritation - I make changes to my Qsys System, and then hit "Generate HDL" and go make myself some tea or similar. And then come back a couple of minutes later to find that it has managed to "Save" the .QSYS file and then stops waiting for me to close that dialog box before it goes on to do the hard work of generating the HDL. Not a big disaster if it was just 2 minutes while I put the kettle on, etc, but if I've gone onto work on something else, eg add the new QSYS exported signals to my VHDL top file then that can put things back quite a bit! Why does it need me to "Close" the dialog after it has saved, can't it just bat on without intervention?

Cheers,
Simon

Error reading Quartus II Settings File

$
0
0
I'm not sure what happen everything was working fine on my pc I was able to work on project that were created using Quartus v15 on Quartus v13
However, suddenly I started to have this problem the project was created using Quartus v15 (in school) when I tried to open the file on my PC at home with Quartus v13 I got this error. I didn't have this problem before it just happened the project camera was working fine on my pc last week
Quartus v13 came with my board when I ordered it

125048 Error reading Quartus II Settings File C:/..../Project_Camera.qsf, line 245

when I checked the qsf file in line 245 it said
set_globe_assignment -name ENABLE_BOOT_SEL_PIN OFF

I tired almost everything to fix this error I tried to remove the line change it from off to on I even reinstalled Quartus but nothing seem to works


Question about Power supply for EPM240

$
0
0
HI,
epm240 have internal LDO, epm240g does not have internal LDO. I know, i can apply 1.8v on VCCIO and vccint for EPM240G.
I know i can apply 3.3v or 2.5V on vccio and vccint when epm240(not epm240g) is used.
My questions are :
1. can i apply 1.8v on VCCIO and vccint(connected together) for EPM240( not epm240g)?
2. can i apply 2.8v on VCCIO and vccint for epm240?

thanks :o)

Does Altera provide any tool for OpenCL to Verilog/VHDL conversion??

$
0
0
Hi,

I would like to know, if there is Altera support for converting the OpenCL code to any of the HDL like verilog or VHDL?


With regards,
G.Raga Ramya.

Nios2 opencore Ip status problem

$
0
0
Hi, I am indeed quite new to the nios system.

Howevr I have gotten it to run software on my FPGA before.

My problem now is that when compile my Qsys and hardware design to generate the .sof file, the "pzdyqx:nabboc" file is not generated, this result in that when I upload my sof file to my fpga, the opencore ip status window does not appear and such the nios2 cpu does not run at all...

Hence Icant upload any software or run it on my compiledd nios2 cpu.

Anyone have any clue to why this file stopped being generated? it worked with the same project just yesterday.

Thanks for answers, even due to the lack of hardware specifications

NIOS2 GEN2 cpu ready signal

$
0
0
Hi,

I am currently running the NIOS 2 GEN 2 simulation in Modelsim, i would like to know when the NIOS 2 GEN 2 CPU is going to the ready mode to accept the command, can you point out where to get this signal? thanks.

regards,
KOk SHyang.

Timing requirements to a part of a circuit

$
0
0
Does anybody know how to set timing requirements to a part of a circuit? I mean there is a critical part of a circuit that needs frequency optimization, and it's not rational to apply frequency constraint to all block. Thanks in advance.

How to check if ALTERA USB-Blaster is connected

$
0
0
Hi all,

I am looking for a way to programmatically determine if the Application is starting on its own or if it gets started with a connected ALTERA USB-Blaster (JTAG).

Until now I had two separate Project configurations in the IDE containing the defines _DEBUG and NDEBUG.


Project details:
- Nios2/f
- ACDS 13.0sp1
- FreeRTOS

Thanks for your suggestions!

AXI Transaction Timing in HPS busses

$
0
0
I'm hoping that someone could help me out here in figuring out how atomic accesses are processed in Linux when accessing the lightweight bus. As an example:

The lightweight bus is running at 60 MHz, and the HPS at 800 MHz, with an L3 bus speed of 185 MHz. Supposing I do a single register read of a memory-mapped register, doesn't this mean that the thread will be blocked for at least (n * 60MHz) clock cycles? And does this mean that the kernel is also blocked, or is the Linux kernel able to run other threads doing other L3 device memory accesses until the read is done? I know that on an RTOS these reads would be atomic, and definitely would block the kernel until complete.

If someone knows where in the ARM kernel code the memory accesses are defined, I can probably work it out from there as well.

Thanks!

Clock out from GX Transciever

$
0
0
I'm planning on sending two lanes of JESD204B data down a QSFP cable. By my understanding this should be quite possible as there are four CML lanes in one direction which is enough for the two data lanes, and the devclk/sysref signals.

On the dev kit I am using (Stratix V GS DSP Development Kit) there is a QSFP connector which is wired up directly to the high speed transceivers of the FPGA, which means I need to use those to output the JESD data (easy) but also the devclk/sysref.

I am aware that I can use on of the transceivers as a clock input, but I am curious if I can use them as clock outputs. I couldn't find anywhere that specifically states this is possible. I think it should be, after all a clock is basically just alternating data.

Would it just be a case of feeding out the clock signal from the top level of the design and assigning it to the transceiver pins? Or would I need to instantiate high speed transceivers to send out the clock?

[hr]

I tried the first option (just assigning to transceiver pins), but as expected, this didn't work - the fitter gave the following error:

Quote:

Error (184016): There were not enough differential output pin locations available (1 location affected)

help with alera de2 ethernet

$
0
0
hii
i need direction, i was able to implement the de2_net program, the altera send and recive ethernet packet with looper connected.
how i can change it to communicate with the pc in ipv4 communication.
i neet to recive and trnsmit udp packets betwwen the atera and the pc
plz help i need some start..

Are templates in OpenCL Kernels supported somehow

$
0
0
I am installing Caffe but want to use FPGA acceleration instead of GPU. However, I get an error when compiling.
I am assuming that Altera's aoc doesn't handle templates (yet).

Anyway around this? templates coming soon? already there but "template __attribute"



template <class T>
__kernel void BNLLForward(const int n, __global const T* in, __global T* out) {
int index = get_global_id(0);
if (index < n) {
out[index] = in[index] > 0 ? in[index] + log(1. + exp(-in[index])) : log(1. + exp(in[index]));
}
}
template __attribute__((mangled_name(BNLLForward_float))) __kernel void BNLLForward(const int n, __global const float* in, __global float* out);
template __attribute__((mangled_name(BNLLForward_double))) __kernel void BNLLForward(const int n, __global const double* in, __global double* out);


========yields the following errors==========


/home/poz/altera/Caffe/OpenCL-caffe-stable/src/caffe/ocl/bnll_layer.cl:29:1: error: unknown type name 'template'
template <class T>
^
/home/poz/altera/Caffe/OpenCL-caffe-stable/src/caffe/ocl/bnll_layer.cl:37:1: error: unknown type name 'template'
template __attribute__((mangled_name(BNLLForward_double))) __kernel void BNLLForward(const int n, __global const double* in, __global double* out);
^


Thanks in advance (I hope)

Dan..

VIP CVO II isn't working

$
0
0
Hi folks,
I've seen a couple of threads about this, but hopefully this one is slightly different!

I've got an SDI in and SDI out which work fine. I've connected the SDI in to a CVI II->CPR (to change 10 bit CYCY to 20-bit (YC)(YC)) -> DIL II -> Scaler II -> FB II -> CVO II. I've connected various AV-ST Video Monitors and I can see the data coming in, I can see it gets through the DIL II, and even comes out of the FB II, and with Signal Tap II I can see the data going INTO the CVO II. But I cannot persuade it to come out!

I've connected a JTAG Avalon Master bridge and used System Console to check things, and found that if I use that then the CVO doesn't have any data in the registers. So I tried to fill that all on for embedded syncs etc (can't find where it's supposed to set this, just that it might do it if I fill that bit of info in but not the separate syncs bit), and it then tells me that the mode is set, but the status bits only says that bit 0 is set, no underflow, and in particular no "locked" bit.

The only curious thing I can find is that although the CVO II is set for 1080p60 and is fed a 148.5MHz clock (in fact all blocks are clocked with that) it is only pulling frames out of the FB II at 30 frames/s. I assume the CVO has to ask the FB for data, otherwise how would the FB know when to drop or repeat frames? But why would it only ask for 30 frames per second if it's been told it's 60? Having said that, you don't tell it how many fps you want, you just feed it a clock and have to hope it can work it out!

My register settings are attached in the picture. I should point out that address 0x0 is the CVO, 0x400 is the CVI and 0x480 is the FB.

Any clues greatly appreciated.
Cheers,
Simon
Attached Images

Odd ADC issue

$
0
0
Okay, to start off, I'm not sure this is an FPGA issue, or a more fundamental sampling issue, but I figured the folks here might be able to give me a pointer or two.

I have a custom data acquisition board/controller with a Cyclone 4 (EP4C15) and a pair of ADAS3022 ADCs running in parallel. Both ADCs are being operated at 1MSps, with an effective rate of 125kSps per channel. The channels are scanned sequentially by the driver, with the data being dumped into a dual-port RAM where the channel number forms part of the address.

That part appears to be working flawlessly, and I can use SignalTap to recreate perfect waveforms by tying into the write side of the memory interface between the driver and the controller. I checked several channels and the signals are being replicated just as they appear on the scope. (albeit with slightly lower resolution)

Now, where things get hinky is on the read side. The controller reads some parameters at 100 Hz, and other parameters at 25 kHz. For the most part, the 100 Hz process works fine - it pulls four samples from the buffer, computes the differential voltages, does some error calculations and adjusts the system, then repeats until the differential error is within tolerable limits. This has been highly reliable so far, with no known instances of failure.

The 25kHz process, on the other hand, has been having issues. Some of the signals we are measuring are nearly square, and when the data is being pushed out for collection, we see a lot of junk in the data. Specifically, repeated edges, dropouts, etc. I initially thought that perhaps it was a memory access problem, so I rewrote the controller to bypass the DMA mechanism and literally copy/paste using CPU instructions, only to see identical garbage data. Now I am beginning to think there is some more fundamental issue.

Now, my original thought was that I could subsample the output of the ADC driver, which is running at 125 kSps/channel, and the worse that would happen is that I might miss fast edges (which is fine, we are measuring fairly long square wave like signals) or be off a bit in time. Instead, it looks like random noise is being generated during every step function of the signal being measured. Once the signal is stable, this effect seems to go away, which leads me to conclude that perhaps this is an aliasing issue.

As an aside, the memory interface between the ADC firmware and the controller CPU is double-buffered so that the ADC process isn't ever writing to the same page that the controller is reading. The ADC firmware verifies that the controller isn't reading it's side before flipping the page. Also, both sides are running at the same clock frequency (100MHz) and the entire design is making timing. I verified this by setting up a SDC file and running TimeQuest. This doesn't appear to be a low-level timing issue or RAM setup & hold issue.

My current plan is to simply pace the ADC subsystem with the 25kHz process, rather than letting it collect samples at the ADC's fastest data rate, which should resolve the issue. However, I'm still not sure why my original design is having this issue, and I'd like to understand the underlying problem.

Thanks!
Viewing all 19390 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>