С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да нет, оно тупо заменяет таб на три пробела. Ну, тогда я, видимо, не совсем понимаю, чего именно мы добиваемся. Мне казалось, что проблема у нас в том, что текст, отлично смотрящийся в редакторе квартуса, в просмотрщике гитхаба превращается в мусор, из-за разного размера табуляций. Вот, например, кусок кода с гитхаба:
Если его пропустить через sed по приведенному выше правилу, то на том же гитхабе он становится таким:Код:case (interrupt_state) // нет активного прерывания i_idle : begin // Если поднят флаг - переходим в состояние активного прерывания if ((ide == 1'b1) & (interrupt_trigger == 1'b1)) begin interrupt_state <= i_req ; irq <= 1'b1 ; // запрос на прерывание end else irq <= 1'b0 ; // снимаем запрос на прерывания end // Формирование запроса на прерывание i_req : if (ide == 1'b0) interrupt_state <= i_idle ; else if (iack == 1'b1) begin // если получено подтверждение прерывания от процессора irq <= 1'b0 ; // снимаем запрос interrupt_trigger <= 1'b0; interrupt_state <= i_wait ; // переходим к ожиданию окончания обработки end // Ожидание окончания обработки прерывания i_wait : if (iack == 1'b0) interrupt_state <= i_idle ; endcase
Вроде все отлично, все отступы встали на свои места, ничего не разрушено.Код:case (interrupt_state) // нет активного прерывания i_idle : begin // Если поднят флаг - переходим в состояние активного прерывания if ((ide == 1'b1) & (interrupt_trigger == 1'b1)) begin interrupt_state <= i_req ; irq <= 1'b1 ; // запрос на прерывание end else irq <= 1'b0 ; // снимаем запрос на прерывания end // Формирование запроса на прерывание i_req : if (ide == 1'b0) interrupt_state <= i_idle ; else if (iack == 1'b1) begin // если получено подтверждение прерывания от процессора irq <= 1'b0 ; // снимаем запрос interrupt_trigger <= 1'b0; interrupt_state <= i_wait ; // переходим к ожиданию окончания обработки end // Ожидание окончания обработки прерывания i_wait : if (iack == 1'b0) interrupt_state <= i_idle ; endcase
Да, для этого верилога отлично. Просто моя утилита писалась изначально для ассемблера, она умеет в локальные метки и еще всякое. Вот в ассемблере где табуляции бывают после имен меток, мнемоник и операндов разной длины умная табуляция нужна. Для верилога нужна чтобы выравнивать строчные комментарии после кода:
Код:module am2901 ( input cp, // clock positive input [8:0] i, // operation code input [3:0] a, // port A address (readonly) input [3:0] b, // port B address (read/write) input [3:0] d, // direct data input output [3:0] y, // data output (3-state) // input oe_n, // Y output enable inout q0, // shift line Q-register LSB inout q3, // shift line Q-register MSB inout ram0, // shift line register stack LSB inout ram3, // shift line register stack MSB input cin, // carry input // output cout, // carry output output ovr, // arithmetic overflow output f3, // MSB of ALU output output zf, // (F[3:0] == 0) flag output (OC) output g_n, // carry generate output output p_n // carry propagate output );
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)