侵权投诉

从汇编、C语言为起点,再到FPGA开发设计经验总结

玩转单片机 2018-03-17 09:19 次阅读

在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路,深刻理解逻辑功能,对于学习HDL语言大有裨益,往往会起到事半功倍的效果。

当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。下面就以我的切身体会,谈谈FPGA设计的经验技巧。

我们先谈一下FPGA基本知识:

1.硬件设计基本原则

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

速度与面积平衡和互换原则:

一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;

反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度的提高。

硬件原则:理解HDL本质。

系统原则:整体把握。

同步设计原则:设计时序稳定的基本原则。

2.Verilog作为一种HDL语言,对系统行为的建模方式是分层次的

比较重要的层次有系统级、算法级、寄存器传输级、逻辑级、门级、电路开关级。

3.实际工作中,除了描述仿真测试激励时使用for循环语句外,极少在RTL级编码中使用for循环

这是因为for循环会被综合器展开为所有变量情况的执行语句,每个变量独立占用寄存器资源,不能有效的复用硬件逻辑资源,造成巨大的浪费。一般常用case语句代替。

4. if…else…和case在嵌套描述时是有很大区别的

if…else…是有优先级的,一般来说,第一个if的优先级最高,最后一个else的优先级最低。而case语句是平行语句,它是没有优先级的,而建立优先级结构需要耗费大量的逻辑资源,所以能用case的地方就不要用if…else…语句。

补充:1.也可以用if…; if…; if…;描述不带优先级的“平行”语句。

5.FPGA一般触发器资源比较丰富,而CPLD组合逻辑资源更丰富

6.FPGA和CPLD的组成

CPLD的结构相对比较简单,主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块组成。

7.Block RAM

3种块RAM结构,M512 RAM(512bit)、M4K RAM(4Kbit)、M-RAM(64Kbit)。

M512 RAM:适合做一些小的Buffer、FIFO、DPRAM、SPRAM、ROM等;

M4K RAM: 适用于一般的需求;

M-RAM: 适合做大块数据的缓冲区。

Xlinx 和 LatTIce FPGA的LUT可以灵活配置成小的RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM。

补充:但是在一般的设计中,不提倡用FPGA/CPLD的片内资源配置成大量的存储器,这是处于成本的考虑。所以尽量采用外接存储器。

8.善用芯片内部的PLL或DLL资源完成时钟的分频、倍频率、移相等操作

不仅简化了设计,并且能有效地提高系统的精度和工作稳定性。

9.异步电路和同步时序电路的区别

异步电路:

电路核心逻辑有用组合电路实现;

异步时序电路的最大缺点是容易产生毛刺;

不利于器件移植;

不利于静态时序分析(STA)、验证设计时序性能。

同步时序电路:

电路核心逻辑是用各种触发器实现;

电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的;

同步时序电路可以很好的避免毛刺;

利于器件移植;

利于静态时序分析(STA)、验证设计时序性能。

10.同步设计中,稳定可靠的数据采样必须遵从以下两个基本原则:

(1)在有效时钟沿到达前,数据输入至少已经稳定了采样寄存器的Setup时间之久,这条原则简称满足Setup时间原则;

(2)在有效时钟沿到达后,数据输入至少还将稳定保持采样寄存器的Hold时钟之久,这条原则简称满足Hold时间原则。

11.同步时序设计注意事项

异步时钟域的数据转换。

组合逻辑电路的设计方法。

同步时序电路的时钟设计。

同步时序电路的延迟。同步时序电路的延迟最常用的设计方法是用分频或者倍频的时钟或者同步计数器完成所需的延迟,对比较大的和特殊定时要求的延时,一般用高速时钟产生一个计数器,根据计数产生延迟;对于比较小的延迟,可以用D触发器打一下,这样不仅可以使信号延时了一个时钟周期,而且完成了信号与时钟的初次同步。在输入信号采样和增加时序约束余量中使用。

另外,还有用行为级方法描述延迟,如“#5 a《=4’0101;”这种常用于仿真测试激励,但是在电路综合时会被忽略,并不能起到延迟作用。

Verilog 定义的reg型,不一定综合成寄存器。在Verilog代码中最常用的两种数据类型是wire和reg型,一般来说,wire型指定的数据和网线通过组合逻辑实现,而reg型指定的数据不一定就是用寄存器实现。

12.常用设计思想与技巧

(1)乒乓操作;

(2)串并转换;

(3)流水线操作;

(4)异步时钟域数据同步。是指如何在两个时钟不同步的数据域之间可靠地进行数据交换的问题。数据时钟域不同步主要有两种情况:

①两个域的时钟频率相同,但是相差不固定,或者相差固定但是不可测,简称为同频异相问题。

②两个时钟频率根本不同,简称异频问题。

两种不推荐的异步时钟域操作方法:一种是通过增加Buffer或者其他门延时来调整采样;另一种是盲目使用时钟正负沿调整数据采样。

13.模块划分基本原则

(1)对每个同步时序设计的子模块的输出使用寄存器(用寄存器分割同步时序模块原则);

(2)将相关逻辑和可以复用的逻辑划分在同一模块内(呼应系统原则);

(3)将不同优化目标的逻辑分开;

(4)将送约束的逻辑归到同一模块;

(5)将存储逻辑独立划分成模块;

(6)合适的模块规模;

(7)顶层模块最好不进行逻辑设计。

14.组合逻辑的注意事项

(1)避免组合逻辑反馈环路(容易毛刺、振荡、时序违规等)。

解决:A.牢记任何反馈回路必须包含寄存器;B.检查综合、实现报告的warning信息,发现反馈回路(combinaTIonal loops)后进行相应修改。

(2)替换延迟链。

解决:用倍频、分频或者同步计数器完成。

(3)替换异步脉冲产生单元(毛刺生成器)。

解决:用同步时序设计脉冲电路。

(4)慎用存器。

解决方式:

A、使用完备的if…else语句;

B、检查设计中是否含有组合逻辑反馈环路;

C、对每个输入条件,设计输出操作,对case语句设置default 操作。特别是在状态机设计中,最好有一个default的状态转移,而且每个状态最好也有一个default的操作。

D、如果使用case语句时,特别是在设计状态机时,尽量附加综合约束属性,综合为完全条件case语句。

小技巧:仔细检查综合器的综合报告,目前大多数的综合器对所综合出的latch都会报“warning”,通过综合报告可以较为方便地找出无意中生成的latch。

15.时钟设计的注意事项

同步时序电路推荐的时钟设计方法:时钟经全局时钟输入引脚输入,通过FPGA内部专用的PLL或DLL进行分频/倍频、移相等调整与运算,然后经FPGA内部全局时钟布线资源驱动到达芯片内所有寄存器和其他模块的时钟输入端。

FPGA设计者的5项基本功:仿真、综合、时序分析、调试、验证。

对于FPGA设计者来说,练好这5项基本功,与用好相应的EDA工具是同一过程,对应关系如下:

1. 仿真:Modelsim, Quartus II(Simulator Tool)

2. 综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner)

3. 时序:Quartus II (TImeQuest Timing Analyzer, Technology Map Viewer, Chip Planner)

4. 调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor)

5. 验证:Modelsim, Quartus II(Test Bench Template Writer)

掌握HDL语言虽然不是FPGA设计的全部,但是HDL语言对FPGA设计的影响贯穿于整个FPGA设计流程中,与FPGA设计的5项基本功是相辅相成的。

对于FPGA设计者来说,用好“HDL语言的可综合子集”可以完成FPGA设计50%的工作——设计编码。

练好仿真、综合、时序分析这3项基本功,对于学习“HDL语言的可综合子集”有如下帮助:

通过仿真,可以观察HDL语言在FPGA中的逻辑行为。

通过综合,可以观察HDL语言在FPGA中的物理实现形式。

通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。

对于FPGA设计者来说,用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调试验证。

1.搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性。

2.全面的仿真验证可以减少FPGA硬件调试的工作量。

3.把硬件调试与仿真验证方法结合起来,用调试解决仿真未验证的问题,用仿真保证已经解决的问题不在调试中再现,可以建立一个回归验证流程,有助于FPGA设计项目的维护。

FPGA 设计者的这5项基本功不是孤立的,必须结合使用,才能完成一个完整的FPGA设计流程。反过来说,通过完成一个完整的设计流程,才能最有效地练习这5项基本功。对这5项基本功有了初步认识,就可以逐个深入学习一些,然后把学到的知识再次用于完整的设计流程。如此反复,就可以逐步提高设计水平。采用这样的循序渐进、螺旋式上升的方法,只要通过培训入了门,就可以自学自练,自我提高。

市面上出售的有关FPGA设计的书籍为了保证结构的完整性,对 FPGA设计的每一个方面分开介绍,每一方面虽然深入,但是由于缺少其他相关方面的支持,读者很难付诸实践,只有通读完全书才能对FPGA设计获得一个整体的认识。这样的书籍,作为工程培训指导书不行,可以作为某一个方面进阶的参考书。

对于新入职的员工来说,他们往往对FPGA的整体设计流程有了初步认识,5项基本功的某几个方面可能很扎实。但是由于某个或某几个方面能力的欠缺,限制了他们独自完成整个设计流程的能力。入职培训的目的就是帮助他们掌握整体设计流程,培养自我获取信息的能力,通过几个设计流程来回的训练,形成自我促进、自我发展的良性循环。在这一过程中,随着对工作涉及的知识的广度和深度的认识逐步清晰,新员工的自信心也会逐步增强,对个人的发展方向也会逐步明确,才能积极主动地参与到工程项目中来。

最后总结几点:

1)看代码,建模型

只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设计方法上的差异。在看到一段简单程序的时候应该想到是什么样的功能电路。

2)用数学思维来简化设计逻辑

学习FPGA不仅逻辑思维很重要,好的数学思维也能让你的设计化繁为简,所以啊,那些看见高数就头疼的童鞋需要重视一下这门课哦。举个简单的例子,比如有两个32bit的数据X[31:0]与Y[31:0]相乘。当然,无论Altera还是Xilinx都有现成的乘法器IP核可以调用,这也是最简单的方法,但是两个32bit的乘法器将耗费大量的资源。那么有没有节省资源,又不太复杂的方式来实现呢?我们可以稍做修改:

将X[31:0]拆成两部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],则X1左移16位后与X2相加可以得到X;同样将Y[31:0]拆成两部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],则Y1左移16位后与Y2相加可以得到Y;则X与Y的相乘可以转化为X1和X2 分别与Y1和Y2相乘,这样一个32bit*32bit的乘法运算转换成了四个16bit*16bit的乘法运算和三个32bit的加法运算。转换后的占用资源将会减少很多,有兴趣的童鞋,不妨综合一下看看,看看两者差多少。

3)时钟与触发器的关系

“时钟是时序电路的控制者” 这句话太经典了,可以说是FPGA设计的圣言。FPGA的设计主要是以时序电路为主,因为组合逻辑电路再怎么复杂也变不出太多花样,理解起来也不没太多困难。但是时序电路就不同了,它的所有动作都是在时钟一拍一拍的节奏下转变触发,可以说时钟就是整个电路的控制者,控制不好,电路功能就会混乱。

打个比方,时钟就相当于人体的心脏,它每一次的跳动就是触发一个 CLK,向身体的各个器官供血,维持着机体的正常运作,每一个器官体统正常工作少不了组织细胞的构成,那么触发器就可以比作基本单元组织细胞。时序逻辑电路的时钟是控制时序逻辑电路状态转换的“发动机”,没有它时序逻辑电路就不能正常工作,因为时序逻辑电路主要是利用触发器存储电路的状态,而触发器状态变换需要时钟的上升或下降沿!由此可见时钟在时序电路中的核心作用!

最后简单说一下体会吧,归结起来就多实践、多思考、多问。实践出真知,看 100遍别人的方案不如自己去实践一下。实践的动力一方面来自兴趣,一方面来自压力,我个人觉得后者更重要。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。

在实践的过程中要多思考,多想想问题出现的原因,问题解决后要多问几个为什么,这也是经验积累的过程,如果有写项目日志的习惯更好,把问题及原因、解决的办法都写进去。最后还要多问,遇到问题思索后还得不到解决就要问了,毕竟个人的力量是有限的,问同学同事、问搜索引擎、问网友都可以,一篇文章、朋友们的点拨都可能帮助自己快速解决问题。

原文标题:从汇编、C语言为起点,我十年FPGA开发设计经验总结

文章出处:【微信号:mcu168,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

2020 人工智能卓越创新奖,请为Xilinx打call

赛灵思: FPGA、可编程 SoC,以及 ACAP 自适应计算加速的发明者,“致力于打造灵活应变,万....
的头像 人间烟火123 发表于 05-27 11:38 90次 阅读
2020 人工智能卓越创新奖,请为Xilinx打call

Teledyne进一步增强数据转换器,为加速FPGA发展

为响应可编程逻辑技术的不断发展,Teledyne e2v进一步增强了其数据转换器产品组合以及支持它们....
发表于 05-27 10:05 12次 阅读
Teledyne进一步增强数据转换器,为加速FPGA发展

Xilinx全新Virtex UltraScale+ FPGA问市,生而为速

VU23P 具备一系列卓越特性,它在 Virtex UltraScale 产品组合中实现了最高的查找....
发表于 05-27 08:57 60次 阅读
Xilinx全新Virtex UltraScale+ FPGA问市,生而为速

TMS320C6657挂网口如何与Spartan-6挂网口实时通信?

现状是: 1.信号处理板的架构是FPGA+DSP,DSP上挂网口,与电脑可正常通信 2.数据处理板的架构是FPGA挂网口,与电...
发表于 05-27 08:43 89次 阅读
TMS320C6657挂网口如何与Spartan-6挂网口实时通信?

使用单片机实现LCD显示电话拨号键盘按键的设计论文免费下载

 电话在人们的日常生活中是比较的常见的电子产品之一,它已进入我们的每一个家庭。本文设计了一款基于单片....
发表于 05-27 08:00 6次 阅读
使用单片机实现LCD显示电话拨号键盘按键的设计论文免费下载

8051单片机C语言软件设计的艺术PDF电子书免费下载

本书主要介绍了8051单片机C语言软件设计的思维与解决方法。本书每一章都是一个精彩的例子,范例说明深....
发表于 05-26 17:32 25次 阅读
8051单片机C语言软件设计的艺术PDF电子书免费下载

生而为速,Xilinx专为联网和存储加速优化推出全新 Virtex UltraScale+ VU23P FPGA

VU23P 具备一系列卓越特性,它在 Virtex UltraScale 产品组合中实现了最高的查找....
发表于 05-26 15:34 156次 阅读
生而为速,Xilinx专为联网和存储加速优化推出全新 Virtex UltraScale+ VU23P FPGA

C语言常见问题!

C语言常见问题!
发表于 05-26 11:53 72次 阅读
C语言常见问题!

莱迪思Nexus技术平台,重新定义低功耗小尺寸FPGA

物联网AI、嵌入式视觉、硬件安全、5G通信、工业和汽车自动化等新兴应用正在重新定义开发人员设计网络边....
发表于 05-26 10:34 90次 阅读
莱迪思Nexus技术平台,重新定义低功耗小尺寸FPGA

C语言必背18个经典程序

1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for(i=1;i...
发表于 05-26 09:10 233次 阅读
C语言必背18个经典程序

iMPACT添加设备错误是怎么回事

您好,我是FPGA的初学者。 我有elbertV2板,我想通过USB从计算机接收输入数据。 我按照指南尝试用iMPACT程序制作...
发表于 05-26 08:58 58次 阅读
iMPACT添加设备错误是怎么回事

华为FPGA设计高级技巧Xilinx篇资料免费下载

本文从FPGA器件结构角度出发 以速度和面积为主题 描述在FPGA设计过程中应当注意的问题和可以采用....
发表于 05-26 08:00 25次 阅读
华为FPGA设计高级技巧Xilinx篇资料免费下载

sql是会编译转换成c语言的数据结构这个bytecode是指?

求大神帮助一哈子,谢谢 我以为sql是会编译,转换成c语言的数据结构,结构体之类的。这个bytecode是指?...
发表于 05-26 04:44 8次 阅读
sql是会编译转换成c语言的数据结构这个bytecode是指?

高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载

本文档的主要内容详细介绍的是高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载。 ....
发表于 05-25 16:21 20次 阅读
高级语言程序设计从菜鸟到大师深入C语言程序设计PDF电子书免费下载

EMIFA的读写建立、选通和保持的参数确定的依据是什么?

将FPGA挂载到EMIFA的CS2上,我想问一下,EMIFA的读写建立、选通和保持的参数确定的依据是什么???。是根据手册...
发表于 05-25 16:18 23次 阅读
EMIFA的读写建立、选通和保持的参数确定的依据是什么?

基于FPGA的按键扫描程序

发表于 05-25 15:59 143次 阅读
基于FPGA的按键扫描程序

请问C语言中内存地址是否占用存储空间呢?

比如内存地址0028FF1C 这些数字和字母是否需要占用存储空间呢?原因是?...
发表于 05-25 10:14 16次 阅读
请问C语言中内存地址是否占用存储空间呢?

请问c语言阅读赋值语句有什么好习惯吗?

本人c初学者,在c primer plus一书中作者不断强调不能读成xx等于xx,但我每次看到第一眼潜意识里总读成xx等于xx,求教有什么好方...
发表于 05-25 10:14 11次 阅读
请问c语言阅读赋值语句有什么好习惯吗?

Altera公司的FPGA选择示意图资料免费下载

本文档的主要内容详细介绍的是Altera公司的FPGA选择示意图资料免费下载。
发表于 05-25 08:00 18次 阅读
Altera公司的FPGA选择示意图资料免费下载

C语言中定义int a,a是什么类型?

C语言中定义int a[10][10],a是什么类型? 我的理解是a是指向二维整型数组的指针 ,具体这个怎么用? 一般都处理什么样...
发表于 05-25 07:10 11次 阅读
C语言中定义int a,a是什么类型?

功率分析仪的测量通道如何扩展

什么是功率分析仪?它有什么作用?随着新能源汽车的快速发展,汽车工业现场的测试需求也越来越高,往往需要....
的头像 Wildesbeast 发表于 05-24 10:39 635次 阅读
功率分析仪的测量通道如何扩展

Teledyne的数据转换平台可与Xilinx的FPGA器件完美相融

为了辅助Xilinx热门产品20nm Kintex UltraScale KU060 FPGA,Te....
发表于 05-23 10:15 110次 阅读
Teledyne的数据转换平台可与Xilinx的FPGA器件完美相融

在嵌入式视觉设计中使用FPGA,它将带来什么优势

过去几年里,嵌入式视觉应用大量涌现,包括从相对简单的智能视觉门铃到执行随机拾取和放置操作的复杂的工业....
发表于 05-23 09:57 393次 阅读
在嵌入式视觉设计中使用FPGA,它将带来什么优势

可重构架构技术的快速发展,未来将应用于太空

如今,技术的进步使得低轨飞行越来越容易商用化。赛灵思太空产品系统架构师Minal Sawant表示,....
发表于 05-22 10:35 154次 阅读
可重构架构技术的快速发展,未来将应用于太空

LabVIEW的编程经验教程免费下载

当我开始在键盘上敲打出这句话的时候,我已经使用 LabVIEW 7 年了。7 年的时间,就算天赋平平....
发表于 05-22 08:00 18次 阅读
LabVIEW的编程经验教程免费下载

红外线多功能电子钟的C语言和工程文件免费下载

(1) 进行实时时钟显示功能(达到正点时,自动报时) (2) 时间校准功能 液晶能够显示年月日星期时....
发表于 05-22 08:00 21次 阅读
红外线多功能电子钟的C语言和工程文件免费下载

单片机水塔控制系统的C语言资料免费下载

本文档的主要内容详细介绍的是单片机水塔控制系统的C语言资料免费下载。
发表于 05-21 15:55 43次 阅读
单片机水塔控制系统的C语言资料免费下载

AI观察室|无需实体FPGA也能AI部署?听听清华汪玉研究团队怎么说

曾书霖:在研究中,我们对公有云和私有云两种场景进行了区分(如下图所示)。公有云主要强调用户之间的隔离....
发表于 05-21 09:02 440次 阅读
AI观察室|无需实体FPGA也能AI部署?听听清华汪玉研究团队怎么说

单片机与嵌入式系统的学习课件合集免费下载

本文档的主要内容详细介绍的是单片机与嵌入式系统的学习课件合集免费下载包括了:单片微型计算机概述及预备....
发表于 05-21 08:00 68次 阅读
单片机与嵌入式系统的学习课件合集免费下载

C语言的学习课件资料合集免费下载

C语言是目前世界上最流行和实用的一种计算机高级程序设计语言。最初的C语言只是为描述和实现UNIX操作....
发表于 05-21 08:00 30次 阅读
C语言的学习课件资料合集免费下载

一些基础的C语言程序及其源代码资料合集免费下载

本文档的主要内容详细介绍的是一些基础的C语言程序及其源代码资料合集免费下载。
发表于 05-21 08:00 26次 阅读
一些基础的C语言程序及其源代码资料合集免费下载

C语言编译器PICC9.60破解版应用程序免费下载

本文档的主要内容详细介绍的是C语言编译器PICC9.60破解版应用程序免费下载。
发表于 05-21 08:00 23次 阅读
C语言编译器PICC9.60破解版应用程序免费下载

定制化服务器到底是什么

顾名思义,定制化服务器是基于传统服务器的基础,根据不同业务的实际需求进行研发、设计、生产的新型服务器....
发表于 05-21 08:00 56次 阅读
定制化服务器到底是什么

四元数姿态更新方法公示版C语言版免费下载

本文档的主要内容详细介绍的是四元数姿态更新方法公示版C语言版免费下载。
发表于 05-21 08:00 18次 阅读
四元数姿态更新方法公示版C语言版免费下载

Xilinx Kintex-7 FPGA开发板支持接口32位 DDR4 SDRAM

随着全球首个28nmFPGA的推出,赛灵思为设计人员提供了最广泛的可编程平台,包括新型器件的多功能性....
发表于 05-20 15:27 147次 阅读
Xilinx Kintex-7 FPGA开发板支持接口32位 DDR4 SDRAM

英特尔Arria 10 SOC FPGA开发板硬件支持32位 DDR4 SDRAM

英特尔的SoC开发套件提供了开发定制ARM快速和简单的方法*处理器的SoC设计。设计生产率是Arri....
发表于 05-20 14:05 60次 阅读
英特尔Arria 10 SOC FPGA开发板硬件支持32位 DDR4 SDRAM

利用Microchip PolarFire FPGA创建低功耗神经网络应用

随着人工智能、机器学习技术和物联网的兴起,应用开始向收集数据的网络边缘迁移。为缩小体积、减少产热、提....
发表于 05-20 10:47 150次 阅读
利用Microchip PolarFire FPGA创建低功耗神经网络应用

嵌入式入门指导

C语言:嵌入式编程大多用C语言、少量汇编,先学习C语言,汇编用到的时候再上网查询。教材:随便一本C语....
发表于 05-20 10:15 34次 阅读
嵌入式入门指导

支持Xilinx FPGA中的32位 DDR4 SDRAM

尽管现代FPGA包含内部存储器,但可用存储器的数量始终比专用存储器芯片的存储器数量级低几个数量级。因....
发表于 05-19 17:35 63次 阅读
支持Xilinx FPGA中的32位 DDR4 SDRAM

英特尔AGILEX FPGA如何与CXL实现相互相容

自从英特尔几年前以167亿美元的价格收购Altera以来,FPGA产品组合的推出基本上是英特尔时代之....
发表于 05-19 10:46 404次 阅读
英特尔AGILEX FPGA如何与CXL实现相互相容

基于EP2C8Q208和TMS320VC5416芯片实现高速数据采集卡的设计

当前,许多领域越来越多地要求具有高精度A/D转换和实时处理功能。同时,市场对支持更复杂的显示和通信接....
发表于 05-19 10:11 200次 阅读
基于EP2C8Q208和TMS320VC5416芯片实现高速数据采集卡的设计

使用C语言在Linux环境下运行推箱子游戏的代码免费下载

本文档的主要内容详细介绍的是使用C语言在Linux环境下运行推箱子游戏的代码免费下载,现在分享给大家....
发表于 05-19 08:00 17次 阅读
使用C语言在Linux环境下运行推箱子游戏的代码免费下载

实现Hello Arduino实验的详细资料说明

一个程序员退休后喜欢书法,有一天,他饭后突然有审美情绪,所以准备“文房四宝”,毛,墨, 纸,研,颇有....
发表于 05-19 08:00 52次 阅读
实现Hello Arduino实验的详细资料说明

关于低功耗FPGA的8b/10b SERDES的接口设计解析

串行接口常用于芯片至芯片和电路板至电路板之间的数据传输。随着系统带宽不断增加至多吉比特范围,并行接口....
发表于 05-18 10:51 126次 阅读
关于低功耗FPGA的8b/10b SERDES的接口设计解析

单片机的C语言驱动程序资料合集免费下载

本文档的主要内容详细介绍的是单片机的C语言驱动程序资料合集免费下载。
发表于 05-18 08:00 57次 阅读
单片机的C语言驱动程序资料合集免费下载

使用单片机实现广告灯左右移动的设计说明

做单一广告灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0....
的头像 Wildesbeast 发表于 05-16 11:49 945次 阅读
使用单片机实现广告灯左右移动的设计说明

美高森美和Athena宣布为加密用户提供DPA防御对策的FPGA

现已提供功能强大的防篡改安全微控制器技术,作为用于SmartFusion2和 IGLOO2 FPGA....
发表于 05-15 10:56 265次 阅读
美高森美和Athena宣布为加密用户提供DPA防御对策的FPGA

如何使用FPGA实现高性能程控数字移相器的设计

数字移相器是利用锁相环,将输出信号频率设置为输入信号频率的 360 倍,通过数值比较器、计数器进行移....
发表于 05-15 08:00 60次 阅读
如何使用FPGA实现高性能程控数字移相器的设计

ALTERA FPGA PCIE的设计指导教程

PCI Express高性能参考设计突出了Altera@PCI Express MegaCore的硬....
发表于 05-14 17:51 68次 阅读
ALTERA FPGA PCIE的设计指导教程

嵌入式C语言的自我修养:这样编出来的代码简直行云流水!

为编写出高质量嵌入式软件,从嵌入式软件安全及可靠性出发,本规范对由于C语言标准、C语言本身、C编译器....
的头像 单片机精讲吴鉴鹰 发表于 05-14 14:43 634次 阅读
嵌入式C语言的自我修养:这样编出来的代码简直行云流水!

阿里巴巴携手英特尔开发一款基于FPGA的解决方案

通过使用英特尔® Arria® 10 FPGA、基于英特尔® 至强® 处理器的服务器及软件开发工具构....
发表于 05-14 10:53 114次 阅读
阿里巴巴携手英特尔开发一款基于FPGA的解决方案

如何把C++的源程序改写成C语言

第一种是将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写;第二种是在C中保留面向对象的....
的头像 单片机精讲吴鉴鹰 发表于 05-14 10:08 290次 阅读
如何把C++的源程序改写成C语言

超声波测距数码管显示的C语言程序免费下载

  本文档的主要内容详细介绍的是超声波测距数码管显示的C语言程序免费下载。
发表于 05-13 17:32 50次 阅读
超声波测距数码管显示的C语言程序免费下载

在FPGA中处理AI/ML工作负载的新块浮点运算单元

FPGA是一种半定制电路,主要应用于专用集成电路,在航空航天/国防、消费电子、电子通讯等领域有着不可....
发表于 05-13 11:06 278次 阅读
在FPGA中处理AI/ML工作负载的新块浮点运算单元

电子信息工程在工业领域有什么样的应用现在是什么现状

目前电子信息工程在我国仍算是一门新兴产业。但近年来电子信息产业的发展速度还是很可观的,并且在我国所占....
发表于 05-13 08:00 70次 阅读
电子信息工程在工业领域有什么样的应用现在是什么现状

单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集

本文档的主要内容详细介绍的是单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集包....
发表于 05-13 08:00 77次 阅读
单片机C语言程序设计实训100例包含Keil程序和仿真电路图的资料合集

FPGA运算单元技术创新可支持高算力浮点

随着机器学习(Machine Learning)领域越来越多地使用现场可编程门阵列(FPGA)来进行....
发表于 05-12 10:46 94次 阅读
FPGA运算单元技术创新可支持高算力浮点

数据结构C语言版电子书免费下载

本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的各....
发表于 05-12 08:00 59次 阅读
数据结构C语言版电子书免费下载

单片机C语言程序设计实训100例的程序和电路图合集

本文档的主要内容详细介绍的是单片机C语言程序设计实训100例的程序和电路图合集包括了:基础程序设计,....
发表于 05-12 08:00 89次 阅读
单片机C语言程序设计实训100例的程序和电路图合集

C语言接口与实现创建可重用软件的技术PDF电子书免费下载

《C语言接口与实现:创建可重用软件的技术》概念清晰、实例详尽,是一本有关设计、实现和有效使用C语言库....
发表于 05-11 08:00 42次 阅读
C语言接口与实现创建可重用软件的技术PDF电子书免费下载

TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为±1 °C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150°C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 ±1°C远程二极管传感器 ±1°C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...
发表于 09-19 16:35 170次 阅读
TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器

TMP468器件是一款使用双线制SMBus或I 2 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75°C)和测量分辨率(0.0 625°C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55°C至+ 150°C的温度范围。 特性 8通道远程二极管温度传感器精度:±0.75&...
发表于 09-18 16:05 114次 阅读
TMP468 具有引脚可编程的总线地址的高精度远程和本地温度传感器