function函数的问题
时间:10-02
整理:3721RD
点击:
最近在整一个Nexys3开发板驱动12864的程序,用ise编译没有出错,但是就是不显示字(我用到了function函数),后来我有单独写了一个function的程序,发现编译通过了,但是没有预期的效果。程序如下:
module function1(
input wire clk,
input wire rst,
output reg[7:0]Led
);
function [7:0]fuc;
input[3:0]adress;
begin
case(adress)
4'b0000:fuc=8'h00;
4'b0001:fuc=8'h01;
4'b0010:fuc=8'h02;
4'b0011:fuc=8'h04;
4'b0100:fuc=8'h08;
4'b0101:fuc=8'h10;
4'b0110:fuc=8'h20;
4'b0111:fuc=8'h40;
4'b1000:fuc=8'h80;
default:fuc=8'h00;
endcase
end
endfunction
reg[7:0]cnt;
always@(posedge clk or negedge rst)
if(!rst)
cnt<=0;
else
cnt<=cnt+1'b1;
reg clkf;
always@(posedge clk or negedge rst)
if(!rst)
begin
clkf<=0;
end
else
if(cnt==8'b1111_0000)
clkf<=~clkf;
reg[3:0]adr;
always@(posedge clkf or negedge rst)
if(!rst)
begin
Led<=8'b0;
adr<=4'b0;
end
else
begin
Led<=fuc(adr);
adr<=adr+1'b1;
end
endmodule
(注:这是一个调用function函数使开发板上的八个灯依次点亮的程序。引脚连接没问题)
求教,为什么没有预期的效果,原因在哪,查找了半天都不知道错在哪undefinedundefinedundefined在线等!
module function1(
input wire clk,
input wire rst,
output reg[7:0]Led
);
function [7:0]fuc;
input[3:0]adress;
begin
case(adress)
4'b0000:fuc=8'h00;
4'b0001:fuc=8'h01;
4'b0010:fuc=8'h02;
4'b0011:fuc=8'h04;
4'b0100:fuc=8'h08;
4'b0101:fuc=8'h10;
4'b0110:fuc=8'h20;
4'b0111:fuc=8'h40;
4'b1000:fuc=8'h80;
default:fuc=8'h00;
endcase
end
endfunction
reg[7:0]cnt;
always@(posedge clk or negedge rst)
if(!rst)
cnt<=0;
else
cnt<=cnt+1'b1;
reg clkf;
always@(posedge clk or negedge rst)
if(!rst)
begin
clkf<=0;
end
else
if(cnt==8'b1111_0000)
clkf<=~clkf;
reg[3:0]adr;
always@(posedge clkf or negedge rst)
if(!rst)
begin
Led<=8'b0;
adr<=4'b0;
end
else
begin
Led<=fuc(adr);
adr<=adr+1'b1;
end
endmodule
(注:这是一个调用function函数使开发板上的八个灯依次点亮的程序。引脚连接没问题)
求教,为什么没有预期的效果,原因在哪,查找了半天都不知道错在哪undefinedundefinedundefined在线等!
你说的没有达到预想的效果,那现在是什么样的现象?
调用function函数使开发板上的八个灯依次点亮
不明白你的意思!