Перейти к содержанию
    

приём и выдача

мне нужно сделать входную часть нарастающим фронтом, последовательным кодом старшими разрядам вперёд и с асинхронным сбросом
и выдачу убывающим фронтом, параллельным кодом.
есть код. Что в нём изменить? язык system verilog
выдача
 

module OutPart(input logic [4:0] countCommands, regN4,
input logic [2:0] regOP1, regOP2,
input logic C_int, read, reset,
input logic [1:0] regOC,
output logic C_out, D);
logic [3:0] state;

always_ff @(posedge C_int, posedge reset)
    begin
        if (reset)
            begin
                D <= 0;
                state <= 0;
                C_out <= 1;
            end
        else
        begin
            case(state)
            0:    begin
                    D <= 0;
                    C_out <= 1;
                    if (~read)
                        state <= 1;
                end
            
            1: begin
                    state <= 2;
                    case (regOC)
                    0: D <= countCommands[0];
                    1: D <= regN4[0];
                    2: D <= regOP1[0];
                    3: D <= regOP2[0];
                    endcase
                end
                
            3:  begin
                    case (regOC)
                    0: D <= countCommands[1];
                    1: D <= regN4[1];
                    2: D <= regOP1[1];
                    3: D <= regOP2[1];
                    endcase
                    state <= 4;
                    C_out <= 1;
                end
                    
            5:    begin
                    case (regOC)
                    0: D <= countCommands[2];
                    1: D <= regN4[2];
                    2: D <= regOP1[2];
                    3: D <= regOP2[2];
                    default: state <= 0;
                    endcase
                    state <= 6;
                    C_out <= 1;
                end
                
            6:  begin
                    C_out <= 0;
                    if (regOC[1])
                        state <= 0;
                    else
                        state <= 7;
                end
                
            7:  begin
                    if (regOC[0])
                        D <= regN4[3];
                    else
                        D <= countCommands[3];
                    state <= 8;
                    C_out <= 1;
                end
                    
            9:  begin
                    if (regOC[0])
                        D <= regN4[4];
                    else
                        D <= countCommands[4];
                    state <= 10;
                    C_out <= 1;
                end
                    
            10:  begin
                    C_out <= 0;
                    state <= 0;
                 end
                
            default: begin
                        state <= state + 1;
                        C_out <= 0;
                     end
            endcase    
        end
    end
        
endmodule
 

приём
 

module InPart(input logic C_ext, reset,
input logic [1:0] OC, 
input logic [5:0] In,
output logic [5:0] regIn,
output logic [4:0] countCommands,
output logic [1:0] regOC);

always_ff @(posedge C_ext, posedge reset)
    if (reset)
        begin
            countCommands <= 0;
            regOC <= 0;
            regIn <= 0;
        end
    else
        begin
            countCommands <= countCommands + 1;
            regOC <= OC;
            regIn <= In;
        end
        
endmodule
 

Изменено пользователем _makc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...