在网上看了一下ROM的设计,大部分都是只有一个数据输出端口的形式。代码如下所示。 但是我的程序里面,一次需要用到ROM里面的四个数据,就是输入四个地址,得到四个输出数据。当然可以一次得到一个数据,用四个周期的时间。但是我希望最好能一个周期就得到四个数据。 请问高手有什么办法可以实现吗?先谢谢! 网上找到的ROM代码: module v_rams_21a (clk, en, addr, data); input clk; input en; input [4:0] addr; output reg [3:0] data; always @(posedge clk) begin if (en) case(addr) 5'b00000: data <= 4'b0010; 5'b00001: data <= 4'b0010; 5'b00010: data <= 4'b1110; 5'b00011: data <= 4'b0010; 5'b00100: data <= 4'b0100; 5'b00101: data <= 4'b1010; 5'b00110: data <= 4'b1100; 5'b00111: data <= 4'b0000; 5'b01000: data <= 4'b1010; 5'b01001: data <= 4'b0010; 5'b01010: data <= 4'b1110; 5'b01011: data <= 4'b0010; 5'b01100: data <= 4'b0100; 5'b01101: data <= 4'b1010; 5'b01110: data <= 4'b1100; 5'b01111: data <= 4'b0000; 5'b10000: data <= 4'b0010; 5'b10001: data <= 4'b0010; 5'b10010: data <= 4'b1110; 5'b10011: data <= 4'b0010; 5'b10100: data <= 4'b0100; 5'b10101: data <= 4'b1010; 5'b10110: data <= 4'b1100; 5'b10111: data <= 4'b0000; 5'b11000: data <= 4'b1010; 5'b11001: data <= 4'b0010; 5'b11010: data <= 4'b1110; 5'b11011: data <= 4'b0010; 5'b11100: data <= 4'b0100; 5'b11101: data <= 4'b1010; 5'b11110: data <= 4'b1100; 5'b11111: data <= 4'b0000; endcase end endmodule |
|
来自: 昵称20463710 > 《FPGA》