Cyclone IV FPGA 器件笔记】的更多相关文章

LE(逻辑单元)操作模式 1) 正常模式 2)算术模式 可以看到对于Cy4来说正常模式和算术模式的区别就是正常模式有一个4输入LUT没有cout进位输出,而算术模式有两个3输入LUT有cout进位输出. 可以从Quartus II中看到LE的实际示意图:…
###### [该随笔部分内容转载自小梅哥]       ######### FPGA(Field-Programmable Gate Array,现场可编程门阵列),正如其名,FPGA内部有大量的可编程逻辑功能块,使用verilog HDL(硬件描述语言)实现设计. 玩过单片机的小伙伴刚接触FPGA可能会有点困惑,其实FPGA与单片机最大的区别就在于:FPGA设计的是电路,单片机设计的是程序.单片机只有一个CPU在工作时钟的驱动下顺序的执行程序(取指.译码.执行),所以工作速度较慢,而FPGA…
很多人问我FPGA的电源怎么怎么着,当然也有人瞎忽悠乱设计,当然我的设计也不是很完美...这里把我当年第一次设计FPGA,到现在的电源方案,几个演变.分析的过程,给大家讲讲... (1)FPGA电源方案1 最后我们采用3.3V与1.2V的LDO,由于考虑到板卡3.3V逻辑,因此3.3V耗电量更大.因此选用了电流较大的LM1085,将5V转换为3.3V:接着使用1A的1117-1.2,再将3.3V转换为1.2V..这样对于EP2C8Q208C8N而言,简单的电路实现3.3V与1.2V电源的供电,屡…
因为本人用的黑金四代开发板,中央芯片采用ALTERA的cycloneIV E,所以就此器件阅读altera官网资料,并做相应的笔记,以便于以后查阅 Cyclone IV 器件系列具有以下特性:■ 低成本.低功耗的 FPGA 架构:■ 6 K 到 150 K 的逻辑单元■ 高达 6.3 Mb 的嵌入式存储器■ 高达 360 个 18 × 18 乘法器,实现 DSP 处理密集型应用■ 协议桥接应用,实现小于 1.5 W 的总功耗 逻辑单元 15408 嵌入式存储器 504Kbits 嵌入式18*18…
逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位.LE 紧密且有效的提供了高级功能的逻辑使用.每个 LE 有以下特性 ■ 一个四口输入的查找表 (LUT),以实现四种变量的任何功能■ 一个可编程的寄存器■ 一个进位链连接■ 一个寄存器链连接■ 可驱动以下的相互连接:■ 本地■ 行■ 列■ 寄存器链■ 直联■ 寄存器套包支持■ 寄存器反馈支持 您可以对每个 LE 配置可编程的寄存器为 D. T. JK, 或 SR 触发器操作.每个寄存器上有数据,时钟,时钟使能和清零输入.全…
嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器.对于那些大于18 × 18 的乘法运算 ,Quartus II 软件会将多个嵌入式乘法器模块级联在一起.虽然没有乘法器数据位宽的限制,但数据位宽越大,乘法运算就会越慢. 除了 Cyclone IV 器件中的嵌入式乘法器,通过将 M9K 存储器模块用作查找表 (LUT) 可以实现软乘法器. 根据乘法器的操作模式,您可以将每个乘法器输入信号连接到输入寄存器,您可以单独地设置乘法器的每个输入是否使用输入寄存器. 根…
嵌入式存储器结构由一列列 M9K 存储器模块组成,通过对这些 M9K 存储器模块进行配置,可以实现各种存储器功能,例如:RAM.移位寄存器. ROM 以及FIFO 缓冲器. M9K 存储器模块支持以下特性:■ 每模块 8,192 个存储器位 ( 包括奇偶校验位,每模块共 9,216 位 )■ 用于每一个端口的独立读使能 (rden) 与写使能 (wren) 信号 ■ Packed 模式,该模式下 M9K 存储器模块被分成两个 4.5 K 单端口 RAM■ 可变端口配置■ 单端口与简单双端口模式,…
1. 逻辑单元 (LE) 在 Cyclone IV 器件结构中是最小的逻辑单位.LE 紧密且有效的提供了高级功能的逻辑使用.每个 LE 有以下特性:一个四口输入的查找表 (LUT),以实现四种变量的任何功能一个可编程的寄存器一个进位链连接一个寄存器链连接可驱动以下的相互连接:本地.行.列.寄存器链.直连. 2. 看下图,可以对每个 LE 配置可编程的寄存器为 D. T. JK, 或 SR 触发器操作.每个寄存器上有数据,时钟,时钟使能和清零输入.全局时钟网络,通用 I/O 管脚,任何内部逻辑都可…
软件平台:win7(64bit) + Quartus II 9.1 (64-Bit) 硬件平台:东理电子Easy-FPGA Cyclone II EP2C5T114C8N 这个开发板买了很长时间了,买来后一直放那,下面来一个点灯的例子. 1. 实验任务 点亮发光二极管. 通过这个实验, 熟悉并掌握 CPLD/FPGA 开发软件 Quartus II 的使用方法和开发流程以及 Verilog HDL 的编程方法. 2. 实验环境 软件实验环境为 Quartus II 9.1 开发软件. 3. 实验…
很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路径: 图1.时序模型 在任何设计中最普通的时序路径有以下4种: 1 输入端口到内部时序单元路径: 2 从时序单元到时序单元之间的内部路径: 3 从内部时序单元到输出端口之间的路径: 4 输入端口到输出端口之间的路径: B.第二步需要能够读懂FPGA的timing报告,从而找到影响timing的问题:…
FPGA 综合工具并不一定保证能够充分利用芯片结构特点以达到最优目的而且工具本身也不一定非常智能,因为设计本身是复杂多样的且一直在变化,问题总会越来越多,因此在这种情况下,我们必须了解我们的器件结构,了解我们的设计是如何实现的,它是否充分利用到了FPGA里面的特有资源:如进位链shift register IOB中的register等.如果没有,则应当想办法充分利用,如修改代码,以适合FPGA结构特性或者采用coregen生成的module等.这在许多场合是一个非常行之有效的手段. FPGA芯片…
3.1 Intel Cyclone SoC FPGA介绍 3.1.1 SoC FPGA的基本概念 Intel Cyclone V SoC FPGA是Intel PSG(原Altera)于2013年发布的一款在单一芯片上集成了双核的ARM Cortex-A9处理器和FPGA逻辑资源的新型SoC芯片,相较于传统的单一ARM处理器或FPGA芯片,Intel Cyclone V SoC FPGA既拥有了ARM处理器灵活高效的数据运算和事务处理能力,同时又集成了FPGA的高速并行处理优势,同时,基于两者独…
首先对于 altera 公司的FPGA芯片来讲,在cyclone III代以上,芯片的底部增加了一 个焊盘,很多工程师往往以为是散热用,其实不然,底部焊盘需要接地(altera手册上面 明确规定,The E144 package has an exposed pad at the bottom of the package. This exposed pad is a ground pad that must be connected to the ground plane of your PC…
最近在做altera FPGA BGA相关的布线工作,收集了一些资料,公开出来以供大家讨论. 首先是器件引脚,只有弄清楚器件各个引脚的功能才能够进行布线,下面的文档详细描述了每个引脚的功能. 各引脚功能也一定要搞清楚,详情参阅以下文档 接下来是altera官方关于BGA布线应用手册 对应的中文版本 xilinx应用文档,也有一定的参考意义 最为直观的还是altera给出的geber文件,f256封装的可以在http://pan.baidu.com/share/link?shareid=37693…
前言:之前笔者的试用博文提到安富利这块板子非常适合MicroBlaze开发,同时网上关于MicroBlaze的资料非常少(或含糊不清),没有一篇能完整介绍VIVADO SDK的设计流程,所以笔者带来这篇博文以供参考. 实验平台:Avnet-Artix-7 50T 开发套件/其它硬件也可以EDK:Vivado 2015.2SDK:Xilinx SDK 2015.2 实验内容:创建一个简单的MicroBlaze,实现板上LED流水灯和串口功能. 实验步骤:(一)        EDK部分1.    …
很多做过单片机的朋友都知 道,我们在对MCU烧写完程序固件后,那么该程序固件就存储在了该MCU内部.即使MCU断电了再重新上电,程序也能继续运行.这是因为对MCU烧写固件 的实质就是将程序固件写入到MCU的片上程序存储器ROM中,而现代的大部分MCU这个ROM都是FLASH存储器.FLASH存储器能够掉电保持数据, 所以可以实现掉电程序不丢失.Altera或Xilinx的FPGA芯片,使用的是基于SRAM结构的查找表,而SRAM的一大特性就是掉电数据会丢失, 当我们使用JTAG将SRAM配置文件…
一.格雷码 格雷码的优点主要是进位时只有一位跳变,误码率低. 1.二进制转格雷码 我们观察下表: 二进制码 格雷码 00 00 01 01 10 11 11 10 二进制码表示为B[],格雷码表示为G[],则有 G(i) = B(i),i为最高位 G(i-1) = B(i) xor B(i-1),i非最高位 用verilog可以这样写 :] bin; :] gray; ; always @(posedge clk or negedge rst_n) begin if (!rst) gray <=…
根据你的DDR2手册配置好megacore,megacore会生成一个example top: 在quartus中运行megacore生成的xxx_pin_assignments.tcl,指定DDR2 Pin的IO Standard: 在Pin Planner中将DDR2引脚指定到side,或指定到bank,或指定好DQS Pin,还可以顺便指定好CK/CK# Pin: DDR2的DQ必须连接到FPGA的DQ,DDR2的DQS必须连接到FPGA的DQS,DDR2的DM可以连接到FPGA的DQ或D…
FPGA设计的是数字逻辑,在开始用HDL设计之前,需要先了解一下基本的数字逻辑设计-- 一门抽象的艺术. 现实世界是一个模拟的世界,有很多模拟量,比如温度,声音······都是模拟信号,通过对模拟信号进行约束,我们就会抽象出来高电平和低电平,也就是0和1,用来构建整个数字逻辑世界,这个约束就是电平规则约束,比如常见的有以下几种: 电平约束 VDD/VCC 0 1 CMOS 3~8V 0~0.3VDD 0.7~1VDD TTL 5V±5% 0~0.7 2.4~5 LVCMOS 3.3 0~0.9…
###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -> 时序分析 -> 片上系统 1.工具使用 Altera:Quartus II Xlinx: Vivado 2.语法学习 Verilog HDL(FPGA设计的是电路) 3. 逻辑设计 组合逻辑:多路选择器.加法器.译码器.乘法器 ······· 时序逻辑:计数器.分频器.移位寄存器.定时器 ···…
FPGA设计中,最重要的设计思想就是状态机的设计思想!状态机的本质就是对具有逻辑顺序和时序规律的事件的一种描述方法,它有三个要素:状态.输入.输出:状态也叫做状态变量(比如可以用电机的不同转速作为状态),输出指在某一个状态的特定输出,输入指状态机中进入每个状态的条件.根据状态机的输出是否和输入有关,可分为摩尔(Moore)型状态机和米勒型(Mealy)状态机:摩尔型状态机的输出只取决于当前状态,而米勒型状态机的输出不仅取决于当前状态,还与当前输入有关.通常,我们描述状态机有三种方法:状态转移图.…
Error (169224): Too many output and bidirectional pins per VCCIO and ground pair in I/O bank 8 when the VREF pin C6 (VREFGROUP_B8_N0) is used on device EP4CE10F17C8 -- no more than 9 output/bidirectional pins within 12 consecutive pads are allowed wh…
一.时序设计 方法1.通过状态机来实现,通过verilog控制FPGA,让它该快的时候快,该慢的时候慢. 方法2.FPGA中运行CPU 把逻辑控制顺序复杂的事情用C代码来实现,而实时处理部分用verilog实现,并且verilog这部分可以被C代码控制.Xilinx的FPGA目前支持的CPU有Microblaze,ARM9,POWERPC,其中Microblaze是软核,其余的两款是硬核. (1)软核就是用代码实现的CPU核,配置灵活: (2)硬核就是一块电路,已经做好了,不能再发生变化: 软核…
###### [该随笔中部分内容转载自小梅哥] ######### 独立按键消抖自古以来在单片机和FPGA中都是个不可避免的问题,首先,解释一下什么叫做按键抖动,如图,按键在按下和松开的那个瞬间存在大概20ms的机械抖动: 下面就是本篇的第一个重点 —— 什么时候需要按键消抖设计?如果是像复位按键这样,短时间内可以多次触发,就完全不需要设计消抖,但是如果是要设计按下按键使LED状态翻转,或者按下按键计数一次的话,就必须要设计消抖模块,否则就会带来不可预知的错误,因为在按下按键的那个时刻,可能已经…
用always@(posedge clk)描述        时序逻辑电路的基础——计数器(在每个时钟的上升沿递增1) 例1.四位计数器(同步使能.异步复位) // Module Name: counter_4bit // Description: 4bit异步复位同步使能二进制计数器 module counter_4bit( input clk, //系统时钟信号 input rst, //系统复位按键 input en, //计数器使能端 :]q //计数器计数值输出 ); //同步使能,异…
参考: [黑金原创教程][FPGA那些事儿-驱动篇I ]实验二:按键模块① - 消抖 源码如下: key_funcmod.v module key_funcmod(clk, rst, key, led, debug_led); input clk, rst, key; `define DEG `ifndef DEG :] led; `else :] led; `endif output reg debug_led; //`define DEBUG debug_led <= 1'b1; 'd500…
1.添加包含的文件或参数文件(define.v)的方式:如果文件在工程目录下的一个文件夹下,则可用 `include "../文件夹名/define.v",  文件和工程载同一目录下,则 可用`include "define.v"    或者在开发软件中指定参数的路径,则可以用`include "define.v"  . 在modelsim 仿真时,提示打不开包含文件时,可以 将包含文件都改为 `include "define.v&qu…
Say you have an array for which the ith element is the price of a given stock on day i. Design an algorithm to find the maximum profit. You may complete at most k transactions. Note:You may not engage in multiple transactions at the same time (ie, yo…
Verilog所写的工程是由一个一个的模块连接起来的,每个文件代表一个模块,模块的名字和文件名要保持一致,一个模块的基本声明方法为: //FileName:main_module module main_module(     CLK, RSTn, IO_In, IO_Out );     input CLK;     input RSTn;     input IO_In;     output IO_Out; endmodule 对于顶层文件,所有声明的input.output变量都可分配引…
一.变量类型 ①数值 数值表示采用 <二进制位数>'<数值表示的进制><数值>的结构. 其中进制可以为b.o.d.h分别代表二.八.十.十六进制. 例如22'd0代表22位二进制数用十进制表示为0. ②寄存器类型 reg声明寄存器类型变量,如 reg[0:3] my[0:63];是64个4位寄存器构成的存储器. 其中[22:0]代表位宽为23位,最高位在前,含义是[msb:lsb]. 注意,存储器赋值不能在一条语句内完成,但寄存器赋值可以,类似于数组元素不能一次性全部赋…