В 50МГц часы, например, 1 секунда задержки, и выводит разрешающий сигнал с задержкой.
Во-первых вычислить, сколько раз синхронизации, MHZ = HZ 10 из шести квадратных. Т = 20ns
Вторая синхронизация требуется для числа семь сторон 5, а именно 5000_0000.
Затем вычисления требуется несколько регистров, требуемый двоичный калькулятор. 26-битовый регистр.
// --------- метод (моя формулировка) -------------------------------- --------------- // -------------- -------------- 5000_0000 4999_9999 + 1 = -------------- REG [ 25 : 0 ]; cnt_1s // 26-битовый регистр , чтобы поместить 4999_9999 Всегда @ ( posedge CLK или negedge RST_N) Бегин IF (! RST_N) cnt_1s <= 26 ' Д0; еще IF (cnt_1s < 26 ' d4999_9999) // Сохранить потребность cnt_1s <+ = cnt_1s 1. ' B1; еще cnt_1s <= cnt_1s; Конец провода cnt_done1s = (== cnt_1s 26 ' d4999_9999); // --------- нужно добавить метод разрешающий сигнал ------------- --------------------- РЕГ [ 25 : 0 ] cnt_1s; // 26-битовый регистр , чтобы поместить 4999_9999 Всегда @ ( posedge CLK или negedge RST_N) Бегин ЕСЛИ ( ! RST_N) cnt_1s <= 26 ' Д0; остальное ЕСЛИ (delay_en) // внешний входной сигнал включения, начинает отсчет Бегин ПЧ(cnt_1s < 26 ' d4999_9999) cnt_1s <= cnt_1s + 1 ' b1; остальное cnt_1s <= cnt_1s; конец конец проволоки cnt_done1s = (cnt_1s == 26 ' d4999_9999); // ---------方法二------------------------------------- ----------- проволока cnt_done1s; рег [ 25 : 0 ] cnt_1s; всегда @ ( posedge CLK или negedge rst_n) начать если (! rst_n) cnt_1s <= 26 ' Д0; остальное ЕСЛИ (cnt_1s < 26 ' d4999_9999) cnt_1s <+ = cnt_1s 1. ' B1; в остальное cnt_1s <= cnt_1s; Конец ASSIGN cnt_done1s = (== cnt_1s 26 ' d4999_9999); // ---- -------- Способ три -------------------------------------- t_one Параметр = 4999_9999; // необходимо Сохранить REG [ 25 : 0 ] delay_cnt; Всегда @ ( posedge CLK или negedgerst_n) если ! ( rst_n) delay_cnt <= 26 ' d0; если (delay_cnt == t_one) delay_cnt <= 26 ' d0; еще delay_cnt <= delay_cnt + 1 ' b1; Провод delay_done = (delay_cnt == t_one)