Jump to content

    

SystemVerilog для не-начинающих

Приветствую!

5 hours ago, nice_vladi said:

Больше двух выражений в условных операторах if-else - нечитабельно;

Вполне читабельно,  а если еще и форматировать в несколько строк  

if (   (var1==aaa)
    && (var2>=bbb)
    ....
   ) begin
   ....
end
2 hours ago, yaghtn said:

Лично мне не нравится, что эти две if-конструкции выполняются параллельно, когда желательно чтобы они были взаимоисключающими.

Они лишь так выглядят,  на самом деле приоритет у нижнего if выше. Очень удобно бывает чтобы не писать развесистые if ... else if ... else конструкции.

Но на самом деле разговор ни о чем - очень даже может быть что приведенный код  писан не человеком, а  сгенерирован автоматом из какого нибудь граф  представления схемы.  

Удачи! Rob.

Share this post


Link to post
Share on other sites
45 minutes ago, yaghtn said:

Я бы переписал логику первого блока, если не трогать именование, например так:

Ну так попробуйте синтезировать эти два варианта и сравните. Как по мне, так не стоит тащить методики из гвидопыха, который настолько медленный, что в нём не имеет смысла бороться за производительность, в RTL, где коммутатор вставленный вместо пары AND-OR'ов прекрасно улучшит читаемость за счёт времени пропагации.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites
2 hours ago, one_eight_seven said:

коммутатор вставленный вместо пары AND-OR'ов прекрасно улучшит читаемость за счёт времени пропагации

Хм. Видимо, мне нужно подготовить что-то более весомое, чем анекдот "преждевременная оптимизация - корень всех зол".

Вы настолько явно кладёте на разные чаши весов читаемость и быстродействие, что спасибо за науку

Share this post


Link to post
Share on other sites
17 hours ago, yaghtn said:

Лично мне не нравится, что эти две if-конструкции выполняются параллельно, когда желательно чтобы они были взаимоисключающими.

Как уже отметил RobFPGA тут все однозначно и по другому быть не может. В стандарте все это разобрано по полочкам.

17 hours ago, yaghtn said:

И ещё, блок кода 12-22 делает предположения о списке возможных состояний переменной state. Если сглючит, и state влетит в состояние отличное от sA sB, то блок перестанет работать вплоть до пересброса. Короче, я уверен что после всех case-условий нужно добавлять default..

Ну раз вы уверены, то делайте так как вам удобнее. И повторюсь. Код абсолютно читаем, вся логика на поверхности, синтезируемость однозначная. Вы говнокода не видели.

 

Share this post


Link to post
Share on other sites
13 hours ago, yaghtn said:

Хм. Видимо, мне нужно подготовить что-то более весомое, чем анекдот "преждевременная оптимизация - корень всех зол".

Вложенные if'ы - это тоже сущность плодящая ошибки и ухудшающая читаемость. Выше уже не один раз написали, что в примере код читаемый.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this