Какие модальные редакторы доступны кроме vi/vim? [закрытый]

Из Справочного руководства по языку (стандарт IEEE 1800-2017), раздел 10.6.2 («Процедурные заявления о силе и освобождении»):

Левая часть задания ссылка на единственную переменную, сеть, постоянный битовый выбор векторной сети, постоянный частичный выбор векторной сети или их конкатенация. Он не должен быть битовым выбором или частичным выбором переменной или сети с пользовательским типом сети.

Похоже, что невозможно делать то, что вы хотите напрямую.

Моя лучшая ставка на выполнение более или менее того, что вы хотите сделать (я просто заставил один бит и оставил остальные развиваться как обычно), имея в виду, что LHS назначения силы должен быть постоянным, это что-то вроде this:

module dut (
    input   logic   [31:0]  a,
    input   logic   [31:0]  b,
    output  logic   [31:0]  z
);

    always_comb z = a & b;

endmodule: dut

module tb;
    logic [31:0] a;
    logic [31:0] b;
    logic [31:0] z;

    dut dut (.*);

    logic clk = 0;
    initial forever
        #(5ns) clk = !clk;

    logic [5:0] sel;
    initial forever begin
        case (sel)
            6'd0: force z[0] = clk;
            6'd1: force z[1] = clk;
            6'd2: force z[2] = clk;
            6'd3: force z[3] = clk;
            6'd4: force z[4] = clk;
            6'd5: force z[5] = clk;
            6'd6: force z[6] = clk;
            6'd7: force z[7] = clk;
            6'd8: force z[8] = clk;
            6'd9: force z[9] = clk;
            6'd10: force z[10] = clk;
            6'd11: force z[11] = clk;
            6'd12: force z[12] = clk;
            6'd13: force z[13] = clk;
            6'd14: force z[14] = clk;
            6'd15: force z[15] = clk;
            6'd16: force z[16] = clk;
            6'd17: force z[17] = clk;
            6'd18: force z[18] = clk;
            6'd19: force z[19] = clk;
            6'd20: force z[20] = clk;
            6'd21: force z[21] = clk;
            6'd22: force z[22] = clk;
            6'd23: force z[23] = clk;
            6'd24: force z[24] = clk;
            6'd25: force z[25] = clk;
            6'd26: force z[26] = clk;
            6'd27: force z[27] = clk;
            6'd28: force z[28] = clk;
            6'd29: force z[29] = clk;
            6'd30: force z[30] = clk;
            6'd31: force z[31] = clk;
        endcase
        @(clk or sel);
        release z[0];
        release z[1];
        release z[2];
        release z[3];
        release z[4];
        release z[5];
        release z[6];
        release z[7];
        release z[8];
        release z[9];
        release z[10];
        release z[11];
        release z[12];
        release z[13];
        release z[14];
        release z[15];
        release z[16];
        release z[17];
        release z[18];
        release z[19];
        release z[20];
        release z[21];
        release z[22];
        release z[23];
        release z[24];
        release z[25];
        release z[26];
        release z[27];
        release z[28];
        release z[29];
        release z[30];
        release z[31];
    end

    initial begin
        a = 32'h0055aaffaa55ff00;
        b = 32'habcdef0123456789;
        sel = 6'd0;
        #(98ns);
        sel = 6'd6;
    end
endmodule: tb

Это работает на моей версии ModelSim (INTEL FPGA STARTER EDITION 10.6c).

Что касается того, почему ваш код:

a[31:0] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,`TOP_TB.clk_1T,0};

не работает, я думаю, что каждое «0» интерпретируется как целое число 0, то есть 32'd0. После этого вы получите что-то на линии:

a[31:0] = {960'd0, `TOP_TB.clk_1T, 32'd0};

, а RHS усекается до 32 бит. Усечение, конечно, подразумевает, что все, что осталось от «32'd0», отбрасывается, но ваш компилятор должен действительно выдать предупреждение об этом. Что-то вроде:

a[31:0] = {30'b0,`TOP_TB.clk_1T,1'b0};

работает для меня. Вы, конечно, можете вставить эту конструкцию в «случай», который я использовал и в моем примере.

6
задан Community 23 May 2017 в 11:45
поделиться

3 ответа

За эти годы были многие модальные редакторы Non-vi. Многие из них связанный с единственной операционной системой.

WordStar, edlin, и ISPF приходят на ум. Также РЕДАКТИРОВАНИЕ от системы HDOS. Существует, вероятно, по крайней мере дюжина других под названием РЕДАКТИРОВАНИЕ, или это - варианты.

4
ответ дан 17 December 2019 в 20:36
поделиться

Я никогда не пробовал его, но AFAIK Emacs имеет плагин для эмуляции модального редактирования vi.

0
ответ дан 17 December 2019 в 20:36
поделиться

Elvis является одним из этих редакторов. Кроме того, nvi мог рассчитать как один.

-2
ответ дан 17 December 2019 в 20:36
поделиться