Key schedule just contains permuted choice and left shifting, which generates a mapping from bit positions in original key and bit positions in each round key. As a result, we can calculate the mapping beforehand and make the entire process in key schedule into direct assignments of round keys.
The data block and key are using different endian approach from arbitrary precision data type defined in HLS, so endian convertion for original data block and key is added before and after encryption and decryption.
The implemented DES encryption/decryption flow is shown in the following figure.
The implemented 3DES flow uses dataflow among three DES modules.