数字电路实验报告 联系客服

发布时间 : 星期日 文章数字电路实验报告更新完毕开始阅读6b2ad348a26925c52cc5bfcf

此图是通过利用1kx4bit的存储器搭建的1kx8bit的例化的存储器件,与2114功能相仿。

下图为利用例化过后的1kx8bit元件进行位扩展,扩展成4kx8bit的存储器,TTl电路如下图

经过编译仿真之后,仿真波形图如下图:

如图,在写使能有效时将数据写入对应地址之中,在读使能有效的时候将数据读出来。

2.利用verilog进行描述 module ram( input [7:0] data,

33

input [11:0] address, input wen, input ren, input en, input clk,

output reg [7:0] outdata ); wire wire wire wire ram8m

ram1(.address(address[9:0]), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address[11:10]==2'b00), .outdata(out1)); ram8m

ram2(.address(address[9:0]), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address[11:10]==2'b01), .outdata(out2)); ram8m

ram3(.address(address[9:0]), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address[11:10]==2'b10), .outdata(out3));

[7:0] out1; [7:0] out2; [7:0] out3; [7:0] out4;

34

ram8m

ram4(.address(address[9:0]), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address[11:10]==2'b11), .outdata(out4));

always @(en or address[11:10]) begin if(en) begin

case(address[11:10]) 0:outdata = out1; 1:outdata = out2; 2:outdata = out3; 3:outdata = out4; endcase end end

endmodule

module ram8m( input [9:0] address, input [7:0] data,

35

input ren, input wen, input clk, input en,

output reg [7:0] outdata );

reg [3:0] store1[1023:0]; reg [3:0] store2[1023:0];

always @(posedge clk) begin if(en) begin if(wen) begin

store1[address] <= data[3:0]; store2[address] <= data[7:4]; end else if(ren) begin

outdata[3:0] <= store1[address];

36