出学FPGA遇到的问题

2019-03-25 09:22发布

我想做一个驱动CT1628的驱动,就三个脚串行输出 几段代码。
但是目前的程序编译不过,不知道怎么回事
程序要求:
COMMEND 的数据能按 顺序一位一位输出, STB脚为低(不输出时为高), 在CLK上升沿的时候输出DATA。

module CT1628_DISP(key1,key2,clk,sclk,sdata,stb);

        input  key1,key2,clk;                             //定义按键输入端口
        reg    cclk,cdata,cstb;
           output sclk,sdata,stb;                  //定义SERIOL OUTPUT.

        assign sclk  = cclk;
        assign sdata = cdata;
        assign stb   = cstb;

//assign en=0;        //使能端口为0,数码管就可以被驱动了。
        parameter dispmode   ='b 00000011;
        parameter writeram   ='b 01000000;
        parameter ramsddr    ='b 11000000;
        parameter dispcontrl ='b 10001111;      

always@(clk)

if(key1==1)
        begin
        //    command(cclk,cdata,cstb,dispmode);
        //    command(cclk,cdata,cstb,writeram);
        //    command(cclk,cdata,cstb,ramsddr);
        //    command(cclk,cdata,cstb,dispcontrl);
   
                command(dispmode);
                command(writeram);
                command(ramsddr);
                command(dispcontrl);   
    end
/*
        case(c_tmp)   //case语句通过的值来显示结果。
                4'b0000:
                        c=8'b11000000;   //共阳数码管显示0的段码
                4'b0001:
                        c=8'b11111001;   //共阳数码管显示1的段码

         endcase
*/



task command;

//定义输出串口脚位
input [7:0] datamnd;
reg   [7:0] datareg;
reg[2:0] i;

//assign datareg=datamnd;
        begin
                @(posedge clk)
        for(i=0;i<=7;i=i+1)

                  begin
                          cclk =1'b0;
                        cdata=(datamnd&&i);
                        cclk =1'b1;
                  end
//        datareg>>1;          
        end
endtask
endmodule

请高手指点 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。