No, what you wrote doesn't belong to requirements, but to the architecture.
The requirements consists of user wishes, and users shouldn't know and shouldn't care whether you used library X, or module Y.
Also, adding rationales to requirements doesn't make sense.
The system shall be composed of hardware modules X, Y and Z.
Rationale: This is how we have done it before and we didn't experience any any trouble with it.
This should be documented inIt depends. If the hardware modules are internal parts of your device, then this doesn't belong in either requirement, nor in software architecture. You tried approach A in the prototype
But, if the hardware modules are something users can plug in and out, then they do belong to requirements. For example, they want to be able to connect USB sticks. Or they want to connect a specific probe to an ultra sound system.
The fact that you did it didn't workfor a prototype is irrelevant. Approach B worked greatYour rationale can go to a document related to the hardware.
ModuleHardware module X shall be physically detachable from hardware module Y Y.
Rationale: This allows for easier storage of the system and to allow allow the user to exchange the more fragile module X in case of problems problems.
If you are having some kindBetter text (in an agile approach) would be : As a user of plug-insdevice ABC, which your userI want to be able to detach X so that it can write on their ownbe replaced in case of problems.
Yes, then itthis belongs to the requirements. But as it is written, it sounds like modules X and Y are internal things, about which users shouldn't know. ThenAnd it belongs toinfluences the architecturesoftware.
ModuleHardware module Y shall contain software function S.
Rationale: Software Software function S needs quite a lot of processing power that is only available available in module Y.
Ok, this one is weird. Sounds moreThis doesn't sound like a requirement. Actually, that may be an implementation detailinternal requirement for the HW department, which influences the software as well. As such I would just skipput it in the architecture (we tried to implement this in software, and not include in either document. If it is really critical, then adddidn't go well. We do it somewhere in the architectureHW instead).
This doesn't belong to user requirements, because user doesn't care how you implemented some functionality.