FPGA
吾日叁問
雷达信号处理
展开
-
7 Series FPGAs Configurable Logic Block
1、CLB、Slice和LUT之间的关系,以及Slice的组成;2、LUT的功能;3、Flip-Flop;4、DRAM4个6输入的LUTs(A、B、C、D)和8个触发器以及多路选择器(F7AMUX,F7BMUX,F8MUX)和进位链组成一个Slice,一个CLB包含两个Slices,要么是2个SLICEL或者是1个SLICEL和1个SLICEM。There are six independent inputs (A inputs - A1 to A6) and two indepe.原创 2022-01-30 22:07:02 · 871 阅读 · 0 评论 -
【基础入门】(九)分频器
分频或者倍频有两种方式:一种是器件厂商提供的锁相环IP核,另一种是自己动手用Verilog代码描述。分类:偶数分频和奇数分频偶数分频以6分频为例,波形图如下所示频率为原来的六分之一,周期为原来的6倍。计数要计数到0-5吗?不需要,只要0-2即可。...原创 2021-05-12 10:09:40 · 2127 阅读 · 0 评论 -
【基础入门】(六)层次化设计——全加器
module full_adder( input wire in1 , input wire in2 , input wire cin , output wire cout, output wire sum);wire h0_sum;wire h0_cout;wire h1_cout;half_adder half_adder_inst( .in1 (in1), .in2 (in2), .sum (h0_sum), .co (h0_cout)...原创 2021-05-11 09:38:19 · 614 阅读 · 0 评论 -
【基础入门】(三)多路选择器
module mux2_1( input wire in1 ,//输入只能是wire型 input wire in2 , input wire sel , //输出可以使wire型或者reg型 //output wire out 在assign中赋值(=)使用wire型 output reg out //在always中赋值(<=)要用reg型);//assign out = (sel == 1'b1)? in1:in2;always@(*) if(sel == 1).原创 2021-05-10 11:26:12 · 3111 阅读 · 1 评论 -
【基础入门】(四)3-8译码器
译码器主要用于端口的扩展。module decoder3_8( input wire a , input wire b , input wire c , output reg [7:0] state);always@(*) case({a,b,c}) 3'b000 : state = 8'b0000_0001; 3'b001 : state = 8'b0000_0010; 3'b010 : state = 8'b0000_0100; 3'b011 : state =.原创 2021-05-10 15:02:29 · 1163 阅读 · 0 评论 -
【基础入门】(七)同步复位和异步复位
学完后的收获:什么是寄存器,它能做什么、有什么特性、如何用 Verilog 语言来描述。组合逻辑最大的缺点就是会存在竞争冒险,时序逻辑最基本的单元就是寄存器,寄存器具有存储功能,一般是由 D 触发器构成,由时钟脉冲控制,每个 D 触发器(D Flip Flop ,DFF)能够存储一位二进制码。其复位又分为同步复位和异步复位。同步复位的 D 触发器中的“同步”是和工作时钟同步的意思,异步复位的 D 触发器中的“异步”是和工作时钟不同步的意思。主要就是复位有效的条件是“立刻”执行还是等待“沿”再执行原创 2021-05-11 14:53:49 · 1542 阅读 · 1 评论 -
【基础入门】(五)半加器
半加器:没有进位输入的加法器电路,是实现两个一位二进制数的加法运算电路。module half_adder( input wire in1 , input wire in2 , output wire sum , output wire co );assign {co, sum} = in1 + in2;//assign co = in1 & in2;//assign sum = in1 ^ in2;endmodule`timescale 1ns.原创 2021-05-10 15:38:26 · 1490 阅读 · 0 评论 -
【基础入门】(八)计数器、定时器
掌握两点:控制好什么时候开始计数和什么时候清零的问题一:系统只有时钟和复位信号,只要复位信号一撤销,时钟沿来到就可以立刻进行计数。二:计满自动清零,计数到多少后进行清零呢?假设时钟信号的频率为50MHz,也就是时钟周期为20ns,那么计时1s中,需要多少个时钟周期呢?1s/20ns =50_000_000个。因为是从0开始计数,所以计数到49_999_999之后清零。利用计算器(程序员模式)可知,计算器的位数要设为26位。就是49_999_999转换成二进制表示。不带标志信号的计数器.原创 2021-05-11 15:57:02 · 883 阅读 · 0 评论 -
【基础入门】导论
1. 搭建开发环境 安装Quartus II,Moselsim SE,NotePad++,Visio,并进行Quartus和Modelsim、notepad++关联。2. 熟悉开发板的硬件资源(无开发板可跳过) 开发板的原理图,主要的外设等。3. 完整的学习路线、学习建议、参考资料 学习建议:按照本书的编写顺序,循序渐进、步步为营的进行FPGA的学习,切莫好高骛远、眼高手低。 按照本书的方法由浅入深的进行FPGA的学习,学成之时必定受益匪浅。 ...原创 2021-05-09 15:53:02 · 103 阅读 · 0 评论 -
【基础入门】(一)Verilog基本语法知识
任何知识与技能的学习都要遵循由易到难,由浅入深的学习规律,这样既能打下扎实的基础也不会打消学习积极性。FPGA学习部分:基础入门篇、学习强化篇、进阶提高篇硬件描述语言HDL:通过一种语言来“描述”我们设计的硬件所要实现的功能,而不是直接对硬件进行设计。描述完设计的功能之后,还要进行“综合”才能生成所设计功能的硬件电路。对Verilog和VHDL的学习建议:精通一个,熟练一个,入门选择Verilog作为开发语言Verilog和C语言的区别C语言:顺序执行,描述的代码功能只是对内存的操作和进行原创 2021-05-09 15:54:03 · 2283 阅读 · 0 评论 -
【基础入门】(二)点亮LED,熟悉开发流程
通过拨码开关(3)控制一个led(D3)灯的亮灭。硬件资源6个led灯,D3~d8.拨码开关,只有3和4可以自定义使用。module led( input wire key_in , output wire led_out );assign led_out = key_in;endmodule编写Testbeech进行测试的过程1.产生模拟激励2.将产生激励加入到被测试模块并观察其输出原创 2021-05-09 15:48:20 · 686 阅读 · 0 评论 -
【实验】流水灯
module water_led#( parameter CNT_MAX = 23'd4999_999)( input wire sys_clk , input wire sys_rst_n , output reg [5:0] led_out);reg [22:0] cnt;reg cnt_flag;always@(posedge sys_clk or negedge sys_rst_n) if(sys_rst_n == 1'b0) cnt <= 2.原创 2021-04-15 22:18:18 · 132 阅读 · 0 评论 -
【实验】寄存器
学完后的收获:什么是寄存器,它能做什么、有什么特性、如何用 Verilog 语言来描述。组合逻辑最大的缺点就是会存在竞争冒险,时序逻辑最基本的单元就是寄存器,寄存器具有存储功能,一般是由 D 触发器构成,由时钟脉冲控制,每个 D 触发器(D Flip Flop ,DFF)能够存储一位二进制码。其复位又分为同步复位和异步复位。同步复位的 D 触发器中的“同步”是和工作时钟同步的意思,异步复位的 D 触发器中的“异步”是和工作时钟不同步的意思。主要就是复位有效的条件是“立刻”执行还是等待“沿”再执行.原创 2021-04-15 20:56:15 · 656 阅读 · 0 评论 -
Quartus II各版本支持的器件
之前用的时Quartus9.0版本,因为使用的器件时Stratix II,所以以为只能用老版本的工具。但是从Quartus从13.0开始将器件库独立出来,可让用户选择性的安装。如下图,Quartus13.0是支持Stratix II的,所以果断卸载老版本。器件库下载的话,下载Cyclone系列和Stratix系列即可满足我的需要。器件库是与软件协同的,选择相应的软件版本,然后下载对应的器件库。器件库的下载地址:https://fpgasoftware.intel.com/18.0/?e.原创 2021-03-23 10:34:51 · 13694 阅读 · 0 评论 -
锁存器和触发器
双稳态电路:具有存储或记忆1位二进制数据的功能锁存器(latch):对脉冲电平敏感的存储单元电路。它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程。数据有效 滞后于 时钟信号有效。这意味着时钟信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器 。锁存器容易产生毛刺 锁存器在ASIC设计中应该说比FF要简单,但是在FPGA的资源中,大部分器件没有锁存器这个东西,所以需原创 2021-03-20 21:39:17 · 1629 阅读 · 0 评论 -
与门的电路映射
module and_logic( input wire in1, input wire in2, output wire out);assign out = in1 & in2;endmoduleRTL ViewerTechnology Map Viewer(Post-Mapping)放大之后的图形原创 2021-03-20 20:02:01 · 195 阅读 · 0 评论 -
HDL代码和硬件电路的映射
名词解释:RTL Viewer:寄存器级的视图,可以看到寄存器和门电路,主要体现的是逻辑连接关系和模块间的结构关系,和具体的FPGA器件无关; Technology Map Viewer(Post Mapping):将RTL所表达的结构进行优化,增加或减少一些模块,更接近于最后底层硬件映射的结果,以便于映射到具体的FPGA器件上。 Chip Planner:只有进行布局布线后才能够看到,在版图的模型中真实的表达所使用的资源以及相对位置信息,还有模块之间的路径与连线关系都可以显示出1和2在“Star原创 2021-03-20 10:19:59 · 803 阅读 · 0 评论 -
FPGA器件的内部结构
一开始不是点灯,而是了解FPGA器件的内部结构,掌握硬件描述语言和内部单元和连线的映射关系。这里以Altera FPGA为例,无论是Xilinx,Altera,Lattice和国产 ,它们的内部架构以及开发软件都大同小异,一通则百通。参考的文档:Stratix II Handbook首先看一下Features,包含ALMs,LEs,RAM,DSP Blocks,Multipliers,PLLs等。Xilinx FPGA中的CLB(Configable Logic Block)包含Slic原创 2021-03-19 21:34:41 · 2449 阅读 · 2 评论 -
如何准备硬件逻辑岗位的笔试
关于华为数字逻辑岗的笔试题来自于公众号【达尔闻说】,如有需要请关注公众号。①数字电路相关的题目我们可以复习本科期间学习过的数字电路课本,考察的内容在书上都可以找到,只要过一遍就会有很大的收获,也可以针对常考的知识点重点练习几个典型题目。②如果你上过EDA相关的课程或者学习FPGA都可以轻松应付Verilog语法相关的题目,如果之前没有接触过这块内容,建议可以通过短时间针对性的学习来掌握,毕竟硬件逻辑岗肯定需要你懂一些FPGA的知识,只要用到FPGA相关的,硬件描述语言肯定是要懂的,而且Veri.原创 2021-02-25 13:26:49 · 1228 阅读 · 0 评论 -
笔试题(二)
16、使用DMA的好处不包括( )。A 减少数据的传输延时B 一定条件下可以降低系统的功耗C 软件复杂度肯定会降低D 降低CPU占用解析:本题主要考察了对CPU直接与系统内存交换数据的接口技术DMA的了解。这题直接从正面解还是会让人有些小纠结的,每个选项看上去都没有什么明显的问题,但是C项有明显的错误选项所具备的特殊字眼“肯定”,那么选择它的概率就很大了。DMA(Direct Memory Access,直接存储器访问)。在DMA出现之前,CPU与...原创 2021-02-25 13:24:49 · 934 阅读 · 1 评论 -
华为硬件逻辑岗笔试题(一)
积少成多,集腋成裘,坚持!!!目录1. 进制转换2. 状态机和编码方式3. 存储器的分类4. Verilog语法中的操作符5. 对组合逻辑的认识6. 对时序逻辑的认识7. 竞争冒险的认识8. 基本时序逻辑电路9. 建立时间和保持时间10. 同步时序电路11. 组合逻辑和时序逻辑判断13. 基本总线的理解14.加法器15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。A 101110.11...原创 2021-02-25 13:11:22 · 11799 阅读 · 2 评论 -
FPGA开发中的名词【更新中。。。】
WNS :Worst Negative Slack TNS :Total Negative Slack WHS :Worst Hold Slack THS :Total Hold Slack TPWS slack :slack就是目的端寄存器时钟到达时间 - 目的端数据达到时间,也就是满足setup或者hold的规则前提下,还有多少余量。 LUT:Look-Up Table 查找表 FF:Flip-Flop 触发器 MUX:Multiplexer 多路选择器 Carray Chain:进.原创 2021-02-22 12:57:26 · 505 阅读 · 0 评论 -
FPGA入门(二)阻塞和非阻塞赋值,可综合和不可综合,电平触发和边沿触发
移位寄存器 寄存器的延迟 同步和异步 阻塞赋值和非阻塞赋值 电平触发和沿触发 触发器的功能可以用特性表,特性方程,状态图描述原创 2021-02-22 11:30:20 · 2059 阅读 · 0 评论 -
FPGA入门(一)建立时间保持时间,竞争冒险和毛刺,锁存器和触发器
建立时间setup time和保持时间hold time,亚稳态 参考回答https://blog.csdn.net/wordwarwordwar为什么需要这两个时间?在理想情况下,只要在时钟沿来临时,有效数据也来临(时钟沿之前或同时),则能够正确采集到数据。然而在实际中,上升沿打开开关需要时间,逻辑门的状态改变(电容充放电等)都需要时间,因此数据的采集是需要一定时间的,在这个时间内数据不能发生变化。什么是亚稳态?为什么会产生亚稳态?亚稳态会给电路带来什么样的影响?怎么解决亚稳态问题?参考回答..原创 2021-02-21 23:08:47 · 1699 阅读 · 2 评论 -
FPAG入门(零)FPGA结构,厂商,设计流程
目录1. PLD的发展历程2. 半导体存储器的分类3. PLD的分类4. FPGA厂商5. FPGA的结构5.1Altera Cyclone IV为例5.2Xilinx XC4000为例6. 设计流程和工具6.1 设计流程6.2 设计工具6.3 开发语言7. 学习路线这些是对之前的笔记做了个总结,主要是了解FPGA的内部结构,开发流程以及常用的工具等知识。了解FPGA的内部结构对以后开发来说还是很重要的。下面的话就是安装一下vivado软件,然后多看...原创 2020-11-28 17:41:19 · 801 阅读 · 0 评论 -
FPGA入门(三)扇入扇出,逻辑延迟和线延迟,设计主频
目录扇入扇出逻辑延迟,线延迟,逻辑层级FPGA的内部结构FPGA最大可以跑到的频率 扇入扇出 http://xilinx.eetrend.com/d6-xilinx/article/2017-11/12212.html为什么扇出大对于数字电路影响这么严重?在FPGA设计中,往往代码较为复杂,如果事前不考虑扇出,就会导致一连串恶性事件发生。当工具认为路径因为扇出大造成布线不通,就会强行替换其他逻辑的位置使其满足时序要求,但是这样又会造成其他更多路径出现问题。如何解决这个问原创 2021-02-22 13:01:13 · 4482 阅读 · 0 评论