Цитата(Stas- @ Jun 2 2009, 08:52)

Думал сделать на EPM7128S коррелятор, работающий в реальном времени, и заодно приобщиться к плисам. Микруху выбрал из-за невысокой цены и купившись на "2500 эквивалентных вентилей"

Коррелятор должен был бы коррелировать M-последовательность длиной 127(128) бит - для хорошей помехозащищенности при передаче по радиоканалу. Для начала, радостно воткнул мегафункцию "сдвиговый регистр" на 128 бит - и этот сдвиговый регистр сожрал 128 lut - все ресурсы этой плиски

Подскажите, может зря я воспользовался мегафункцией? Может, надо было как-то по другому? Или тут уже ничего не поделаешь? Пакет - Quartus II 9.0
вообще-то для М-последовательности длиной 127 бит нужен сдвиговый регистр на 7 бит.
на его вход подается XOR от некоторых битов
мегафункцией, однозначно, зря - лучше писать кодом (я не проверял - так написал и М-последовательность мог не угадать - то есть связи неправильно - главное общий подход)
module mseq(input logic clk, rst, output logic m);
reg [6:0] sr;
always@(posedge clk)
if(rst)
sr<='1;
else
sr<={sr[0]^sr[6]^sr[5], sr[6:1]};
assign m=sr[0];
endmodule