with current_display select
char_output <= hours1 & '1' when "0111",
hours2 & '1' when "1011",
mins1 & '1' when "1101",
mins2 & '1' when "1110",
"00000" when others;
다음과 같은 코드를 가지고 있지만 내가 7 세그먼트 디스플레이를 선택하는 두 개 이상의 옵션을 추가하고 싶습니다 전에. 내가이 사람들에게 또 다른 속성을 추가한다면, 그때는 복잡한 코드가 때문에 좀 "만약"문이 같은 코딩을 궁금 내가이 일을 하나의 옵션 만,
with set_alarm_switch & current_display select
char_output <= hours1 & '1' when "00111",
hours2 & '1' when "01011",
mins1 & '1' when "01101",
mins2 & '1' when "01110",
alarm_hours1 & '1' when "10111",
alarm_hours2 & '1' when "11011",
alarm_mins1 & '1' when "11101",
alarm_mins2 & '1' when "11110",
"00000" when others;
추가.
7 세그먼트 디스플레이를 모두 하나의 char_output 신호로 결합합니까? 나는 당신이 4 신호, 각 7 세그먼트 디스플레이 당 하나있을 것이라고 생각합니다. 그렇게했다면 코드를 단순화 할 것입니다. – Russell
나는 7 세그먼트 디스플레이를위한 다른 vhdl 모듈을 가지고있다.이 모듈은 "when"다음에이 숫자들을 16 진수로 디스플레이에 할당한다. 그리고 저는 제 7 세그먼트 디스플레이를 모두 하나의 char_output 신호로 결합하고 있다고 생각합니다. 여기에있는 것은 처음에는 내가 작성한 첫 번째 코드가 있었지만 두 번째 코드의 마지막 4 줄에 몇 가지 다른 디스플레이를 보여줄 필요가있는 다른 스위치 할당을 생각해 냈습니다. 나에게 아이디어를 줄 수 있니? 아니면 그냥 두 번째 코드에서했던 것처럼 다른 속성을 추가하고 동일한 작업을 수행해야합니까 ??? Thx – Alkadian
"if"를 "case"와 혼합하려면 프로세스에 넣어야합니다. 내가 VHDL - 2008, 선택한 과제 (위와 같이)는 프로세스에서 허용되지만, 이전에는 그렇지 않은 것으로 나타났습니다. 결과적으로 프로세스에 넣으면 동등한 case 문으로 변환해야 할 수도 있습니다. –