关于VHDL中case语句多执行语句的书写方式(转载stackoverflow.com并做翻译汇总)

很多国内的教材对于case语句的讲解非常单一,比如:

1 [标号:]CASE 多值表达式 IS
2     WHEN 选择值 => 被赋值变量 <=赋值变量;
3     WHEN 选择值 => 被赋值变量 <=赋值变量;
4     WHEN 选择值 => 被赋值变量 <=赋值变量;
5     ...
6     WHEN OTHERS =>被赋值变量 <=赋值变量;
7     END CASE

这会造成CASE语句“在一个条件下只能执行一条语句”的经典误解,在翻阅了一些资料后我在StackOverflow上找到了CASE语句多执行条件的写法:

 1 CASE input24 IS
 2   WHEN "00" =>
 3     output0 <= '1' ;
 4     output1 <= '0' ;
 5     output2 <= '0' ;
 6     output3 <= '0' ;
 7 ...
 8   WHEN OTHERS => 
 9     output0 <= 'X'; 
10     output1 <= 'X';
11     output2 <= 'X'; 
12     output3 <= 'X';
13     END CASE;

这样就能实现在一个条件下对多个变量进行处理。

参考:https://stackoverflow.com/questions/25961126/multiple-assignments-in-case-statement-in-vhdl

转载请联系本人并说明出处,严禁商用,谢谢配合

本文仅发布于博客园,如在其他网站看到,皆为洗稿抄袭,特此声明

posted @ 2022-03-10 14:43  FusionHEX_M  阅读(2567)  评论(0编辑  收藏  举报