这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » FPGA 只能做數位處理,那麼該如何使用演算法完成設計?

共12条 1/2 1 2 跳转至

FPGA 只能做數位處理,那麼該如何使用演算法完成設計?

工程师
2011-03-03 13:07:46     打赏

FPGA 只能做數位處理,那麼該如何使用演算法完成設計?




关键词: 能做     數位     處理     那麼     如何     使用     演算法     完成         

高工
2011-03-03 14:31:44     打赏
2楼
先用MATLAB做算法验证,然后再用Modelsim做RTL仿真

工程师
2011-03-03 17:00:50     打赏
3楼

可否舉例?
如果演算法內有要用到 乘法器 or 除法器的話?
怎麼計算?
乘法器可能還可以用 Table 的方式去做
而且還不能有 浮點數
那除法器怎麼做?
若設計是用最底層的 DFFE 去設計
那麼演算法是用寫 code 的方式去設計
很難想像 演算法的 設計怎麼設計!!


高工
2011-03-04 18:41:01     打赏
4楼
楼主为何喜欢用繁体字呢?
我觉得,做设计应该专注于与项目相关的应用层设计,能用IP的就用IP。尽可能选用有硬件乘法器的FPGA,如果实在没有,也有多种很成熟的乘法器方案,借鉴一下。
至于除法器,没用过。不过构建除法器是非常麻烦的,最好能避开,想办法用别的方法

工程师
2011-03-06 18:53:21     打赏
5楼
因為我使用的是繁體的Windows
使用 FPGA 設計
雖然使用 IP 很方便
但是若轉換至不同的供應商IC時
變成不易轉換,會被 IP 給限制住
而且…一旦換了 不同供應商
原來的 Timing 設計要再重新 Tune 過
所以…還是喜歡使用自己設計的方式來做
除非是很高速設計…一定要使用到 IP 
且開發時程要很快就設計出來
像我的設計都是儘量使用底層 DFFE  來設計
但是…一定有許多設計是無法只直接使用 DFFE 來設計
所以才會想說有一些演算法…一定要做一些計算
就無法使用底層 DFFE 直接設計
所以想知道有哪些演算法…且可舉例說明
像是 Filter …是否有辦法使用 verilog 來做數位濾波器??
或是其他的設計呢???

高工
2011-03-07 17:02:26     打赏
6楼
verilog或VHDL就是鼓励做RTL设计的,而且设计工具也逐级向着应用层和系统层发展,着就好比C等高级语言和汇编的关系,当应用复杂时,用DFFE就很困难了。

FIR Filter可以用Verilog描述,就是按照FIR的基本的乘加结构来写就可以了,如果要高效的话,就要麻烦些。
如下的Matlab代码,可以直接生成FIR的verilg代码

% d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2', 0.25, 0.3, 60, 0.3, 60 );
d = fdesign.lowpass('Fp,Fst,Ap,Ast',0.3, 0.7, 0.3, 60);
Hd = design(d, 'equiripple');  % Create filter
fvtool(Hd);
Hd.arithmetic='fixed';
generatehdl(Hd, 'Name', 'Sim_PA_IQDMFIR', 'TargetLanguage', 'Verilog', 'TargetDirectory', '../Sim' ); %Generate  code

工程师
2011-03-07 20:00:54     打赏
7楼
感謝!
我就是一直使用 DFFE 來設計!
而且,也一直覺得使用 DFFE 設計的話
Timing 影響到設計的機率就會較低
就是說…不會原來 compiler 可以,可能再變動一下設計,這次的 Timing 就不對
…所以…也一直深信這個定律不變
但是,目前在外面的設計,使用 IP 是外界目前好像比較常用的設計方式
所以,我想來這邊學習一些我不了解的設計
如你上述所提的 FIR 可直接生成 Verilog …這邊該如何生成呢??
我沒用過耶…
可否再描述詳細?
而且…這怎麼包進 Altera or Xilinx 內呢??
那又該如何去模擬呢??
 

高工
2011-03-07 21:15:05     打赏
8楼
% d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2', 0.25, 0.3, 60, 0.3, 60 );
d = fdesign.lowpass('Fp,Fst,Ap,Ast',0.3, 0.7, 0.3, 60);
Hd = design(d, 'equiripple');  % Create filter
fvtool(Hd);
Hd.arithmetic='fixed';
generatehdl(Hd, 'Name', 'Sim_PA_IQDMFIR', 'TargetLanguage', 'Verilog', 'TargetDirectory', '../Sim' ); %Generate  code


在Matlab中可以直接生成FIR滤波器的verilog,我看了生成的代码,比较格式化。
仿真过,可以用,但还没放入工程综合过。

Altera 或 Xilinx的,建议直接用他们官方的IP,相信性能是最好的。如果非要自己设计,那也是可以的,不过也要参考一些资料和设计,FIR的设计很成熟了,现成的东西很多。
 
但建议能用IP的还是用IP,除非考虑移植性或版权等因素。

个人觉得还是应该更专注于项目的应用层设计。就像设计电路板,通常情况下没必要去搞清芯片内部是怎么设计的,知道原理和接口就可以了

院士
2011-03-07 21:19:23     打赏
9楼

这个很给力~~~~~~~~~~


工程师
2011-03-07 23:52:04     打赏
10楼

這樣的話…還是直接使用供應商提供的IP好了!
只是使用IP的話,一旦有問題的話…就麻煩了
可以的話…還是儘量使用自己設計的code
這樣比較安心些!
版主知道還有哪些設計是一定要用IP來設計的呢?


共12条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]