Forum Discussion
Altera_Forum
Honored Contributor
11 years agoData transfer between fpga (14 bits) vhdl block to NIos II system (16 bits)
Hi, I am writing C code to program Altera Nios II system in Cyclone IV E. The Nios II system is used to control some custom FPGA blocks written in VHDL in Quartus II. In the vhdl block ...
Altera_Forum
Honored Contributor
11 years ago --- Quote Start --- Let me see if I understand your flow: VHDL Block A --> signed 16 bit input to NIOS --> Calculation in NIOS --> signed 16 bit output from NIOS --> VHDL Block B In this flow, the "Calculation in NIOS" is your bottleneck, especially since it seems to be floating point. Why not do: VHDL Block A --> VHDL Calculation Block --> VHDL Block B Say, you don't want to do this... Looking at your C code you use floating point to calculate data_new. Then you do a logic operation on it (& 0x2000). This might be the source of error. You should convert from float to hex before your do bit manipulations. Also, you may not even have to use floating point... --- Quote End --- Thanks Krasner for your reply, much appreciated... VHDL Block A --> signed 16 bit input to NIOS --> Calculation in NIOS --> signed 16 bit output from NIOS --> VHDL Block B Yes, you are right, this flow is what I intend to do Regarding your second question, the calculation has to be done in NIios, I think I posted the same time as you, could you please see # 4, after taking your advice in# 3, I didn't use any floating point to calculate data_new. For your information, just a trial, I also try by directly reading data from vhdl block a, then without doing any calculation, then write directly to vhdl block b, still it is not producing a sine wave to vhdl block b...if I feed directly from vhdl block a to vhdl block b, I can see a sine wave sent to vhdl block b