Verilog中Task语句可综合设计实例
来源:互联网 发布:美国警察射杀黑人 知乎 编辑:程序博客网 时间:2024/05/23 19:18
此程序在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
`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
0 0
- Verilog中Task语句可综合设计实例
- Verilog中Task语句可综合设计实例
- Verilog中可综合与不可综合的语句
- Verilog中可综合及不可综合语句概述
- Verilog中可综合与不可综合的语句
- Verilog的可综合设计
- Verilog可综合状态机
- verilog 不可综合语句
- 可综合的verilog语法
- verilog中条件分支语句的综合问题
- Verilog中task使用
- Verilog面向综合的设计
- verilog-for 语句实例
- Verilog 实现 #? 的可综合延迟
- Verilog 之随机波形产生-可综合
- [转]verilog 不可综合语句 总结 汇总
- verilog 不可综合语句 总结 汇总
- verilog-不可综合语句-总结-汇总
- OutputStream、InputStream、Writer、Reader学习笔记
- HDU 5175 - Misaki's Kiss again (数学)
- 恒精度频率计的VHDL可综合代码
- 【运筹学基础】——预测
- 恒精度频率计的Verlog可综合代码
- Verilog中Task语句可综合设计实例
- Problem 044——UVa 572 - Oil Deposits
- 同源基因查找软件OrthoMCL的使用
- [LeetCode]Largest Number
- HDU 1312 red and black
- Putty Change the Terminal Font
- SPWM控制器的全数字设计
- mave 中pom文件基本配置
- Java开发者易犯错误Top10