Board logo

标题: [求助]大家帮忙看下问题出在哪 [打印本页]

作者: pjjia15    时间: 2006-7-14 10:12     标题: [求助]大家帮忙看下问题出在哪

`define    LED_DISP       2'b01
`define    LCD_245_CS     2'b11


`define    LED_DISP_L     4'h2
`define    LCD_L          4'h1


module  lcd(MCU_data_address,led,ale,CS_P1,L245cs);
input   [7:0]  MCU_data_address;
output  [5:0]  led;
input   ale;
input   [1:0]CS_P1;
output  L245cs;
reg  [7:0]MCU_data_reg;
reg  [3:0]addr_sel;
reg  [5:0]LED_DISP_data;
reg  L245cs_reg;


initial
begin
    addr_sel = 4'h0;
end


always @(CS_P1)
begin
     case(CS_P1)
         `LCD_245_CS   :addr_sel = `LCD_L;
         `LED_DISP     :addr_sel = `LED_DISP_L;
     endcase
end


always @(addr_sel)
begin
    case(addr_sel)
        `LED_DISP_L ED_DISP_data = MCU_data_address;
        `LCD_L      245cs_reg = 0;
        default     :
                     begin
                         L245cs_reg = 1;
                         LED_DISP_data = 6'b101010;
                     end
    endcase
end


assign  L245cs = L245cs_reg;
assign  led = LED_DISP_data;


endmodule


我就是想当CS_P1的2个端口都为高时,L245cs为0,其他情况L245cs都为1


我用MAX II 仿真,发现L245cs一直都是X状态


default    :
           begin
               L245cs_reg = 1;
               LED_DISP_data = 6'b101010;
           end


这段的功能好像根本没起作用


作者: pjjia15    时间: 2006-7-14 10:49

我知道问题出哪里了
initial
begin
addr_sel = 4'h0;
end
软件不支持 initial
然后addr_sel 在没有负值前为X态,所以导致后面的都为X态

作者: outside    时间: 2006-8-2 15:01

嘿嘿!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0