1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kingstacker-fifo

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#fifo

всегда @(*) begin
    если (posedge clk или posedge reset) begin
        если (reset) begin
            wr_ptr <= 0;
            rd_ptr <= 0;
            full <= 0;
            empty <= 1;
        end else если (we) begin
            mem[wr_ptr] <= wr_data;
            wr_ptr <= wr_ptr + 1;
            если (wr_ptr == DEPTH - 1)
                wr_ptr <= 0;
            если (wr_ptr == rd_ptr)
                full <= 1;
        end
    end
    еще_если (we) begin
        mem[wr_ptr] <= wr_data;
        wr_ptr <= wr_ptr + 1;
        если (wr_ptr == DEPTH - 1)
            wr_ptr <= 0;
        если (wr_ptr == rd_ptr)
            full <= 1;
    end
end

конецмодуля

        если (re && !full) begin
            rd_data <= mem[rd_ptr];
            rd_ptr <= rd_ptr + 1;
            если (rd_ptr == DEPTH - 1)
                rd_ptr <= 0;
            если (wr_ptr == rd_ptr)
                empty <= 1;
        конец
        еще_если (!we && re) begin
            empty <= 1;
        конец
    конец
конецмодуля

Эти примеры описывают синхронный и асинхронный FIFO на языке Verilog. Устройство: ALTERA EP4CEF17C8 Программное обеспечение: Quartus Prime 16.0 синхронный FIFO и асинхронный FIFO

fifo_syn:

8*8 синхронный FIFO; вы можете изменить самостоятельно;
Пожалуйста, сделайте глубину в виде 2^n, иначе измените функцию clog2;
Если ваше устройство не является ep4cef17c8, пожалуйста, проверьте, есть ли у вашего устройства ресурсы M9K.
Иначе измените:
(* ramstyle = "M9K" *) reg [WIDTH-1:0] memory [0:DEPTH-1];
на правильную память;
Или просто используйте ресурсы dff:
reg [WIDTH-1:0] memory [0:DEPTH-1];

fifo_asyn:

8*8 асинхронный FIFO; вы можете изменить самостоятельно;
Пожалуйста, сделайте глубину в виде 2^n, так как используется код Грея для перехода между доменами;

Надеюсь, вам понравится, спасибо! Если у вас есть вопросы, пожалуйста, свяжитесь со мной!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Синхронный FIFO и асинхронный FIFO, описанные на языке Verilog. ```verilog // Пример синхронного FIFO module sync_fifo #( parameter DEPTH = 8, parameter WIDTH = 8 ) ( input clk, input reset, input we, // write enable input re, // read enable input [WIDTH-1:0] wr_data, // write data output reg [WIDTH-1:0] rd_da... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kingstacker-fifo.git
git@api.gitlife.ru:oschina-mirror/kingstacker-fifo.git
oschina-mirror
kingstacker-fifo
kingstacker-fifo
master