Слияние кода завершено, страница обновится автоматически
module io
#(
parameter DW = 16,
parameter AW = 12
)(
input clk, //时钟
input rst, //同步复位,高电平有效
input [DW-1:0] din, //数据输入
input [AW-1:0] addr, //地址输入
input we, //高电平写使能
output reg[DW-1:0] dout, //数据输出
input wire [DW-1:0]gpio_in,//输入端口
output wire [DW-1:0]gpio_out//输出端口
);
localparam GPI_A = 12'h000;
localparam GPO_A = 12'h001;
reg [DW-1:0]gpio_in_reg;
reg [DW-1:0]gpio_out_reg;
always @(posedge clk) begin
gpio_in_reg <= gpio_in;
end
assign gpio_out=gpio_out_reg;
always @(posedge clk) begin
if(rst) begin
gpio_out_reg <= 16'h0;
dout <= 16'h0;
end
else
if(we)
case (addr)
GPO_A: gpio_out_reg <= din;
default: ;
endcase
else
case (addr)
GPI_A: dout <= gpio_in_reg;
default: dout <= 0;
endcase
end
endmodule
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )