[求助] 出学FPGA遇到的问题

kingdom152479   2012-4-10 14:33 楼主
我想做一个驱动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

请高手指点

回复评论 (3)

这是我编的第一个程序,就这样夭折了么?
点赞  2012-4-10 15:18
cdata是几位的寄存器?
cdata=(datamnd&&i);这个可以吗?
点赞  2012-4-10 16:01
verilog 中&& 表示逻辑与的关系吧
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2012-4-28 13:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复