|
发表于 2013-7-2 00:04:39
|
显示全部楼层
回复 19# chen851112
你看看我这个代码对不???
module top
(
input clka,
input clkb,
input rst_n,
input wra_n,
input da,
output wrb,
output [7:0]db
);
// =============== Main Code Start ===============
reg [7:0]mem_p;
reg [7:0]mem_r;
always@(*)
begin:ac_clka_shifter
mem_p = mem_r;
if(!wra_n) begin
mem_p = {mem_r[6:0],da};
end
end
always@(posedge clka or negedge rst_n)
begin:as_mem_update
if(!rst_n) begin
mem_r <= 8'h00;
end
else begin
mem_r <= mem_p;
end
end
reg wra_r1;
reg wra_r2;
always@(posedge clkb or negedge rst_n)
begin:as_sync
if(!rst_n) begin
wra_r1 <= 1;
wra_r2 <= 1;
end
else begin
wra_r1 <= wra_n;
wra_r2 <= wra_r1;
end
end
assign wrb = (wra_r1 & !wra_r2);
assign db = wrb ? mem_r : 8'hzz;
endmodule |
|