FPGA博客

南宫鱼 的头像

赛灵思ISE设计有关疑难问题与解决连载之综合warning解决办法

星期六, 07/31/2010 - 14:01

1、WARNING:Xst:737 - Found 8-bit latch for signal .

WARNING:Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block .

原因:状态机中没有将所有条件都写齐,或状态机中的输出没初始化。

解决办法:在case条件的最后加default语句,且case语句前赋给输出信号一个初始值。

2、WARNING:Xst:2170 - Unit TXMGR : the following signal(s) form a combinatorial loop:

说明组合逻辑的输出又接回到这个组合逻辑的输入了,形成了一个环(loop),组合逻辑是不可以这样的

(0)
FPGA菜鸟 的头像

如何在赛灵思ISE中修改自己的IP?

星期六, 07/31/2010 - 10:07

如何在EDK中使用自己的 IP核呢? 这是很多人梦寐以求的事情。然而在EDK以及ISE的各种文档中对此却遮遮掩掩,欲语还休。

(0)
langtao 的头像

Microblaze编程简单流程

星期五, 07/30/2010 - 17:12

1)在ise中利用vhdl编写相应的外部设备的调试程序!
(2)利用edk创建一个工程,把自己的vhdl利用plb或者fsl总线封装成一个ip核,挂在microblaze上;
(3)利用简单的c语言调用相应的用户接口函数,便可以访问外部设备。

(0)
FPGA菜鸟 的头像

初学者学习Verilog HDL的步骤和经验技巧

星期五, 07/30/2010 - 00:13

Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),Verilog HDL语言是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

(0)
FPGA菜鸟 的头像

FPGA设计中对输入信号的处理(转)

星期五, 07/30/2010 - 00:00

1.输入信号为什么要寄存
一般来说,在全同步设计中,如果信号来自同一时钟域,各模块的输入不需要寄存。只要满足建立时间,保持时间的约束,可以保证在时钟上升沿到来时,输入信号已经稳定,可以采样得到正确的值。但是如果模块需要使用输入信号的跳变沿(比如帧同步信号),千万不要直接这样哦。

(0)
paradoxfx 的头像

在Spartan-3系列FPGA中使用LUT构建分布式RAM(4)---‘连载――我与FPGA活动’”

星期四, 07/29/2010 - 14:43

          前面讲了分布式RAM的方方面面,下面以RAM_16S为例,分别给出其在VHDL和Verilog HDL下面的模板代码(在ISE Project Navigator中选择 Edit--- Language Templates,然后选择VHDL 或者Verilog, 最后是Synthesis Templates --- RAM,在http://xilinx.eetrend.com/blog/776中也有具体调用过程的描述)。CORE Generator可以产生类似的代码以供行为仿真使用,它们可以在ISE Project Navigator中双击.coe文件看到。


VHDL Template Example
--
-- Module: RAM_16S
--
-- Description: VHDL instantiation template
-- Distributed RAM
-- Single Port 16 x 1
-- Can also be used for RAM16X1S_1
--
-- Device: Spartan-3 Family
--

(0)
paradoxfx 的头像

在Spartan-3系列FPGA中使用LUT构建分布式RAM(3)---连载――我与FPGA活动

星期四, 07/29/2010 - 14:04

          前面简要介绍了Spartan-3系列FPGA中分布式RAM的基本特性。为什么不从更高级的Virtex系列入手呢?我仔细看了一下各个系列的介绍、对比,Spartan系列基本就是Virtex系列的精简版,其基本原理是一样的,所以从简单的入手来融会贯通未尝不是一个好办法。至于各个器件具体的有什么配置,在Xilinx网站上查找它们各自的Datasheet或者User guide即可(这也是资源最近我着重提到的学习资源)。表1给出了Spartan与Virtex系列中分布式RAM的基本对比情况。

          表1 Spartan与Virtex系列中分布式RAM的基本对比情况

(0)
langtao 的头像

PicoBlaze学习笔记(转载)

星期四, 07/29/2010 - 11:51

Xilinx嵌入式IP核貌似用的不多,远远没NIOSII那么风行,网上的资料不多,给学习带来了很大的不便,我也是摸着石头过河,在黑暗中摸索。此学习笔记是对PicoBlaze学习的点滴记录。

(一) Xilinx的嵌入式核

Xilinx公司的嵌入式解决方案以3类RISC结构的微处理器为核心,涵盖了系统硬件设计和软件调试的各个方面。3类嵌入式内核分别为:PicoBlaze、MicroBlaze和PowerPC,其中PicoBlaze和MicroBlaze是可裁剪的软核处理器,PowerPC为硬核处理器。

PicoBlaze是由VHDL语言在早期开发的小型8位软处理器内核包,其汇编器是简单的DOS可执行文件KCPSM2.exe,用汇编语言编写的程序经过编译后放入FPGA的块RAM存储区,汇编器可在3s内编译完存储在块RAM中的程序。

MicroBlaze采用功能强大的32位流水线RISC结构,包含32个32位通用寄存器和一个可选的32位移位寄存器,时钟可达150MHz,在Virtex 2 Pro以及更高系列的平台上,运行速度可达120DMIPs(DhrystoneMIPS),占用资源不到1000个Slice。

(0)
paradoxfx 的头像

在Spartan-3系列FPGA中使用LUT构建分布式RAM(2)---连载――我与FPGA活动

星期四, 07/29/2010 - 11:14

          分布式RAM支持以下的单口RAM与双口RAM类型:
•带有异步写/同步读的SRAM,其中的同步读取可以使用与分布式RAM相关联的触发器实现。
•带有一个同步写端口与两个异步读端口的DRAM,其中同步同步读的原理与前者相同。

          图1给出了SRAM与DRAM的示意,可以看出DRAM有一个读/写端口和一个独立的读端口。任何对D输入端口的写操作和对SPO输出端口的读操作可以同时进行,并且和对另一个读端口即DPO的读操作是互相独立的。

      图1 SRAM与DRAM的示意

(0)
paradoxfx 的头像

在Spartan-3系列FPGA中使用LUT构建分布式RAM(1)---连载――我与FPGA活动

星期四, 07/29/2010 - 10:28

         前一阵出差,然后又吹空调受凉休息了一阵子,耽误了不少时间。现在缓过劲来了,可以继续写作了。出差途中数小时路上无聊,就顺手打印了XAPP463.pdf,即《Using Block RAM in Spartan-3 Generation FPGAs》,深感FPGA配置的灵活与复杂性。在此把阅读此应用报告的心得分享一下,欢迎大家交流。

(4)