Complex Programmable Logic Device

ChatGPT explains a Complex Programmable Logic Device (CPLD):

A CPLD (Complex Programmable Logic Device) is a type of digital integrated circuit that is used for creating custom digital logic designs. It’s a step between simple PLDs (Programmable Logic Devices) and more complex FPGAs (Field-Programmable Gate Arrays).

Click through for further details.

Critical Path != Critical Section

I always get the concepts “critical path” and “critical section” confused.

The “critical section” is the part in your algorithm which you must hold a lock for; whereas the “critical path” is an idea from hardware design which relates to the time taken for the longest combinatorial logic that needs to be processed during a clock cycle, thus limiting the frequency you can run your clock at.

Although the terminology “critical path” came from hardware, the same terminology is used in software. ChatGPT has a fairly good write-up on the two uses of the term “critical path”.

I learned a little more about this in Introduction to VHDL for FPGA and ASIC design.

CRC

I watched Ben Eater’s videos How do CRCs work? and Checksums and Hamming distance (the full course is Learn about error detection) then found the Wikipedia page: Cyclic redundancy check.

Also of interest: