`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
这段的功能好像根本没起作用
|