wangjun403 发表于 2013-9-5 16:36:30

rom 查找表

用rom初始化数据去当查找表的时候
可以送进地址,立刻出来数据吗(不和时钟相关联)? 就像使用下面case语句一样

`include "timescale.v"

module aes_sbox(a,d);
input                a;
output                d;
reg                d;

always @(a)
        case(a)                // synopsys full_case parallel_case
           8'h00: d=8'h63;
           8'h01: d=8'h7c;
           8'h02: d=8'h77;
           8'h03: d=8'h7b;
           8'h04: d=8'hf2;
           8'h05: d=8'h6b;
           8'h06: d=8'h6f;
           8'h07: d=8'hc5;
           8'h08: d=8'h30;
           8'h09: d=8'h01;
           8'h0a: d=8'h67;
           8'h0b: d=8'h2b;
           8'h0c: d=8'hfe;
           8'h0d: d=8'hd7;
           8'h0e: d=8'hab;
           8'h0f: d=8'h76;
        endcase

endmodule

Fourier00 发表于 2013-9-5 22:28:49

有些难度

蓝色风暴@FPGA 发表于 2013-9-5 22:34:55

送进地址,立刻出来数据,只能是硬连线了
ROM是M9K块,恐怕不行

wangjun403 发表于 2013-9-6 09:03:42

硬连线消耗的资源太多了

when90 发表于 2013-9-6 17:23:48

module ROM(
data_in,
data_out
);
inputdata_in;
output data_out;
function rom;
input data_in;
case(data_in)
0:rom = 0;
1:rom = 1;
2:rom = 2;
3:rom = 3;
4:rom = 4;
5:rom = 5;
6:rom = 6;
7:rom = 7;
8:rom = 8;
9:rom = 9;
10:rom = 10;
11:rom = 11;
12:rom = 12;
13:rom = 13;
14:rom = 14;
15:rom = 15;
default: rom=4'hxx;
endcase
endfunction
assign data_out=rom(data_in);
endmodule

when90 发表于 2013-9-6 17:25:19

在DE2上跑了,没什么问题但不知道是不是你说的意思

stdio 发表于 2013-9-6 17:59:08

distribute ram可以。你的ROM不大,占不了多少资源。

wangjun403 发表于 2013-9-8 18:27:34

stdio 发表于 2013-9-6 17:59 static/image/common/back.gif
distribute ram可以。你的ROM不大,占不了多少资源。

本来是256*8bit的一个rom,我没有都写上,空间不够

而系统需要40个这样的ROM,如果全用硬件资源,太占空间了

片上的RAM不用也很浪费

wangjun403 发表于 2013-9-8 18:28:48

when90 发表于 2013-9-6 17:25 static/image/common/back.gif
在DE2上跑了,没什么问题但不知道是不是你说的意思

你这个和我贴的那个有什么区别?

不都是用LE去实现的吗
页: [1]
查看完整版本: rom 查找表