В данной статье разбор простейшей реализации RAM на языке Verilog. Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog. Здесь вы можете найти обучающие материалы. Читать дальше →
У вас есть запрос к базе данных или к платному API, и вы кэшируете результат? Для кэша используете ConcurrentDictionary или MemoryCache?У кэша, построенного на этих классах, есть одна неприятная проблема: отсутствие защиты от давки кэша (cache stampede). При определённой нагрузке кэш будет многократно выполнять один и тот же запрос из-за отсутствия координации между потоками и репликами. В этой статье я наглядно покажу, как давка кэша влияет на C# приложение и что с этим делать. Читать далее
Спроектируем Little Man Computer на языке Verilog. Статья про LMC была на Хабре. Online симулятор этого компьютера здесь. Напишем модуль ОЗУ на языке Verilog. Данные загружаются в ОЗУ из data_in по тактовому сигналу clk. module R0 #(parameter N = 2, M = 4) ( input clk, input [N-1:0] adr, input [M-1:0] data_in, output [M-1:0] RAM_out ); reg [M-1:0] mem [2**N-1:0]; always…
В предыдущих статьях цикла был приведен пример реализации ведомого модуля JTAG на Verilog. Я предположил, что количество инженеров, знающих Verilog, меньше, чем количество инженеров, которым требуется понимание принципов работы JTAG. Поэтому, помимо реализации на Verilog, модуль JTAG был также…