Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
module in_out_data
(
output reg [7:0] out_data,
output out_clk,
input global_clk,
input [7:0] input_data,
input in_clk_a,
input in_clk_b
);
reg [7:0] data_rg;
reg [2:0] sdvig_in_rg;
reg [2:0] sdvig_out_rg;
wire e_wr_rg;
wire e_rd_rg;
assign out_clk = in_clk_b;
always @ (posedge global_clk)
begin
sdvig_in_rg <= {sdvig_in_rg[1:0], in_clk_a};
sdvig_out_rg <= {sdvig_out_rg[1:0], in_clk_b};
if (e_wr_rg) data_rg <= input_data;
if (e_rd_rg) out_data <= data_rg;
end
assign e_wr_rg = sdvig_in_rg[1] & ~sdvig_in_rg[2];
assign e_rd_rg = ~sdvig_out_rg[1] & sdvig_out_rg[2];
endmodule