看看这段ISA接口程序为什么不对 本人的问题是,assign led_out=wr_data[11:0]; 从PC机发送过来的一个16位确定数data, led显示的 得到的是个不确定数; 如果不用iocs16=(addr[9:4]==basic_addr[9:4])?1'b0:1'bz 这段收到的8位数又是正确的
module ISA ( clk, reset, led_out, data, addr, iow, ior, iocs16, basic_addr_set ); input clk; input reset; input [3:0] basic_addr_set; inout [15:0] data; input [9:0] addr; input iow; input ior; output iocs16; output [11:0] led_out;
reg [15:0] wr_data;
wire [9:0] basic_addr={2'd2,basic_addr_set,4'd0}; //板卡基地址 tri iocs16=(addr[9:4]==basic_addr[9:4])?1'b0:1'bz; assign led_out=wr_data[11:0];
[email=always@(iow,addr,reset]always@(iow,addr,reset[/email]) begin if(reset) begin // pl_reg_h<=1'h0; end else if(!(iow)&&(addr==basic_addr)) begin // pl_reg_h<=data[15]; end else if(!(iow)&&(addr==(basic_addr+1))) begin wr_data<=data; end end
|