
FPGA
Phenixyf
这个作者很懒,什么都没留下…
展开
-
Verilog实现多地址I2C Slave
FX平台CPLD代码,通过I2C总线访问CPLD实现的控制寄存器,对系统进行复位等相关控制。下面是代码,实现多地址的I2C Slaver,能够类似I2C的EEPROM方式进行读写访问。module top_fx_cpld2(SDA, SCL,//outputcsm3_rst_n, csm2_rst_n, csm1_rst_n, csm0_rst_n,b_10gf_rst_n, f_1转载 2012-08-15 16:33:13 · 6277 阅读 · 0 评论 -
ModelSim 简单使用方法
1. 将待测文件和testbench文件放入文件夹内; 2. 新建工程,将之前的文件添加入工程: 3. 编译文件 4. 编译通过后开始仿真选择testbench文件,注意要把优化复选框勾去掉弹出仿真页面后,右键点击左侧sim栏内的模块名称,添加查看波形窗口设置仿真时间,开始仿真原创 2015-06-16 17:51:44 · 1082 阅读 · 0 评论 -
verilog入门经验(二)--分频及counter的巧用
1. 偶数倍,整数分频: 对原时钟进行偶数倍整数分频,可对其计数,计数器不同bit位即为各分频时钟,bit0 = 原时钟、bit1 = 2分频、bit2 = 4分频、bit3 = 8分频... example: reg[5:0] div_cnt; // 本例到16分频,如需更高增加counter位数即可,位数按分频倍数需要定义 always @ (pos原创 2015-06-18 09:48:31 · 7907 阅读 · 0 评论 -
chipscope 选不到要查看的信号解决办法
Xilinx ISE开发工具中的ChipScope工具就相当于AlteraQuatusII中的SignalTap II,能够捕捉FPGA内部的信号,方便了调试过程。随着FPGA设计复杂程度越来越高,芯片内部逻辑分析功能显得越来越重要。硬件层次上的逻辑分析仪价格十分昂贵,而且操作比较复杂。目前,FPGA芯片的两大供应商都为自己的FPGA芯片提供了软件层面上的逻辑分析仪,可以帮助我们在线分析芯片内部逻转载 2015-06-18 17:30:53 · 10092 阅读 · 0 评论 -
verilog入门经验(一) always块使用
1. 信号的产生及always块使用注意事项 1.1 不要在不同的always块内为同一个变量赋值。即某个信号出现在 所以注意,在产生一个信号时,所有产生该信号的条件都应放在一个always块内考虑。 1.2 不要在同一个always块内同时使用阻塞赋值(=)和非阻塞赋值( 1.3 使用always块描述组合逻辑时使用阻塞赋值(=),在使用alw原创 2015-06-04 17:58:08 · 48677 阅读 · 2 评论 -
深入浅出FPGA-14-ChipScope软件使用 (深入浅出FPGA系列)
深入浅出FPGA系列: http://blog.youkuaiyun.com/rill_zhen/article/category/1191601 引言索性再破例一下,成个系列也行。 内容组织1.建立工程 2.插入及配置核 2.1运行Synthesize 2.2新建cdc文件 2.3 ILA核的配置 3. Implement and generate progr转载 2015-06-12 15:48:30 · 909 阅读 · 1 评论 -
verilog入门经验(五)-- 并转串
并转串电路主要由时钟(clk)、复位信号(rst)、并行输入信号(pdin)、串行输出信号(sdout)和使能信号(en)组成。 其它信号都是名字意义,现在主要讲下使能信号。使能信号表示开始执行并转串操作,由于并转串是移位操作,当一次并转串完成后,需要重新载入待转换的并行数据时,使能信号要再起来一次。 下面是souce driver COB测试程序中用到的并转串实例,这原创 2015-07-10 16:20:47 · 19343 阅读 · 2 评论 -
ISE ChipScope使用
1. 先在综合中设置,原创 2014-09-04 16:25:37 · 29991 阅读 · 9 评论 -
深入浅出FPGA-4-数字电路设计基础
引言做FPGA研发,知道一点数字电路设计的基础知识是必要的,不然的话会逐渐变成一个会HDL语言的软件工程师,这是我们都不想发生的事情,尤其是对我这样的从软件行业转行过来的人。随着综合工具及自动布局布线工具的快速发展,日益完善与成熟,FPGA工程师跟电路打交道的机会越来越少,致使我们越来越不清楚实际电路的样子了,所以这一节就说一些数字电路的内容,回忆一下数字电路的本来摸样,门电路长什么样;触发器转载 2015-06-15 11:02:06 · 1226 阅读 · 0 评论 -
ChipScope使用总结
1. chipscope不能用晶振输入时钟来作为采样时钟原创 2015-09-06 10:04:17 · 1730 阅读 · 1 评论 -
ISE中FPGA的实现流程
一.ISE实现的步骤 在综合之后,我们开始启动FPGA在ISE中的实现过程,整个过程包括以下几个步骤: 1.Translate - 将输入的网表文件和约束文件整合后输出到一个Xilinx私有的通用数据库 文件转载 2015-09-22 15:01:17 · 2558 阅读 · 0 评论 -
FPGA验证简介
第一编 验证的重要性 验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC开发流程中,验证主要包括功能验证和时序验证两个部分。为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来;转载 2015-09-24 18:04:41 · 6838 阅读 · 0 评论 -
FPGA验证技术简介
第一编 验证的重要性 验证,顾名思义就是通过仿真、时序分析、上板调试等手段检验设计正确性的过程,在FPGA/IC开发流程中,验证主要包括功能验证和时序验证两个部分。为了了解验证的重要性,我们先来回顾一下FPGA开发的整个流程。FPGA开发流程和IC的开发流程相似,主要分为以下几个部分: 1)设计输入,利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来;转载 2015-09-24 18:07:14 · 9040 阅读 · 1 评论 -
Xilinx FPGA入门连载37:SRAM读写测试之时序解读
1 SRAM读写时序解读 存储器铺天盖地,并且是各个大小计算机系统(包括嵌入式系统)比不可少的部分。可以毫不夸张的讲,有数据传输处理的地方必定有存储器,不管是CPU内嵌的或外挂的,在做代码存储或程序运行的时候也必定少不了它。而本节的实验对象SRAM(Static RAM)是一种异步传输的易失存储器,它读写传输较快,控制时序也不复杂,因此目前有着非常广泛的应用。你转载 2016-01-20 18:49:11 · 11041 阅读 · 0 评论 -
verilog入门经验(三)取某个信号的上升沿或下降沿信号
取一个信号的上升沿或下降沿信号,可以通过将信号delay后,然后将原信号和delay信号,通过不同的与非操作,获取上升沿信号或下降沿信号:reg delay; // delay信号always @ ( posedge clk or negedge rstn ) if( !rstn ) delay else delay wire原创 2015-06-25 11:24:47 · 37786 阅读 · 0 评论 -
数字电路中reset信号的处理(优化reset tree的方法)
Resetdistribution tree by clockThe reset distribution treerequires almost as much attention as a clock distribution tree, because thereare generally as many reset-input loads as there are clock-inpu原创 2016-04-11 18:43:42 · 2844 阅读 · 0 评论 -
verilog入门经验(四) 经验总结
1. 最常用及基本的电路就是counter,完成任何电路设计都是基于counter 在某个位置信号的电平要转换,这个位置就是通过counter的值来确定; 几个信号要同步,同步的位置也是通过coutner的值来确定; 复杂电路实现一个功能,在什么时候做什么动作,可以根据counter的值来确定。 通过coutner计的各数值所代表的意思,去做对应的处理。原创 2016-09-29 15:14:09 · 1542 阅读 · 0 评论 -
clock IP使用 50M倍频至220M
1. 新建工程,添加top module代码`timescale 1ns / 1psmodule C200Module(clkin,rstin,clkfx_out,clkin_ibufg_out,clk0_out,clk2x_out,locked_out ); input clkin;input rstin;output clkfx_out;output clk原创 2013-11-05 11:04:35 · 3081 阅读 · 0 评论 -
Xilinx ISE12.0 烧录步骤
前面的约束、综合、实现都正常通过后,1. 执行烧录程序:右键单击“ Configure Target Device" 图标 如果从头至尾运行选择“ run all ” 如果只烧录已有文件选择“ run with current data" 2. 弹出如下对话框,选择OK进入烧录工程: ISE iMPACT(M.81d) 3. 产生 PROM文原创 2013-07-22 15:56:50 · 37883 阅读 · 1 评论 -
Xilinx公司原语的使用方法
Xilinx公司原语的使用方法原语,其英文名字为Primitive,是Xilinx针对其器件特征开发的一系列常用模块的名字,用户可以将其看成Xilinx公司为用户提供的库函数,类似于C++中的“cout”等关键字,是芯片中的基本元件,代表FPGA中实际拥有的硬件逻辑单元,如LUT,D触发器,RAM等,相当于软件中的机器语言。在实现过程中的翻译步骤时,要将所有的设计单元都转译为目标器件中的基本元转载 2015-01-19 15:38:56 · 45550 阅读 · 1 评论 -
always @ (*)
介绍always @* (Verilog HDL)的意思2011-03-08 19:44Verilog-2001 adds a new wild card token, @*, which can be used to represent a combinational logic sensitivity list. The @* token indicates that th转载 2012-08-20 10:23:46 · 1613 阅读 · 0 评论 -
I2C Verilog的实现(一)
TestBench 程序`timescale 1ns / 1psmodule test(sda); reg scl; inout sda; reg sda_out; wire sda_in; reg [7:0] data; reg start_flag, stop_flag; assign sda = sda_out ? 1'bz : 1'b0; assign原创 2012-09-06 16:38:14 · 14669 阅读 · 4 评论 -
I2C Verilog的实现(二)
1. 起始结束信号的判断//---------------------------------------------//start,stop condition judgement//---------------------------------------------wire start, stop;reg sda1, sda2;reg sda11;always @ ( po原创 2012-09-06 16:23:53 · 8611 阅读 · 1 评论 -
对C语言编程者的Verilog开发指南实例
本文举例说明了如何用软件实现脉宽调制(PWM),如何将该设计转换成一个可以在FPGA中运行的逻辑块,并能利用存储器映射I/O接口通过软件完成对该逻辑块的控制。通过理解本文讨论的概念和内容,没有太多硬件知识的软件开发人员也能掌握在FPGA上开发硬件的技能。在不远的将来,嵌入式系统设计师将能够根据哪个更有利于解决设计问题来自由选择硬件和软件方案。但直到现在,对于那些想学习硬件设计的软件工程师来说不转载 2012-09-08 19:14:03 · 2060 阅读 · 0 评论 -
I2C Slave Mode
自己写的,stop侦测还有问题待更新`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 09:42:12 09/06/2012 // Desi原创 2012-09-27 14:53:33 · 3556 阅读 · 0 评论 -
Xilinx ISE所涉及的一些命令以及Command Line的使用[讨论主题]
Xilinx ISE所涉及的一些命令以及Command Line的使用[讨论主题]因为目前进行的一个项目使用了多块容量较大的Xilinx FPGA,对各块FPGA进行synthesis,map,P&R和generating programming file就成了一个大问题。(惭愧啊,group里没有人有modular design的经验)虽然现在的工作站性能比较强劲,但产生每一个program转载 2012-11-17 20:24:08 · 3709 阅读 · 0 评论 -
Loop has iterated 64 times. Use "set -loop_iteration_limit XX" to iterate more问题的解决办法
第一步:将此时project文件夹下的.xst文件打开(用任何文档软件均可); 然后找到 run 命令行,在此命令行前增加代码:set -loop_iteration_limit 256 (其中256的数值根据你的需要可以更改); 然后将此文件重新命名,保存到原来的project文件夹 第二步:在ISE下,在TCL CONSOLE窗口的command原创 2012-11-20 14:12:01 · 4682 阅读 · 0 评论 -
NXP TPMS LF PROTOCL GENERATER_SOURCE CODE
`timescale 10ns / 10nsmodule LFOutput (clk, rstin,data,LED);input clk;input rstin;output data;output LED;wire clk;wire rstin;wire data;wire rst = ~rstin;wire LED = rst;//*********原创 2012-11-21 11:11:43 · 765 阅读 · 0 评论 -
NXP TPMS LF PROTOCL GENERATER_TEST BENCH
`timescale 10ns / 10nsmodule test ( CLK, RST ); output CLK,RST;reg CLK,RST;initialbegin CLK = 0; RST = 0; #10 RST <= 1; #20 RST <= 0; endalwaysbegin #1 CLK <= ~CLK;e原创 2012-11-21 11:13:38 · 745 阅读 · 0 评论 -
Xilinx DCM 使用
http://bbs.ic37.com/bbsview-28398.htm目前,大型设计一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时和抖动提出了更高的要求。为了满足同步时序设计的要求,一般在FPGA设 计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从转载 2013-11-04 18:13:51 · 8534 阅读 · 0 评论 -
FPGA 如何产生LVDS输出
1. 使用OBUFDS原语例化差分输出缓冲器module LVDSTest(clkin,clkoutp,clkoutn );input clkin;output clkoutp;output clkoutn;OBUFDS Mytest (.O(clkoutp), .OB(clkoutn), .I(clkin));endmodule OBUFDS Mytest原创 2013-11-04 10:32:11 · 12544 阅读 · 1 评论 -
Xilinx全局时钟的使用(转载)
http://blog.chinaunix.net/uid-7547035-id-60219.html 在 Xilinx 系列 FPGA 产品中,全局时钟网络是一种全局布线资源,它可以保证时钟信号到达各个目标逻辑单元的时延基本相同。其时钟分配树结构如图1所示。图1.Xilinx FPGA全局时钟分配树结构针对不同类型的器件,Xilinx公司提供的全局时钟网络在数量、性能转载 2013-11-04 18:12:13 · 4192 阅读 · 0 评论 -
数字集成电路设计-3-除法器的verilog简单实现(续)
引言1,改成clk方式。2,添加clk,50MHz。3, 添加rst,同步复位。4,添加calc_done,指示计算完成,高有效。3.1 模块代码[html] view plaincopyprint?/* * module:div_rill * file name:div_rill.v * syn:yes * author:n转载 2013-11-08 16:56:27 · 1366 阅读 · 0 评论 -
Verilog/FPGA 报错总结
1、ERROR:HDLCompilers:246 - "*.v" line * Reference to vector reg '*' is not a legal net lvalue ERROR:HDLCompilers:53 - "*.v" line * Illegal left hand side of continuous assign 错误原因:assign r转载 2013-11-08 17:51:31 · 10858 阅读 · 2 评论 -
数字集成电路设计-2-除法器的verilog简单实现
引言除法器在FPGA里怎么实现呢?当然不是让用“/”和“%”实现。在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以综合,也需要比较多的资源。对于这种情况,一般使用相应的算法来实现除法,分为两类,基于减法操作转载 2013-11-08 16:55:44 · 3355 阅读 · 0 评论 -
(Xilinx)FPGA中LVDS差分高速传输的实现
低压差分传送技术是基于低压差分信号(Low Volt-agc Differential signaling)的传送技术,从一个电路板系统内的高速信号传送到不同电路系统之间的快速数据传送都可以应用低压差分传送技术来实现,其应用正变得越来越重要。低压差分信号相对于单端的传送具有较高的噪声抑制功能,其较低的电压摆幅允许差分对线具有较高的数据传输速率,消耗较小的功率以及产生更低的电磁辐射。转载 2015-01-19 15:14:46 · 65985 阅读 · 7 评论 -
FPGA LVDS应用
1. IBUFDS原语使用问题 使用IBUFDS原语,IBUFDS的输入信号例化为FPGA的输入端口(差分端口loc_clk19m_n和loc_clk19m_p),但是综合时错误提示: ERROR:Xst:2035 - Port has illegal connections. This port is connected to an input buffer and oth原创 2015-01-19 15:07:36 · 2209 阅读 · 0 评论 -
flash读写学习笔记与spi接口及简单测试验证
FPGA中的视频图像资源,以及想要永久存储的程序都是要存储在flash中,flash是FPGA一个不可缺少的部分,flash的种类有很多,根据winbond公司的128Mbit Qual SPI接口的flash,型号为W25Q128BV,作为初学者根据现有的资料去学习,下面的内容主要以这款芯片作参考。前面也提到了三大串行数据传输模式UART,I2C,SPI,顺道就把SPI的内容也做一下总结,每篇一...转载 2018-09-28 13:53:29 · 4757 阅读 · 2 评论