深入探讨FPGA设计精髓
本篇为之前“FPGA基础篇”姊妹篇
1. 硬件描述语言——Verilog + VHDL
首先,要掌握数字电路原理。学习数字电路原理是迈出的第一步。在掌握数字电路原理之前,必须先了解基础知识。然后,你可以选择学习Verilog或者VHDL。如果你已经掌握了C语言基础,建议选择VHDL。因为Verilog与C语言相似度较高,容易混淆,最终会发现自己花费了很多时间去区分这两种语言,而不是学习如何使用它们。当然,你也可以选择Verilog,毕竟Verilog的应用比较广泛。
接下来,找到一个示例来复制代码。复制代码的目的是熟悉语法规则和编译器。然后模仿编写,并最终在不阅读书籍的情况下编写代码。编译代码后,打开RTL图表,看看出了什么样的电路。
HDL是一种硬件描述语言,突出了硬件作为特点,所以要以数字电路的思维来思考HDL,而不是使用C或其他高级语言。
2. 独立完成小型和中型数字电路设计
现在,你可以设计一些数字电路,比如电子吉他、交通信号灯、DDS等。在这个阶段,你要做的只是根据规范要求或时序图,在HDL中设计电路以实现它。你需要一个开发板,在掌握HDL之前不需要购买开发板。你不用每次编译通过都下载代码,我们使用ModelSim仿真。如果仿真不能通过,那就没有必要下载。在这里首先掌握简单的测试台就可以了。
3、掌握设计方法和设计原则
到这里你会发现,你的电路虽然是正确的,但会提示很多警告。这时候,你需要学会同步设计原则,优化电路,无论是优先速度还是优先面积,时钟树应该如何设计,如何同步两个异频时钟等等。学会加快编译、静态时序分析、嵌入式逻辑分析器是必须的。如果有不理解的地方可以暂时跳过,因为这部分也需要足够的练习,才能有更深的理解。
4、学会提高开发效率
因为Quartus和ISE编辑器功能较弱,影响了开发效率。因此建议使用Sublime文本编辑器中的代码片段功能,减少重复工作。ModelSim也是一种常见的仿真工具,学习TCL/TK编写自己的DO文件使仿真自动化。你可能会手动备份你的代码,但专业人士使用版本控制器,所以掌握GIT以提高效率是很重要的。文件比较工具Beyond Compare也是一种比较常见的工具。此外,你还可以使用System Verilog代替测试台,这样会更加高效。如果你正在做IC验证,你必须掌握System Verilog和验证方法论(UVM)。
掌握了TCL/TK之后,你可以学习虚拟JTAG(ISE也有类似的工具),制作自己的调试工具。另外,如果有时间,最好学习一些Python脚本,这样可以一劳永逸。
5、加强理论基础
此时,你已经可以使用FPGA了,但仍有许多事情做不到(例如FIR滤波器、PID算法、OFDM等),因为理论学得不够扎实。我们将大致分成几个方向供你参考,然后跟随理论课来掌握。
1、信号处理——信号与系统、数字信号处理、数字图像处理、现代数字信号处理、盲信号处理、自适应滤波器原理、雷达信号处理。
2、接口应用——UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太网接口)、SATA、光纤、DisplayPort。
3、无线通信——信号与系统、数字信号处理、通信原理、移动通信基础、随机过程、信息论与编码。
4、CPU设计——计算机组成原理、微控制器、计算机体系结构、编译原理。
5、仪器仪表——模拟电子学、高频电子电路、电子测量技术、智能仪器原理与应用。
6、控制系统——自动控制原理、现代控制理论、过程控制工程、模糊控制器理论与应用。
7、压缩、编码、加密——数论、抽象代数、现代编码技术、信息论与编码、数据压缩简介、应用密码学、音频信息处理技术、数字视频编码技术原理。
现在你会发现,原来FPGA涉及这么多知识,你可以选择一个感兴趣的方向,但工作可能会涉及到几个方向的知识,所以理论学得越多越好。
6、学会使用MATLAB仿真
在设计FPGA算法时,多少会用到MATLAB,也可以起到辅助FPGA视觉算法硬件化,比如CRC的系数矩阵、数字滤波器系数、各种表格和文本处理等。此外,MATLAB还可以用于调试HDL,通过将MATLAB的计算结果与HDL逐步计算进行对比,你可以知道哪里出了问题。
7、充分练习
此时你至少已经阅读了芯片手册几次(可以在官方网站上找到),然后可以为自己的方向做一定数量的练习(期间保持良好的代码风格,增加组件示例语句的可读性,绘制流程图/时序图,编写文档的习惯)。
例如:通信类可以做调制和解调算法,仪器类可以做总线分析仪等。但这些算法在书中只给出了一个公式、框图,实际的差距很大,你甚至可能觉得书写得很肤浅。实际上,当你达到这个阶段时,你已经达到了专业水平,自由地了解一些前沿技术,这将有助于你的职业规划。
8、图像处理
1、Photoshop。花一两周时间学习PS,对图像处理有一个大致的了解,了解各种图片格式、直方图、色调、通道、滤镜、拼接等基本概念,并能够使用它。这部分是零基础的,目的是让你对图像处理有一种感性的理解,而不是一堆公式推导出来的。
2、基于MATLAB或OpenCV的图像处理。在这个阶段,只要学习简单的调用函数即可,暂时不必深究实现的细节。
3、图像处理的基本理论。这部分理论需要较高的数学基础,包括复变函数、线性代数、信号与系统、数字信号处理等基础知识,如果基础不好,建议先补足基础再来。无法理解理论的也可以暂时放下,也许学习后自然就能有所启发。
4、基于FPGA的图像处理。将前面学到的理论应用到FPGA上,如果你已经达到了第七阶段的水平,你将很容易独立完成图像算法的设计(图像处理离不开接口,要求在第五阶段以上)。
5、深入学习数学。要想在算法上达到更高的水平,必须需要更多的数学知识,所以这里建议学习实分析、广义分析、小波分析等。
9、电子学的终点是模拟电子
现在,你对FPGA内部的东西已经不难了,但是FPGA输出的信号却无法控制。这时候就必须学好模拟电子。例如:电路分析、模拟电子学、高频电子电路、PCB设计、EMC、SI、PI等,可以设计一块带有两片DDR3的FPGA开发板,即使通关。
10、学习是个坚持的过程
能达到这个水平,说明你已经很不错了,但是还有许多事情要学,因为FPGA经常需要与CPU交互,也就是说,你必须与软件工程师沟通,所以你也必须懂一些软件知识。例如,ARM(Xilinx ZYNQ和Altera的SOC会使用ARM硬核)。总之,学习是个长期坚持的事情。正因为技术无止境,所以FPGA工程师几乎没有年龄上的职业危机。所以,加油吧!
免责声明:本文采摘自“大印蓝海科技”公众号,本文仅代表作者个人观点,不代表萨科微及行业观点,只为转载与分享,支持保护知识产权,转载请注明原出处及作者,如有侵权请联系我们删除。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由walkonair转载自SLKOR官网,原文标题为:FPGA进阶篇,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】如何在FPGA上实现低成本开根号运算?
开根号运算是科学计算和工程应用中基本而重要的运算之一,在QuartusII和ISE开发软件中,都集成了开根号的ip核,这些底层源码对于用户来说是不可见的,那么如何在西安智多晶的FPGA中实现开根号运算,是本文要探讨的课题。
设计经验 发布时间 : 2020-07-22
【经验】西安智多晶5000系列FPGA内嵌MCU调试测试指南
西安智多晶推出的Seal 5000 FPGA SA5Z-30系列内部合封Cortex M3硬核,最高主频可达200Mhz,32KB数据RAM和128KB指令RAM。本文针对FPGA内嵌M3硬核的使用做简洁的开发过程。
设计经验 发布时间 : 2022-10-10
【经验】解析智多晶合封系列FPGA中DDR2的应用
合封系列FPGA可以应用在需要大量缓存数据的场合,比如工业数据采集卡、视频处理应用以及无线通信中的数据采集板,如果各位读者朋友们有需要用到FPGA+DDR2架构的,可以联系智多晶,智多晶会提供完整的DDR2 Control IP,甚至亲手为用户写好应用层部分的程序,并为用户调试好。
设计经验 发布时间 : 2021-05-26
【应用】LDO AMS1117-3.3-SOT-223应用于小基站,输入电压高达30V,可直接给MCU供电
SLKOR的AMS1117-3.3-SOT-223 LDO在小基站中的应用。在小基站的电源链路设计中,一般会把两颗控制芯片FPGA\MCU的电源分开,而且FPGA需要的电流比较大,需要的电平也有好几种,而MCU一般只需要一颗3.3V的芯片供电。
应用方案 发布时间 : 2022-08-16
SLKOR(萨科微)功率元器件和模块选型指南
目录- 公司介绍 碳化硅场效应管/碳化硅肖基特二极管/场效应管 超结场效应管/IGBT单管/可控硅 二极管 静电保护器件/瞬态抑制二极管 三极管/电源IC 运算放大器/达林顿晶体管阵列/整流桥/霍尔传感器 光耦/石英晶体谐振器
型号- BTW69,MB10S,SL25T135FL,BTA26-1000,SL2306,SL2307,MB10F,SL2308,SMCJ440CA,SL2309,SL55X,SL40N60C,SL2310,SL2312,SL3400,SL54X,SL3402,SL3404,SL4614,RS1A,RS1M,SMF5.0CA,SS120F,SL13N50FS,MMBT4401,FMMT591,MMBT4403,SLESDL0603-24,LM317,2N5551,WE07DF-B,MMSZ5259B,SL2016384MXXX,S2MB,SL2301,SL2302,SL53X,SL2305,1SMB5921B,BTB20-600,SL322526MXXX,SL25N10,S2MF,SLESD8D36V,SL252025MXXX,SL201624MXXX,SLESD5Z5.0C,SL201616MXXX,2SK3018W,SL4949,SS52BF,2SB1261,SL10N65F,ZM4727,2SB1132,1SMA4777A,DB307S,SL1609SH,SL8N65F,SL05N06A,GBLC15CI,2SA812,SLESD8D15V,FMMT493,SMDJ170A,FMMT491,WE05DF-BS,2SC3357,SL78LXX,SL1609SL,SMF5.0A,US1AF,SL12020BT,MMBZ5221B,MMDL914,SL1609TH,SL05N06Z,RS2A,SL42764,SL1609TL,SL53N65CT,SS320BF,RS2M,SLESD5Z7V0,FMMT489,UMB10F,GBLC03CI,MM5Z2V0,MMBT5401,BT136-600,SS22,LMV321,SF1006DS,SL403,2N5401,SL6520B,SL12030BT,KBL4005,UMB1F,SMF58CA,SS32,SMBJ5.0,2SK3018,SMBJ170CA,KBL410,BTA60-1200,GBLC12CI,US2AB,SL322512MXXX,WE24DF-B,SS12,SL3N170AP,US2AF,SMF58A,SL503224MXXX,SL50T65FL,SL1619SH,SL322527MXXX,SL42744D,SL1619SL,SS210B,LM321,SLESDL0603-16,SL201632MXXX,GBU410,IRLML6401,BCP51,BCP53,BCP52,BCP55,BCP54,BZX84C43,BCP56,SL1619TH,SL2733,SL1619TL,SL52X,TL432,TL431,SS52,NUP2105LT1G,SL201625MXXX,SL49SM3579M20P-20,SL252026MXXX,BTA80-1200,SLESDL0603-05,BCP68,SLESD8D3V3,MMSZ5221B,TL431B,SL49SM26M20P-20,F1A,TL431A,DB207S,GBLC24CI,SS220F,2N7002E,BT136-800,F1M,SL85XXX,SL4822A,SL76N60CT,MC34063S,PC817,SL18N50F,SL2328A,BT137-600,MMBZ5262B,SM24C,SM36C,LMV358,RS3AB,SS310C,SS310B,DB107S,SM12C,DB301S,SL40T120FL,KBL610,SL40N65CF,SL80N65CTL,SL12005B,GBP4005,SL49SM25M20P-20,SL22N120A,SL002N02K,SLESD5Z24,MMDT2222A,US2MF,SL503225MXXX,US2MB,SL252024MXXX,SLESD3B5CM,SL05N10A,SL12P03S,C945,US2A,BFG520,SL252016MXXX,SL322532MXXX,SL2319A,SL40N65CT,SLESD5Z36,GBU6005,RS2AF,SL9013MXXXX,SS320F,US2M,SL73XX,ULN2803,SD20C,2SB1197K,SL4409N,ZMM2V0,SL12015B,SLESD5.0U035,US1A,SL10N120A,BTA08-600,SL0501,SL8205S,SL75T65FL1,US1M,SL80N120A,BAS316,2SD965A,S8550,SMBJ5.0C,S6AC,M1,BSS123,SL0601,LM2904,M7,SLPESD15VL1BA,LM2902,GBP3005,SL2309A,SLPESD0402M07,BT137-800,MM1Z39B,SLESD9B5.0ST5G,SLPESD0402M05,SMCJ440A,SMAJ5.0CA,SLPESD0402M03,GBU8005,BTA12-600,SLPESD2CAN,SM20C,RS5AB,SS520F,SL201630MXXX,MMDT3904,BSS138,BTA41-1600,FR101,MMDT3906,SL322525MXXX,SM4001PL,FR107,SMDJ5.0CA,BTA06-600,BZT52B51BS,SLPESD0402M18,SL17010BT,SL322530MXXX,SLPESD0402M16,WE12DF-B,SLPESD0402M12,SL15T65FL,MM5Z75,SMDJ5.0A,SL80N10,DB201S,SL54MXXXX,S1A,S5AC,SL12010B,S5AB,2SD1624,SL6206-XXMR,SMCJ5.0CA,S1M,B772,KBL6005,SMBJ170A,MMBT2222A,AMS1117-XX,SL75XX,DB101S,SL322524MXXX,GBP2005,S2A,BT138-600,2SC1815,SL10N10A,SLESD9B3.3S,SL4813A,S2M,SL002P02K,SL50N120A,SL9435A,SL4184,S10AC,SL80N65CT,1SMA4728A,RS5MB,BC857B,SLESD5Z15V,SL6508B,SL4264-2,ZMM200,MMDT2227,SL1625SL,SM08C,SL252030MXXX,SL20N10,GBU4005,SD03C,SD15C,SL1625SH,BC856B,BTA10-800,SL1625TL,SL306X,GBP210,BT169D,SL4284,SL4041,SL1625TH,SL1613SH,ABS2,BTA26-800,SS510B,ABS10,1N4001W,SS510C,SL6506B,S3AC,S3AB,KBP4005,2SC1623,2SC2712,SF1001DS,ES1JF,2SD1781,1SS226,BZT52B43,SL1613TL,SL305X,SS52F,SL1002B,BTA41-800,SD05C,SL4275,SL1613TH,SS52B,SS52C,S10MC,SS525,BT138-800,SLESD2401QC,2SD1898,BZT52C2V4S,SL2333A,SL100N03,DSK220,SL40N60CF,D882,ES2JF,GBP310,SL3N06,SL304X,SLM511,SL10P04S,SL49SM24M20P-20,BT139-600,1SS355,SL4N65F,S2AF,SL503212MXXX,SL3401S,1N4148W,S2AB,C1815,BTA04-600,ABS210,MMBT3904,ES2JB,KBP2005,MMBT3906,SL9945,MAC97A8,SL78XX,SL1623SL,ABS201,SL303X,MAC97A6,BAV99,SL17025BT,SLM501,SL2192,SLPESD0201M24,KBP210,BZT52B3V0BS,SL1623SH,RS1AF,BTA41-1200,SLESD5Z12V,MB1F,SL4407A,1SS181,BC848B,78MXX,SM15C,SS510BF,GBP410,SM03C,MB1S,SL-10XX,SL302X,LL4148,SLM611,SLPESD3V3L1BA,SLESD5Z2V5,SMAJ5.0A,MMBTA05,SL1623TH,MMBTA06,SL20T65FH,SL14N120A,SL1623TL,BT131-600,BC847B,SLPESD12VL1BA,2SC2873,DSK310,SL40T65FL,ES3JC,S8050,ES3JB,BAV70,MMBT2907,MCR100-8,BCX51,BSN20,MMBD4148,BCX53,SL301X,BCX52,BCX55,SLM601,SM18C,SLESD5B5CU,BCX54,SLM600,SL322516MXXX,BAV20W,BCX56,KBP310,SL7603PXXXX,SL2302M,SLESD8H5.0CT5G,IRF640,SL6800C,SL7N65CN,SD12C,SLESD8D5.0C,S9013,SD24C,S9014,S9015,BC846B,SL10N06A,S9012,BT139-800,SL7N65CF,KBP3005,SL7N65CD,MCR100-6,BZT52C2V4,SL7N65CI,SM05C,2N3904,SL3139,SS8550,SMAJ170CA,US1MF,BAV21W,SL8820,S9018,2N3906,SD36C,MM3Z75,BZT52C43S,BTB10-600,MMBTA55,SLW611,RS1MF,SL3134K,SS110,SS32BF,SL11N65CD,1N4007W,SL11N65CF,SL6512B,SL252012MXXX,SL8052A,SL1629SH,MM1W3V3,SL1629SL,KBP410,SL20162712MXXX,SLPESD5V0L1BA,SS22B,1N4148WS,SL60T65FL,1N4148WT,DSK32,SS22F,MMBTA56,SLW601,SM4007PL,MMBTA44,SL6540BT,MMBTA42,SL49SM6M20P-20,SL252040MXXX,SL36N120A,SL12040BT,SL201626MXXX,SL50N06D,SL1629TH,SL50328MXXX,SL827,BT151,BT152,SL1629TL,SL49SM8M20P-20,SL49SM27M20P-20,SL826,DSK22,SL11N65CQ,SL49SM12M20P-20,SL49SM16M20P-20,S6MC,SL49SM10M20P-20,2N7002,M1F,SLPESD0201M05,MMBT6517,SL322540MXXX,GBLC08CI,2SC5824,ES1K,2SC4617,GBU610,SL6510B,BZT52B2V4,SL12N65F,SL1605SH,ULN2001,SL1605SL,MM1W330,BSS84,BZX84C2V4,DSK12,MM3Z2V0,SL9193MXXXX,BAW56,SL21N65CF,ES1AF,SLPESD0201M03,SL25T120FL,BTA24-800,ULN2003,ES2A,SS12F,6N137,SL15N65CD,6N136,SL15N65CF,LM2575,6N135,LM2576,SMAJ170A,SMDJ170CA,SL851,SL252027MXXX,S5MB,SL1605TL,SL503216MXXX,
What are the SLKOR LDOs?
SLKOR‘s LDO series stands out due to its excellent performance, diverse product line, and broad application scenarios, making it a preferred power management solution for designers and engineers. In the future, as electronic devices increasingly demand advanced power management, SLKOR will continue to focus on technological innovation to drive the further development of LDO products.
产品 发布时间 : 2024-10-18
【应用】中科亿海微高温高可靠FPGA EQ6GL9用于地质导向随钻测量领域,可在125-175℃稳定运行 ∣ 视频
中科亿海微高温高可靠FPGA芯片及应用
应用方案 发布时间 : 2023-04-10
【产品】基于28纳米技术工艺的Seal 5000系列 FPGA,20K到200K的查找表逻辑单元
西安智多晶推出的Seal 5000 FPGA同样采用正向设计,芯片软件设计流程和ISE/Quartus II/Diamond 类似。智多晶的芯片架构可以接受ISE和Quartus II的代码,使用自主研发的FPGA开发软件“HqFpga”, 完成综合、布局布线、时序分析、配置编程和片内逻辑分析。智多晶的Seal 5000系列FPGA芯片和Virtex-7系列的FPGA芯片相容。
新产品 发布时间 : 2019-09-30
智多晶SA5T-100系列FPGA DP IP简介
西安智多晶微电子有限公司的SA5T-100 FPGA属于Seal(海豹)5000系列器件,本系列器件建立在一个优化、高性能28nm工艺基础之上。通过使用低成本设计,并将新架构与多个优化功能的嵌入式模块融合来实现高速FPGA,使系统设计师在降低成本的同时又能够满足不断增长的高性能应用要求。
设计经验 发布时间 : 2024-06-20
Kinghelm and SLKOR Microintelligence ‘Chain‘ 2024 Future Foreign Trade Conference
On August 15, the 2024 Future Foreign Trade Conference, a dedicated knowledge carnival for global foreign trade professionals, was held at the Shenzhen International Exhibition Center. Qiu Huilin, Director of Foreign Trade at Slkor, and Song Yuanming, Foreign Trade Manager at Kinghelm, were among the attendees.
原厂动态 发布时间 : 2024-09-10
【经验】如何在Modelsim上仿真智多晶FPGA IP core
对于安装了智多晶FPGA编译软件的小伙伴们来说,也许会关注如何调用Modelsim来仿真Hqfpga软件中自带的IP,本文笔者将分步骤带大家走一遍流程,分编译库文件、仿真IP core来介绍。
设计经验 发布时间 : 2020-06-09
【应用】基于FPGA的实时视频信号处理系统设计,实现了输入图像的清晰化
视频处理主要分为视频编解码和目标信息识别两大类。FPGA器件具有可重复编程的灵活性以及并行处理能力,经FPGA处理后的图像更清晰。在广播基础设备、医疗成像、HD视频会议、视频监控等各领域都有广泛的应用。
应用方案 发布时间 : 2022-05-29
电子商城
现货市场
登录 | 立即注册
提交评论