Pull to refresh
235
Anton Fedorov@datacompboy

Программист / сисадмин (Sr. SRE)

0,1
Rating
298
Subscribers
Send message

"printf должен печатать что задали. Если он будет обрабатывать строки, как тогда печатать строку формата?"

Однако ж в результатах поиска по прежнему подсвечивается не ответ а слова вопроса самого..

Это в новом бинге? У меня нет доступа к новому (bing.com страница и похожа на чат ввод). Попробовал на эдже -- то же самое. Подсветка вопроса а не ответа в результатах, отсутствие ответа, тонна мусора на экране включая календари за 2019...

Можно скрин как ньюбинг выглядит?

Я на фоне этих новостей зашел и ввел в бинг и гугл "What date is today?":

Bing

Google

Думаю, положение в топе прошлый ра

Дак это ж торсионные следы от массовой миграции летающих тарелок. Они прилетают зачерпнуть ковшом топлива.

Ну, по крайней мере TheBat всегда будет прежним

Учитывая количество треша на нетфликсе и огромную цену по сравнению с конкурентами, непонятно зачем за него платить постоянно

А что вы хотели -- 44 гига надо было запаковать и выслать пингами

Согласен, иногда SEO во благо :)

Все же не совсем корректно называть это "decrypt" потому как это по факту попытка перегенерировать метаданные из данных, которые не шифровали..

Вопрос который уже задали в ветке. Какой понт переключать контексты, что оно даёт чего не даёт обычный сайт?

Вот у меня есть гарнитура. Зачем мне может быть надо заглядывать туда? Что там берут/находят, какой профиль использования, кто ЦА? Найти видео легко, лонгридов структурированных мало. Яб лонгрид впитал, да.

Вообще вкратце рассказ о чем идёт речь было бы неплохо.

Ну, Xmg Neo с подключённой водяной 175 с видяхи снимает слегко постоянно, не пик. Без водянки да, 175 только в пике...

Место для проведения стендапов и тимбилдинга для распределённых команд? Некоторым людям ника в чате недостаточно...

Требует По-моему просто задавать уточняющие вопросы. Если кандидат в состоянии модифицировать код под изменение условий - все ок.

Такими реализациями набит интернет, но это как правило недавние студенты или профессора, которые слабо связаны с индустрией.

Именно! О чем я и сказал -- списала из интернета, но лучше, чем сделал бы я за 2 минуты :)

Надеюсь, правильные реализации со временем тоже будут слямзены и впитаны в следующей версии.

Можно попросить high-throughput реализацию, и посмотреть, будет ли разница...

Вот вы прямо заинтересовали меня...

VHDL

》Hi, Gapty! Could you, please, write me an example of FIFO queue on a VHDL or Verilog using D-triggers?

》Sure! Here's an example of a FIFO queue implemented in VHDL using D-triggers:


-- FIFO queue using D-triggers
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity fifo_queue is
generic (
data_width : integer := 8;  -- width of data
depth      : integer := 16   -- depth of queue
);
port (
clk      : in  std_logic;    -- clock input
reset    : in  std_logic;    -- reset input
enq_data : in  std_logic_vector(data_width-1 downto 0); -- data to be enqueued
enq_en   : in  std_logic;    -- enable for enqueue operation
deq_en   : in  std_logic;    -- enable for dequeue operation
empty    : out std_logic;    -- output indicating if queue is empty
full     : out std_logic;    -- output indicating if queue is full
deq_data : out std_logic_vector(data_width-1 downto 0)  -- dequeued data
);
end fifo_queue;
architecture rtl of fifo_queue is
type memory_type is array (0 to depth-1) of std_logic_vector(data_width-1 downto 0);
signal memory : memory_type;
signal read_ptr, write_ptr : integer range 0 to depth-1;
signal enq_full, deq_empty : std_logic;
begin
-- D-triggers for read and write pointers
read_ptr_proc : process(clk, reset) begin
if reset = '1' then
read_ptr <= 0;
elsif rising_edge(clk) then
if deq_en = '1' and not deq_empty then
read_ptr <= read_ptr + 1;
end if;
end if;
end process;
write_ptr_proc : process(clk, reset) begin
if reset = '1' then
write_ptr <= 0;
elsif rising_edge(clk) then
if enq_en = '1' and not enq_full then
write_ptr <= write_ptr + 1;
end if;
end if;
end process;
-- D-triggers for full and empty signals
enq_full_proc : process(clk, reset, write_ptr, read_ptr) begin
    if reset = '1' then
        enq_full &lt;= '0';
    elsif rising_edge(clk) then
        enq_full &lt;= '0';
        if write_ptr = read_ptr - 1 then
            enq_full &lt;= '1';
        end if;
    end if;
end process;
deq_empty_proc : process(clk, reset, write_ptr, read_ptr) begin
    if reset = '1' then
        deq_empty &lt;= '0';
    elsif rising_edge(clk) then
        deq_empty &lt;= '0';
        if write_ptr = read_ptr then
            deq_empty &lt;= '1';
        end if;
    end if;
end process;

-- memory block for FIFO queue
memory_proc : process(clk, reset) begin
    if reset = '1' then
        for i in 0 to depth-1 loop
            memory(i) &lt;= (others =&gt; '0');
        end loop;
    elsif rising_edge(clk) then
        if enq_en = '1' and not enq_full then
            memory(write_ptr) &lt;= enq_data;
        end if;
        if deq_en = '1' and not deq_empty then
            deq_data &lt;= memory(read_ptr);
        end if;
    end if;
end process;

-- output signals
empty &lt;= deq_empty;
full &lt;= enq_full;

end rtl;

Verilog

》Wow! How does that look in Verilog?

》Here is an example of a FIFO queue in Verilog using D-triggers:

module FIFO_queue #(parameter depth = 8, width = 8) (
    input wire clk,
    input wire reset,
    input wire enq_en,
    input wire [width-1:0] enq_data,
    output reg [width-1:0] deq_data,
    output wire deq_empty,
    output wire enq_full,
    input wire deq_en
);
    reg [log2(depth):0] read_ptr, write_ptr;
    reg [width-1:0] memory[0:depth-1];
    reg deq_empty_reg, enq_full_reg;
   
    // D-triggers for full and empty signals
    always @(posedge clk or posedge reset) begin
        if(reset) begin
            deq_empty_reg <= 1'b0;
        end else if (write_ptr == read_ptr) begin
            deq_empty_reg <= 1'b1;
        end else begin
            deq_empty_reg <= 1'b0;
        end
    end
   
    always @(posedge clk or posedge reset) begin
        if(reset) begin
            enq_full_reg <= 1'b0;
        end else if (write_ptr + 1'b1 == read_ptr) begin
            enq_full_reg <= 1'b1;
        end else begin
            enq_full_reg <= 1'b0;
        end
    end
   
    // D-triggers for read and write pointers
    always @(posedge clk or posedge reset) begin
        if(reset) begin
            read_ptr <= 0;
            write_ptr <= 0;
        end else if (deq_en && !deq_empty_reg) begin
            read_ptr <= read_ptr + 1'b1;
        end else if (enq_en && !enq_full_reg) begin
            write_ptr <= write_ptr + 1'b1;
        end
    end
   
    // memory block for FIFO queue
    always @(posedge clk or posedge reset) begin
        if(reset) begin
            for(int i = 0; i < depth; i++) begin
                memory[i] <= 0;
            end
        end else if (enq_en && !enq_full_reg) begin
            memory[write_ptr] <= enq_data;
        end else if (deq_en && !deq_empty_reg) begin
            deq_data <= memory[read_ptr];
        end
    end
   
    assign deq_empty = deq_empty_reg;
    assign enq_full = enq_full_reg;
endmodule

》In this example, the queue has a depth and data width specified by the depth and width parameters respectively. It uses D-triggers to update the read and write pointers, as well as the full and empty signals, on the rising edge of the clock. The memory block updates the queue's memory array based on the current state of the read and write pointers and the enq

Лучше меня списала :)

Information

Rating
4,058-th
Location
Zürich, Zürich, Швейцария
Date of birth
Registered
Activity

Specialization

Specialist
Ведущий