I know that SInt is for Signed numbers and UInt is for Unsigned numbers, so If I used SInt instead of UInt it will infer a sign extension for example?
Another thing I am confused with is the difference between Bits and UInt types. Can someone clarify this to me?
Is it safe to use UInt all the time while designing with Chisel?
You can use UInt everywhere, and for beginners, arguably you should do so. But using more appropriate types allow you to type check your design so you don't mistakenly use an operator/function that doesn't apply to your type.