Verilog中Task语句可综合设计实例

原创 2015年02月14日 21:47:43
此程序在Xilinx ISE综合工具中实现了综合和布局布线后仿真,功能正确。感兴趣的可以一起讨论研究。

`timescale 1ns / 1ps

module TaskLearn(clk , reset , signal);

input clk , reset;
output reg signal;
reg [3:0]counter;

reg [3:0]state;
parameter idle   = 4'b0000;
parameter state1 = 4'b0001;
parameter state2 = 4'b0010;
parameter state3 = 4'b0100;
parameter state4 = 4'b1000;

always@(posedge clk)
begin
if(reset)
    begin
    state <= idle;
    signal <= 1'bZ;
    end
else
    case(state)
        idle:
            begin
            state <= state1;
            signal <= 1;
            end
        state1:
            begin
            signal <= 0;
            hold_10_clk(state2);
            end
        state2:
            begin
            signal <= 1;
            state <= state3;
            end
        state3:
            begin
            hold_10_clk(state4);
            //state <= state4;综合报告中采用两种方法资源使用几乎一样
            signal <= 0;
            end
        state4:
            begin
            state <= state1;
            signal <= 1;
            end
        default:
          state <= idle;
    endcase
end
//-----------------------------------------------------------------------------
//延时10个周期控制
task hold_10_clk;
    input  [3:0]s;
    if(counter < 10)
        counter <= counter + 1;
    else 
    begin
        counter <= 0;
        state <= s;
    end
endtask
//-----------------------------------------------------------------------------
endmodule 

verilog中的task用法

任务就是一段封装在“task-endtask”之间的程序。任务是通过调用来执行的,而且只有 在调用时才执行,如果定义了任务,但是在整个过程中都没有调用它,那么这个任务是不会 执行的。调用某个任务时...
  • a14730497
  • a14730497
  • 2012年09月29日 11:05
  • 37259

Verilog中任务(task)和函数(function)

如果程序中有一段语句需要执行多次,则重复性的语句非常多,代码会变得冗长且难懂,维护难度也很大。任务和函数具备将重复性语句聚合起来的能力,类似C语言的子程序。通常任务和函数来代替重复性语句,也有效简化程...
  • duhanting
  • duhanting
  • 2013年08月26日 12:39
  • 3516

Verilog中Task语句可综合设计实例

此程序在Xilinx ISE综合工具中实现了综合和布局布线后仿真,功能正确。感兴趣的可以一起讨论研究。 `timescale 1ns / 1ps module TaskLearn(clk ...
  • u012151773
  • u012151773
  • 2015年02月14日 21:47
  • 1895

Verilog HDL中task与function的区别

任务、函数的定义和调用都包括在一个module的内部,他们一般用于行为级建模,在编写Testbench时用的较多,而在写可综合的代码时要少用。   function的定义:     function ...
  • kobesdu
  • kobesdu
  • 2014年09月05日 14:22
  • 3925

Verilog中可综合与不可综合的语句

础知识:verilog 不可综合语句  (1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,int...
  • wordwarwordwar
  • wordwarwordwar
  • 2016年12月17日 23:38
  • 3591

Verilog中task使用

使用Verilog-2001语法,格式更简洁: Verilog 1995:Using the Task Function, Combine Port List, Type Information, a...
  • HengZo
  • HengZo
  • 2015年11月06日 15:22
  • 1947

Verilog testbench总结(一)

1. 激励的产生 对于testbench而言,端口应当和被测试的module一一对应。端口分为input,output和inout类型产生激励信号的时候,input对应的端口应当申明为reg, ...
  • wordwarwordwar
  • wordwarwordwar
  • 2016年12月26日 12:50
  • 9118

结束任务函数 Endtask function

;结束任务函数BOOL STDCALL  EndTask (HWND hWnd, BOOL fShutDown, BOOL fForce) BOOL WINAPI EndTask(    HWND h...
  • ntdll
  • ntdll
  • 2005年10月19日 16:28
  • 1683

Verilog中可综合及不可综合语句概述

Verilog中可综合及不可综合语句概述     Verilog硬件描述语言有很完整的语法结构和系统,类似高级语言,这些语法结构的应用给我们的设计描述带来很多方便。但是,我们知道,Verilog...
  • Leo_Luo1
  • Leo_Luo1
  • 2017年06月02日 23:51
  • 503

关于Verilog的可综合性

可综合模型的结构     如果程序只用于仿真,那么几乎所有的语法和编程语句都可以使用。但如果程序是用于硬件实现,那么我们就必须保证程序的可综合性,即所编写的程序能被综合器 转化为相应的电路结构。...
  • a8039974
  • a8039974
  • 2015年02月08日 10:26
  • 1570
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Verilog中Task语句可综合设计实例
举报原因:
原因补充:

(最多只允许输入30个字)