function函数的问题

2019-07-15 23:42发布

最近在整一个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在线等!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。