Vivado綜合屬性系列之四 ROM_STYLE
一、前言
????????ROM英文全稱為Read Only Memory,只讀存儲器,里面主要存放固定的數(shù)據(jù)。
二、ROM_STYLE
????? ? ROM的使用方式與RAM類似,格式樣例為:(* rom_style="{distributed | block}" *),但可設(shè)置的值只有distributed和block,同時也支持在約束文件XDC使用set_property設(shè)置。
2.1 工程代碼
module ROM_STYLE(dout,clk,address,ce);
input clk;
input [2:0] address;
input ce;
output [7:0] dout;
reg [7:0] dout;
(* rom_style="block" *) reg [7:0] rom_name[7:0];
initial begin
? ? ? ? rom_name[0]<=4'd0;
? ? ? ? rom_name[1]<=4'd1;
? ? ? ? rom_name[2]<=4'd2;
? ? ? ? rom_name[3]<=4'd3;
? ? ? ? rom_name[4]<=4'd4;
? ? ? ? rom_name[5]<=4'd5;
? ? ? ? rom_name[6]<=4'd6;
? ? ? ? rom_name[7]<=4'd7;??
end
always @(posedge clk)
if(!ce)?
dout<=8'bz;
else
? ? dout<=rom_name[address];
endmodule
????屬性ROM_STYLE設(shè)置為block,結(jié)果如圖,實現(xiàn)ROM使用的是BRAM

?????屬性ROM_STYLE設(shè)置為distributed,此時實現(xiàn)是通過LUT和寄存器FDRE組合實現(xiàn)
