Дизайн Кольцевого Генератора с использованием Quartus 2 - PullRequest
0 голосов
/ 04 сентября 2018

Я разработал Кольцевой генератор для реализации на ПЛИС, используя Alter Quartus 2. Я хочу сказать инструменту, чтобы он не оптимизировал кольцевой генератор. Для этого мне нужен инструмент Синтез для моей ПЛИС (Altera DE2-07). Можете ли вы сказать мне, как я могу сделать это, чтобы предотвратить оптимизацию логики?

Спасибо.

module ringOscitry (
   en,
   w1,
   w2,
   w3,
   w4
);

input en;
output w1,w2,w3,w4;  //RTL

assign w4 = en & w3;
assign w1 = ~ w4;
assign w2 = ~ w1;
assign w3 = ~ w2;

endmodule



module ringosi(enable, w1, w2, w3, w4);
    input enable;
    output w1, w2, w3, w4;

    and u1(w4, enable, w3);
    not #5 u2(w1, w4); //Gate_level
    not #5 u3(w2, w1);
    not #5 u4(w3, w2);
endmodule



module top(en,w1,w2,w3,w4);
input en;
output w1,w2,w3,w4;
ringOscitry  c1 (en, w1, w2, w3, w4);
ringosi  c2 (enable, w1,w2, w3,w4);

endmodule 

введите описание изображения здесь

1 Ответ

0 голосов
/ 24 сентября 2018

Поэтому конструкция кольцевого генератора не выдерживает, я бы предложил следующее относительно предотвращения оптимизации.

внутри вашего RTL,

(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w1;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w2;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w3;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w4;

А затем переписайте свою комбинаторную логику, чтобы быть таким. Этот код заставляет меня съеживаться ... но я думаю, вы знаете, что вы делаете по отношению к этому генератору. Я полагаю, что приведенные выше директивы не позволят оптимизировать w1-w4. Удачи.

always @ (*)
begin
    w4 <= en & w3;
    w3 <= ~w4;
    w2 <= ~w1;
    w1 <= ~w1;
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...