
FPGA技术汇总分享4
文章平均质量分 92
FPGA技术的不断发展,为数字电路设计和系统集成提供了更广泛的应用场景。作为FPGA工程师,需要不断探索和学习,跟随技术的发展,并将新技术和新方法应用到实际项目中。随着企业对FPGA工程师日益增加的需求,不断提升自己的技能水平将成为竞争的不二法门。因此,在这个快速发展的行业中,不断学习、磨炼技能。
BinaryStarXin
专注于网络技术、各类计算机热门行业技术研究分享、嵌入式开发、人工智能、后端与前端等方面的技术知识文章分享,欢迎留言
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FPGA 设计—第1章快速逻辑门实验【1.2】
若采用算术运算的方式 ,我们可暂时不考虑传统的数字逻辑 ,只用到日常生活的算术观念 ,就可完成电路的描述 ,而其位数几乎不影响电路描述的复杂度。例如 ,A 信号宽度为 4 位 ,B 信号宽度为 4 位 ,利用连接符号将这两个信号连接成为宽度为 8 位的 Y 信号 ,如图 2畅15 所示。对话框的默认值为 100ns ,根据刚才所编辑的测试平台 ,只要 80ns 即可完成仿真 ,所以在此不必改变设定 ,直接按 钮即可进行仿真 ,而仿真结果将反映在波形窗口里 ,如图 2畅10 所示。原创 2025-03-15 17:06:39 · 60 阅读 · 0 评论 -
FPGA 设计—第1章快速逻辑门实验【1.1】
例如 ,逻辑运算或算术运算 ,其中 ,采用逻辑运算的设计方式 ,比较像传统设计方式 ,设计步骤比较麻烦 ,但其所合成的电路比较简单;”语句实现或门电路 ,以此类推。根据表 1畅7 ,可在测试平台里的 A 、B 端分别输入“00” 、“01” 、“10”及“11” ,再观察其输出端 O1 ~ O7 ,若输出与其真值表相同 ,则表示此电路功能符合预期。同样的方法 ,按 键开启其属性对话框 ,将其名称改为 B ,按 钮关闭对话框 ,移至适当位置 ,按鼠标左键 ,展开其宽度 ,再按一下鼠标左键即可。原创 2025-03-15 15:50:12 · 69 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【2.3】
XUP 由一支专门的全球团队管理和运作,致力于支持全世界的大学使用Xilinx 的工具和技术。XUP建立的目标是促使大学在课程和研究中使用Xilinx的技术,XUP 团队采取了各种手段来鼓励和支持学术活动。本节接下来简要地总结一下。原创 2025-03-02 19:28:58 · 98 阅读 · 0 评论 -
基于FPGA的数字信号处理【2.3】
以矩阵形式表示部分和之间的关系如图4.44所示。可见每个DSP48独立完成部分和,同时后级DSP48还完成与前级DSP48部分和相加的过程。同一时刻,每个DSP48完成不同滤波运算所需要的部分和,同一滤波运算所需要的部分和由4个DSP48分时完成,从而形成流水处理。通过以上数据处理过程的分析,可得如图4.45所示的硬件结构框图。整个系统由一个单端口RAM、4个DSP48、4个系数ROM、控制模块control以及4个MUX构成。原创 2025-02-19 22:39:39 · 193 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.6】
仿真文件配置完成后回到Quartus Prime 16.0开发界面,在菜单栏中选择菜单栏Tools中的Run Simulation Tool→RTL Simulation进行行为级仿真,即功能仿真,接下来就可以看到ModelSim的运行界面,观察仿真波形如图3-18所示。,将文件名改为myexam,最好与要仿真的项目同名,然后单击保存。当信号选定后,单击OK按钮,则返回到图3-21,再单击OK后,信号和信号默认的波形图会出现在Simulation Waveform Editor界面中,如图3-23所示。原创 2025-02-19 22:12:47 · 1144 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.5】
Quartus Prime支持Intel公司的各系列可编程逻辑器件的开发,包括Cyclone系列、Arria系列、MAX系列、Stratix系列等。Quartus Prime 提 供 了 与 第 三 方 开 发 工 具 的 无 缝 连 接 , 支 持Cadence、Mentor、Synopsys等专业软件公司的综合工具和校验工具,能读入和生成标准的EDIF、VHDL及Verilog HDL网表文件。原创 2025-02-18 22:38:04 · 1336 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.4】
5. 基本运算符VHDL定义了丰富的运算符,主要有算术运算符、关系运算符、逻辑运算符、赋值运算符、关联运算符和其他运算符。需要注意的是,操作数的数据类型应当与操作符所要求的数据类型一致。到目前为止,VHDL共有3个版本:VHDL87、VHDL93和VHDL2002。不同的版本对操作符的支持程度不同,具体可参见VHDL的参考手册。1)算术运算符(见表2-5)乘方运算的左边可以是整数或实数,右边必须是整数,且只有左边为实数时,其右边才可以为负数。乘方运算只有在操作数是常数或2的乘方时,才能被综合。原创 2025-02-18 20:33:45 · 1115 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.3】
进程1中信号d有两条赋值语句,即有两个驱动源:a和c。以STD_LOGIC为例,它包含9种取值,分别为:U(未初始化)、X(强未知)、0(强0)、1(强1)、Z(高阻)、W(弱未知)、L(弱0)、H(弱1)、-(忽略)。此类带有明确延迟时间的语句在大多数的综合器中是不支持的,其中的时间延迟将会被忽略,部分综合器必须去掉“after时间表达式”部分,此部分仅仅在仿真时的测试程序中可用,因此带延迟时间的语句,诸如“after xx ns”、“wait for xx ns”在综合时,要尽量避免使用。原创 2025-02-17 23:34:04 · 681 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.2】
所谓电子设计自动化技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL(Hardware Description Language)描述的设计文件,自动完成逻辑、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必理会最终设计实现的目标器件是什么,从而进行独立的设计,与工艺无关,生命期长;原创 2025-02-17 23:17:39 · 901 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.1】
1.3 FPGA开发工具PLD的问世及其发展圆了系统设计师和科研人员的梦想:利用价格低廉的软件工具在实验室里快速设计、仿真和测试数字系统,然后,以最短的时间将设计编程到一块PLD芯片中,并立即投入到实际应用。FPGA的开发涉及硬件和软件两方面的工作。一个完整的FPGA开发环境主要包括运行于PC上的FPGA开发工具、编程器或编程电缆、FPGA开发板。图1-13是USB Blaster下载器连接示意图。原创 2025-02-17 23:02:30 · 301 阅读 · 0 评论 -
深入理解FPGA电子系统设计——基于Quartus Prime与VHDL的Altera FPGA设计【1.0】
可编程逻辑器件(Programmable Logic Device,PLD)是20世纪70年代发展起来的新型逻辑器件。可编程逻辑器件与传统逻辑器件的区别在于其功能不固定,属于一种半定制逻辑器件,可以通过软件的方法对其编程从而改变其逻辑功能。微电子技术的发展,使得设计与制造集成电路的任务已不完全由半导体厂商独立承担,系统设计师们可以在更短的设计周期里,在实验室里设计自己需要的专用集成电路(Application Specific Integrated Circuit,ASIC)芯片。原创 2025-02-17 22:50:24 · 461 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【2.2】
由于需要以适当的成本、较低的功耗以及往往要求较小的物理尺寸来实现完全自动化的系统,SoC对这样的应用的重要性是显而易见的。美国加州Claremont的Harvey Mudd学院的Karl L. Wang教授,在他和Digilent来的同事共同发表的《An Effective Project-Based Embedded System DesignTeaching Method(一种有效的基于项目的嵌入式系统设计教学方法)》论文中所呈现的基于 Zynq 的教学是一个有意思的例子[20]。原创 2024-12-22 18:37:36 · 211 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【2.1】
ZedBoard 是一款低功耗,基于社区的板卡,搭载了 XC7Z020 Zynq 设备。它是由 Xilinx,Avnet(分销商)和 Digilent(生产商)联合经营的。尽管这是适合于工业的开发平台,ZedBoard 具有满足新 Zynq 用户的特定材料符合初学者的学习曲线,因此也以学生、学者和爱好者为用户。由 Avnet 运营的网络社区(ZedBoard.org)致力于帮助用户,详细信息将在6.7节中被提到。原创 2024-12-22 16:12:57 · 89 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【2.0】
如果你对消费电子产品有所体验,技术生态系统的概念就不会陌生。就拿智能手机来说,手机厂家提供了手机和基础的操作系统,然后可能提供一个 “应用商店(app store)”或类似的机制,用户只要需要,就可以从那里获得在他们的手机上运行的额外的应用。应用商店里的 app 几乎无一例外是由手机厂家以外的其他公司开发的,而且有几千种不同的 app,从像是音乐管理、天气预报这样的主流兴趣,到像是记录骑车轨迹这样的特殊爱好都有。原创 2024-12-19 21:08:27 · 98 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.9】
智能这个术语在很多应用领域都能找到,包括智能电网、智能建筑、智能家居、智能交通、智能城市、智能农业等等。一个中肯的问题是,是什么造就了这些特殊的智能系统?其实对于智能并没有单一的确定的定义。然而,值得注意的是经济合作与发展组织(OECD)给出了一个定义[33],正好可以用于本章的讨论:“一个应用或服务,能从之前的情况中学习,并能将这些况综合告知其他设备和用户。然后这些设备及用户可以改变自己的行为来更好地适应这个情况。原创 2024-12-19 20:51:30 · 436 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.8】
考虑 Zynq、FPGA 和相关芯片的应用,有几个重要的领域可以被点出来。虽然有大量的可能性应用,但这里的只是有代表性的一些选择。我们首先要考虑的第一个应用,是灵活无线电。无线通信的变化之快,使得能调整功能的系统变得非常有价值。Zyng是一个能实现这样的灵活性的平台。软件定义无线电的概念 -- 一个可以在工作中重新配置的电台 -- 并非新想法,在 1990年代中期就已经以某些形式出现了[29]。这个术语可以表达重配置的不同的方面,于是对于不同的人就有了不同的意思。原创 2024-12-15 21:08:06 · 110 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.7】
本节我们比较了 Zyng 处理器和实现了软核处理器的其他 FPGA。要指出的是有多重类型的软处理器可用,包括 Xilinx 提供的核以及第三方提供的。当然,也可能经过巨大的设计努力来自己设计自己的软处理器。迄今为止最主要的软处理器类型是 Xilinx的 MicroBlaze,它具有可定制的功能,并可以被配置来优化它的处理器性能、工作频率或面积(或这些指标的组合)。MicroBlaze 被集成进了 Vivado,具有丰富的支持。原创 2024-12-15 20:22:50 · 123 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.6】
拿最高级的配备了PowerPC的 FPGA 为例,在Virtex-5 里的 PowerPc 可以实现高达 1000DMIPS(也就是说用较大的两单元的芯片时可以达到 2000DMIPS),而 MicroBlaze 的性能是大约 240DMIPS[14][15]。不过,在写本书的时候,最新可用的 MicroBlaze 分值是从 Virtex-5 的 FPGA 实现上得到的,而不是 Zynq 或7系列的FPGA,而且只是单个 MicroBlaze 核的[6]。或者说,它可以被定义成实现这三者的合适的平衡。原创 2024-12-15 16:06:11 · 224 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.5】
其他的变化则更加细微,比如说,Vivado 中的综合和布线的引擎相比 ISE 来说由很大的改进,但是这对于用户却是透明的。不同于老的、只是从零开始建立系统的设计方法,Vivado 着眼于从 Vivado IP 库(这些核由 Xilinx开发)中,或从第三方 IP 开发者,或从前人(他或她的团队)的努力中获取预先验证好的IP来开发。在项目的最后,会有一个最终整合和测试的阶段,此时所有的团队成员会将他们的系统元素结合起来,并且确定每一个期望的功能都已经被实现。另一个需要考虑的因素是配置设备的方法。原创 2024-12-15 15:26:44 · 114 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.4】
在满足开始 Zyng 设计的软硬件需求之后,接下来返回到我们第1章中提到过的开发流程的话题。图 3.2展现的是包含相关联的设计工具的参照的增强图。这将在接下来几页中作为我们的讨论基础。上图描述的是一个单独设计者所需要完成的流程,如果他想要单独完成一个设计的话,并且这就是完成接下来的练习样例的过程。在3.2节中,我们同样会考虑团队开发流程,这与当前的工业开发更加贴近,Vivado 设计套件同样也适合这样的任务。3.2.1.需求和技术参数任何项目都始于基于项目的需求评估目标系统的技术参数。原创 2024-12-08 15:29:38 · 151 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.3】
所有系列成员的 PS 是标准的,唯一的区别是 ARM 核的最大频率:基于 Artix-7 的芯片的 PS 的时钟可以高达866MHz,而基于Kintex 的芯片可以高达 1GHz。Zyng 芯片有两个办法来实现这个防护:(一)一种Zyng 特有的 ARM TrustZone 技术的实现(见下面专门的关于 Zyng-7000 和 ARMTrustZone 技术的小节),和(二)基于对于从主机来的 AXI端口会话和对应的从机地址的监视。其中重要的一个方面是本章提出的面向系统的设计理念和使用开发工具的设计流程。原创 2024-12-08 15:09:00 · 86 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.2】
想要构成一个与快 RAM 大小相当的储存器,需要用到大量的 LUT(分布在较大的面积上),而且实现的结果还受到由于遽增的逻辑和布线延迟所造成的时序性能受限的影响。逻辑部分里的 LUT 可以用来实现任意长度的算术运算,但是最合适的是做短字长的算术运算(长字长的算术电路会在逻辑片中占据较大的空间,这样的布局和布线因素会使得时钟频率是次优的)。在设计 Zynq 的时候,识别出明确的、可计算的并行函数,尤其是在可能的情况下,针对 DSP 和块 RAM 的需要,在芯片的 PL 部分加以实现是应该要做的事情。原创 2024-12-07 21:23:39 · 128 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.1】
如果你正在阅读本书,很可能你已经了解了一些用FPGA 或处理器或是两者结合来开发系统的背景了。正如本书开头所描述的,Zynq 是一款新的组合了一个FPGA和一个强大的应用处理器的芯片,因此它特征、功能和潜在的应用和单独的 FPGA 或处理器都有所不同。通过本章和后续的几章,我们会从各方面更详细地观察 Zyng,在这个过程中会提出一些很基础但又很重要的问题,诸如“这是什么?”、“如何使用它?”以及 “ 为何需要用 Zynq”。本章专注于第一个问题,并介绍 Zynq 架构。原创 2024-12-05 21:21:29 · 541 阅读 · 0 评论 -
基于含有 ARM® Cortex®-A9 的Xilinx® Zynq®-7000全可编程片上系统的嵌入式处理器使用教程【1.0】
从书名你应该已经猜到,这是关于 Zynq的书!这是新一代全面可编程片上系统(Al1-Programmable System-on-Chip,SoC)的 Zyng[10],可别误以为是锌(英文zinc、元素符号 Zn)那个化学元素啊,其实,这两者之间还是有联系的。有传言说Xilinx 给他们的新芯片命名为Zynq,是因为它代表了一个可以用在任何地方的处理器元素。2ynq 芯片致力于成为灵活的、能用于各种应用的强有力的平台,就像锌元素可以与各种其他金属混合形成具有各种所需属性的合金一样。原创 2024-12-04 21:42:03 · 144 阅读 · 0 评论 -
Vivado使用误区与进阶【1.5】
或是验证约束的优先级?在 Vivado 中,除了借助综合后的报告来找到那些可能因为逻辑级数较高而导致的时序难满足的路径外,还有一个更直接的办法,可以一次性报告出设计中那些高逻辑级数的路径,方便我们有针对性的深入分析和优化。静态时序分析( Static Timing Analysis)简称 STA,采用穷尽的分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误并报告。原创 2024-12-04 20:57:46 · 333 阅读 · 0 评论 -
Vivado使用误区与进阶【1.4】
Tcl(读作 tickle)诞生于 80 年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的 EDA工具中。Tcl 的最大特点就是其语法格式极其简单甚至可以说僵化,采用纯粹的 [命令 选项 参数] 形式,是名副其实的“工具命令语言”( 即 Tcl 的全称 Tool Command Language)。实际上 Tcl 的功能可以很强大,用其编写的程序也可以很复杂,但要在 Vivado 或大部分其它 EDA 工具中使用,则只需掌握其中最基本的几个部分。原创 2024-12-03 21:44:13 · 126 阅读 · 0 评论 -
Vivado使用误区与进阶【1.3】
同理,下降沿采样的数据( Fall Data)的 -max应该是采样周期减去这个数据的发送沿(上升沿)之前的数据有效窗口值 dv_bre,而对应的-min 就应该是下降沿之后的数据有效窗口值 dv_afe。为了改进系统同步接口中时钟频率受限的弊端,一种针对高速 I/O 的同步时序接口应运而生,在发送端将数据和时钟同步传输,在接收端用时钟沿脉冲来对数据进行锁存,重新使数据与时钟同步,这种电路就是源同步接口电路( Source Synchronous Interface)。原创 2024-12-03 21:18:25 · 63 阅读 · 0 评论 -
Vivado使用误区与进阶【1.2】
CDC 的设计与约束CDC 路径在 FPGA 设计中普遍存在,在设置相应的约束前,必须了解设计中采取了怎样的方法来处理跨时钟域路径。简单同步器对于单根跨时钟域路径,一般采用简单同步器( Simple Synchronizer),就是由至少两级 CE 端和 Reset/Clear 端接死的寄存器序列来处理。原创 2024-12-03 20:58:51 · 209 阅读 · 0 评论 -
Vivado使用误区与进阶【1.1】
这就决定了XDC 也具有 Tcl命令的特点,即后面输入的约束在有冲突的情况下会覆盖之前输入的约束(时序例外的优先级会在下节详述)另外,不同于 UCF 是全部读入再处理的方式,在XDC 中,约束是读一条执行一条,所以先后顺序很重要,例如要设置 10 约束之前,相对应的 clock 一定要先创建好。一个总的原则就是针对同一条路径,对约束目标描述越具体的优先级越高。XDC则恰恰相反,ASIC 世界的血缘背景决定了在其中,所有的时钟缺省视作全同步,在没有时序例外的情况下,工具会主动分析每一条跨时钟域的路径。原创 2024-12-03 20:31:29 · 107 阅读 · 0 评论 -
Vivado使用误区与进阶【1.0】
当然,我们没必要遍历每种策略。更多时候,选择怎样的策略是一种经验的体现,另外,即使找到了最佳实现策略,也仍旧有可能不满足时序要求,这时候我们还可以参考《用 Tcl 定制 Vivado 设计实现流程》 中所述,对设计实现的流程进行进一步的个性化定制。随着设计规模的不断扩大,以及 SoC 设计的兴起,越来越多的 IP 被整合到大设计中,曾经为高性能设计而生,便于统一管理和控制的自顶向下的设计流程变得不再适用, FPGA 设计也跟大规模 SoC 设计一样,需要采用层次化的设计流程,即自底向上的流程。原创 2024-12-01 21:27:42 · 168 阅读 · 0 评论 -
基于FPGA的数字信号处理【2.2】
对于系数对称的FIR滤波器,可利用其对称性通过预加减少处理单元的 个数。以8抽头偶对称为例,其系数满足式(4.25)。从而,在Xilinx Virtex-5中相应的硬件结构如图4.33所示。显然,处理单元的个数可减少 至4个。此时,PE1对应的DSP48E配置为A×B+C,PE2~PE4对应的DSP48E配 置为A×B+PCIN。由于Virtex-5中的DSP48E没有预加器,因此需要额外的 逻辑资源实现预加功能。在Virtex-6和7系列FPGA中的DSP48E1本身就带有 预加器,因此,图4.33所示结原创 2024-11-10 21:03:08 · 132 阅读 · 0 评论 -
基于FPGA的数字信号处理【2.1】
基于双端口RAM(此时RAM配置为Simple Dual Port RAM)的串行FIR滤 波器其设计思想 [3] 是输入数据周期性的动态流动是以读/写地址的改变 而实现的。这里的周期性是指输入数据的动态管理方式即读/写地址的变化 是周期性的,从而导致了输入数据的流动是周期性的。结合图4.11进一步 分析,将输入数据x(0)写入RAM的0号地址,在其整个生命周期内都将位 于0号地址,直至x(4)写入。x(1)写入RAM的1号地址,在其整个生命周 期内都将位于1号地址,直至x(5)写入。其他数据依此类推。原创 2024-11-10 20:44:18 · 440 阅读 · 0 评论 -
基于FPGA的数字信号处理【1.9】
据此,旋转过程可如图3.72所示。由图3.71可以看出,每次微旋转都导致向量模长发生了变化。以 Ki 表示第i次微旋转模长补偿因子,故第i次微旋转真实旋转的结果应 为式中,当n趋于无穷大时,An 逼近1.646760258。根据式(3.109)可 知,令x0 =1/An 且y0 =0可得目标旋转角度的正、余弦函数值,如 图3.73所示。此时,初始化z0 即为目标旋转角度。需要注意的是 当|z0 |>π/2时应先预处理。原创 2024-11-09 20:50:13 · 281 阅读 · 0 评论 -
基于FPGA的数字信号处理【1.7】
事实上,在乘法器的使用过程中经常会出现被乘数或者乘数为固 定常数的情形,如固定系数的FIR滤波器。以K表示此固定常数,称此 类 乘 法 器 为 固 定 系 数 乘 法 器 KCM ( K-Constant Coefficient Multiplier)。对于KCM,可根据K的数值特性,设计出具有针对性的 乘法器而避免浪费硬线乘法器资源。 采用移位相加的方法可实现KCM。此时,如果K为2n 或者非常接近 2n ,此方法非常适用。例如,K=9,可将其分解为(23 +1),则A 与K相乘即变为将A原创 2024-11-08 21:05:24 · 178 阅读 · 0 评论 -
基于FPGA的数字信号处理【1.6】
乘法运算在数字信号处理中被广泛应用,如滤波器以及各种变换 等。这就使得乘法器在系统中通常扮演着重要的角色,对系统整体性 能有着极大的影响,这也就不难理解目前的FPGA中都植入了嵌入式硬 线乘法器。 本节从二进制乘法运算的原理谈起,讨论乘法器的各种设计方 法。尽管在VHDL语言中有关键字signed和unsigned(Verilog语言中有 关键字signed,没有unsigned),借助于此可方便地用“*”描述无符 号数乘法和有符号数乘法,但同样可根据目标需求(速度优先还是资 源优先)采用其他方式实现乘法运原创 2024-11-04 21:34:00 · 269 阅读 · 0 评论 -
基于FPGA的数字信号处理【1.4】
以3位有符号定点纯小数为例,其所能表示的数值如表2.6所示, 共8种可能,其中最大值为0.75,对应符号位为0,小数位全为1;最小 值为-1,对应符号位为1,小数位全为0。从最小值到最大值步进为 0.25,即精度为0.25。3位无符号定点纯小数所能表示的数值如表2.7所示,依然有8种可能,其中最大值为0.875,对应小数位全为1;最小值为0,对应小数位全为0。从最小值到最大值步进为0.125,即精度为0.125。原创 2024-11-03 21:55:51 · 127 阅读 · 0 评论 -
ModelSim 电子系统分析及仿真【1.4】
Transcript 窗口位于主窗口的下方,如图2-56所示。作用主要是输入操作指令和输出显示信息两大类,在本书中称其为命令窗口。在前文中也曾经提到,ModelSim的菜单栏并不包含所有的操作命令,这些不在菜单栏中的命令想要使用,就必须采用命令行操作的方式。当然,对于菜单栏中有的操作也是可以使用命令行操作的方式执行。作为一个新的使用者,不了解命令行操作方式是可以理解的。但是当使用者试图使用一些高级的功能时,命令行操作方式会变得十分重要。本书中在给出实例的同时,将所有实例中用到操作的具体命令名称和命令格式也做原创 2024-11-03 20:49:35 · 223 阅读 · 0 评论 -
ModelSim 电子系统分析及仿真【1.3】
唯一的不同就是,第二部分关于SE的帮助文件是PDF格式的文件,第三部分关于Tcl的帮助文件是CHM格式的文件,二者都可以在ModelSim的安装文件夹中的docs目录中找到,不需要启动ModelSim 一样可以阅读。Options(选项):这个命令可以打开比较的选项,主要是一些值的设定,如图2-45所示。一般在最初打开ModelSim 软件的时候工具栏包含的内容如图2-54所示,随着设计或仿真的进行,当进行到不同阶段的时候,相关的快捷操作也会出现在工具栏中,这里只介绍一下最初的工具栏中包含的操作。原创 2024-11-03 20:24:05 · 95 阅读 · 0 评论 -
ModelSim 电子系统分析及仿真【1.2】
(4)Filter(筛选)筛选指令用于控制Objects窗口中的模块列表,图2-24显示了可筛选的种类ModelSim 的初始设置是显示设计中所有的端口和信号,如若使用者不需要显示某类信号,可以根据自己的需要来调整显示的端口。Compile Summary 命令用来查看当前工程中的所有已编译文件的编译报告,没有被编译的文件是不会出现的,而且所有文件的编译报告会出现在同一个窗口中,如图2-35所示,这些报告还可以以文本的形式保存到指定的目录。View 菜单用来控制显示,包含的指令如图2-21所示。原创 2024-11-03 18:51:54 · 133 阅读 · 0 评论 -
ModelSim 电子系统分析及仿真【1.1】
Follow current dataset 可以根据当前的 Dataset 更新对象窗口,1Fixto dataset sim 会把对象窗口的内容固定在一个特定的Dataset,Follow Context Selection 会根据工作区中仿真结构标签的选择来更新窗口内容,Fix to Current Context会维持当前波形,不去进行更新。在前面的内容中也介绍过,有些选项是需要一定条件的,使用者可以多动手操作,慢慢摸索,熟悉各个选项需要的条件都是什么,这样获得的效果将会更好。原创 2024-11-03 16:12:43 · 135 阅读 · 0 评论