初心者です

`define STATE1 3'b000
と
parameter STATE1 3'b000

はどう使い分ければいいのでしょうか?

parameterだとモジュールごとに同じのを書かないとだめみたいだし、
`defineだとレオナルドでは警告がでたし、
同じ定義を複数のモジュールやファイルで共用はできないのでしょうか?