随笔分类 -  Verilog

摘要:forever语句的格式: forever <语句> 或者 forever begin <多条语句> end forever循环语句常用于产生周期性波形,用来作为仿真测试信号。它与always语句不通处在于不能独立写在程序中,必须写在initial块中。 阅读全文
posted @ 2011-10-23 10:10 冰风溪谷 阅读(950) 评论(0) 推荐(0)
摘要:最近写了一个分频的代码,但是在仿真中遇到了一个小问题,具体代码如下: 分频代码(该模块功能为将50MHz时钟分频为10Hz) module div_fre( //-------------------------------Port Declaration--------------------------------- output ... 阅读全文
posted @ 2011-10-23 10:10 冰风溪谷 阅读(2031) 评论(0) 推荐(1)
摘要:"文件包含"处理`include 所谓"文件包含"处理是一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。Verilog HDL语言提供了`include命令用来实现"文件包含"的操作。其一般形式为: `include "文件名" 图中意思为:在编译的时候,需要对`include命令进行"文件包含"预处理:将File2.v的全部内容复制插入到`inclu... 阅读全文
posted @ 2011-09-29 18:04 冰风溪谷 阅读(51731) 评论(2) 推荐(2)
摘要:大家都知道,在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 冰风溪谷 阅读(752) 评论(0) 推荐(0)
摘要:异步采样模块在实际中,外部输入的异步信号需要经过系统时钟的同步化,且将输入的异步信号整形成一个时钟的脉冲信号,如下图所示在此使用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 冰风溪谷 阅读(1715) 评论(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 冰风溪谷 阅读(6201) 评论(1) 推荐(1)
摘要:通常情况下,时钟的分频在FPGA设计中占有重要的地位,在此就简单列出分频电路设计的思考思路。偶数分频电路:  如果要进行N倍偶数分频,可有待分频的时钟触发计数器,当计数器从0计到N/2-1时,输出时钟进行翻倍,并给计数器一个复位信号,使得下一个时钟从零开始技术,以此循环下去。奇数分频电路:  奇数分频电路常用的是错位“异或”法的原理。如进行三分频,通过待分频时钟的上升沿触发... 阅读全文
posted @ 2010-10-14 21:23 冰风溪谷 阅读(4202) 评论(2) 推荐(1)
摘要:`timescale命令用来说明跟在该命令后面的模块的时间单位和时间精度.使用`timescale命令可以在同一个设计里包含采用了不同的时间单位的模块.例如:一个设计中包含了两个模块,其中一个模块的时间延迟单位为纳秒(ns),另一个模块的时间延迟单位为皮秒(ps).EDA工具仍然可以对这个设计进行仿真测试.`timescale命令格式  ` timescale<时间单位>/<时间... 阅读全文
posted @ 2009-10-22 16:52 冰风溪谷 阅读(2132) 评论(0) 推荐(0)
摘要:昨天晚上看了一段代码,其中出现了`ifdef、`else、`endif,一时想不起来这几个关键字的用法的含义,所以今天来实验室就先查了一下,具体用法如下:一般情况下,Verilog HDL源程序中所有的行都参加编译。但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,... 阅读全文
posted @ 2009-10-06 11:19 冰风溪谷 阅读(6429) 评论(0) 推荐(0)