摘要: 在使用ise的时候不知道大家有没有使用template的习惯,我发现在使用ise中提供的模板并不能完全提供我们所需的模板,有些时候我们更多的是需要使用我们自己的一些模板。在ise的软件中,关于模板的栏目中,有选项。点击右键可以创建模版。但是在使用过程中我发现,这样创建的模板在更换了工程后,之前创建的模版就不能再看到,即这样创建的模版就只能是针对具体的工程的,工程改变的时候需要重新添加,而不是通用的,所以使用比较麻烦。而ise系统自带的模板却是通用的,在此基础上我找到了解决的方法,具体如下: Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-N 阅读全文
posted @ 2011-08-09 16:46 冰风溪谷 阅读(1472) 评论(6) 推荐(1) 编辑
摘要: 大家都知道,在verilog的声明中,对于reg类型的声明一般的格式为reg [with-1:0] <name>;今天在看了fpga4fun网页上的一个小程序的时候,产生了困惑,因为在仿真的时候发现没有输出。其原因就在于reg的声明。代码如下所示:module LEDglow(clk, LED);input clk;output LED;reg [23:0] cnt = 24'b0;always @(posedge clk) cnt<=cnt+1;wire [3:0] PWM_input = cnt[23] ? cnt[22:19] : ~cnt[22:19];reg 阅读全文
posted @ 2011-08-08 20:49 冰风溪谷 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 通常情况下,在FPGA芯片中可能有多个DCM,软件进行设计布局的时候会使用默认的DCM。但有时我们可能需要选择的不是默认的DCM,这样的话我们就需要在UCF文件中进行DCM的布局的约束设置。在此,主要讲两种约束方法。第一种:使用LOC进行约束。LOC是综合与布局的一个最基本的约束,可以指定实际元件在FPGA中的布局位置,LOC可以指定一个具体的位置,也可以指定一个位置区域,这中约束可以使用于DCM的约束。UCF约束语法如下:INST “instance_DCM_name” LOC = location;其中instance_DCM_name为DCM的名称,Location是需要定义的位置。在此 阅读全文
posted @ 2011-07-18 15:11 冰风溪谷 阅读(1413) 评论(0) 推荐(0) 编辑
摘要: 在FPGA中,双向端口一般是通过对三态们控制来实现的。硬件结构如下图所示:当Z=0时,上面的管子开通,此时数据可以从上面的管子输出,这是双向端口就作为输出口;当Z=1时,上面管子被置为高阻态,数据不能从上面的管子输出,此时数据只可以从下面的管子由外向内输入,这是的双向端口是输入口。双向端口示意图如下所示:输入口din定义:input [7:0] din;当双向端口dinout作为输出口时,我们从din端口输入数据到模块中,让数据从dinout口出来。输出口dout定义:output [7:0] dout;当双向端口dinout作为输入口时,我们让数据从dinout口输入,从输出口dout输出。 阅读全文
posted @ 2011-06-21 18:16 冰风溪谷 阅读(6746) 评论(0) 推荐(1) 编辑
摘要: 异步采样模块在实际中,外部输入的异步信号需要经过系统时钟的同步化,且将输入的异步信号整形成一个时钟的脉冲信号,如下图所示在此使用Verilog将外部异步信号进行同步整形:module clk_syn(clk,reset,s_in,s_out );// --------------Port Declaration----------------------input clk;input reset;input s_in;output s_out;//--------------Port data type declaration-------------//--------------Defin 阅读全文
posted @ 2011-06-16 15:10 冰风溪谷 阅读(1661) 评论(1) 推荐(0) 编辑
摘要: task 和 functiontask和function说明语句分别用来定义任务和函数。--特点1、利用任务和函数可以把一个很大的程序模块分解成许多小的任务和函数便于理解和调用。2、输入、输出和总线信号的值可以传入、传出任务和函数。3、任务和函数往往还是打的程序模块中在不同地点多次用到的相同的程序段。4、学会使用task和function语句可以简化程序的结构,使程序明白易懂,是编写较大型模块的基本功。--task和function区别task和function的主要不同有以下四点:1、function只能与主模块公用一个仿真时间单位,而task可以定义自己的仿真时间单位。2、function 阅读全文
posted @ 2011-05-04 13:32 冰风溪谷 阅读(6077) 评论(1) 推荐(1) 编辑
摘要: modelsim 仿真没有波形 现象:仿真时没有“object”,没有波形。 a).原因:软件本身的优化问题,解决方法:在安装目录下C:\Modeltech_6.2b目录下找到modelsim.ini文件,将其属性改为可写即将原来选中的“可读”去掉。打开该文件将里面的VoptFlow = 1改为VoptFlow = 0。值得一提的是,如果在修改modelsim.ini之前建立的project,在修... 阅读全文
posted @ 2011-04-27 20:36 冰风溪谷 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: EDK实用实例之LED目的:初学EDK,发现对于高版本的ISE软件,几乎没有比较好的中文教程,对于使用EDK来创建工程和试验整个流程有很大的难度,特此写下我自己的实验流程,以供像我一样想学习EDK的更多的朋友能更好的入门。实验环境:软件:Xilinx ISE Design Suite 12.4板卡:Xilinx SP601开发板实验内容:使用Xilinx Platform Studio创建MicroBlaze最小系统,并添加软件工程,驱动XPS中创建的最小系统工作。本次实验主要是驱动开发板上的LED按顺序点亮,然后再依次熄灭。 实验步骤:第一步:XPS中创建MicroBlaze系统。1、 打开 阅读全文
posted @ 2011-03-25 23:45 冰风溪谷 阅读(3769) 评论(3) 推荐(2) 编辑
摘要: 如图1 图1 选择“字体格式”。注意红框内的设置。 其中一定要勾选“使用全局字体” 、 “使用全局字体大小”。 如图2 图2 建议大家使用Consolas和微软雅黑混合字体。consolas是公认的很好用的编程字体。 微软雅黑大家都耳熟能详了。 转载地址:http://www.iamle.com/archives/461.html 注意:文章中没有对YaHei.Consolas.1.12的... 阅读全文
posted @ 2010-11-27 00:20 冰风溪谷 阅读(18237) 评论(2) 推荐(1) 编辑
摘要: 通常情况下,时钟的分频在FPGA设计中占有重要的地位,在此就简单列出分频电路设计的思考思路。偶数分频电路:  如果要进行N倍偶数分频,可有待分频的时钟触发计数器,当计数器从0计到N/2-1时,输出时钟进行翻倍,并给计数器一个复位信号,使得下一个时钟从零开始技术,以此循环下去。奇数分频电路:  奇数分频电路常用的是错位“异或”法的原理。如进行三分频,通过待分频时钟的上升沿触发... 阅读全文
posted @ 2010-10-14 21:23 冰风溪谷 阅读(4093) 评论(2) 推荐(1) 编辑