https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=101540

'물류내 품질별 아이템 갯수 조회' 이게 최적화된 회로인지 좀 봐줘순서대로 설명 Nixie tube가 숫자 디스플레이 기능은 좋은데 '아무거나', '모두' 같은 신호는 일률적으로 처리 못함1. 회로 전체 모습2. 일정 신호 조합기 통한 원하는 품목 선택3. 선택 선별 조합기를 통해gall.dcinside.com





조합기 7개 -> 6개




사실 원래 6개가 아니라 12개였다


원본 16개에서 줄인건 맞는데 좀? 애매한?



시분할이랑 마지막 출력부분 메모리회로에 신호 다섯종류 다 저장하는거까지는 생각하기 쉬워서 그냥 했는데 아웃풋이 정해진 신호로만 나와야한다는게 까다로웠음


임의 신호 -> (값을 유지하면서) 최종 출력 신호들로 변환 부분이 잘 안돼서 그냥 품질별로 산술연산 하나씩 박아놓은건데 조합기 두개로 해결하는 방법이 있더라고


https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=101545

품질별 재고수량 조회하는 회로.https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=101540 '물류내 품질별 아이템 갯수 조회' 이게 최적화된 회로인지 좀 봐줘 - 팩토리오 마이gall.dcinside.com




품질빨칩신호가 틱마다 돌아가면서 하나씩 들어오고. '녹색선에서 0보다 큰 값을 가지는 신호'의 빨간선 입력이 스택신호로 나옴


2.0 이후로 녹색선 빨간선 따로따로다룰수 있다는건 알고있었는데 녹색선입력으로 종류만 정하고 빨간선 신호를 통과시키는 발상이 쇼크였음...




그리고 이 스택신호가 다시 1의 값을 가지는 임의의 품질신호와 곱해져서 임의의 품질신호를 출력


참고로 품질신호는 아이템 품질 대비 2틱씩 밀려야 한다.


일반아이템 -> 고급아이템 -> 희귀아이템 -> 특급아이템 -> ... 
특급신호    -> 전설신호    -> 일반신호    -> 고급신호    -> ...


이런 식




그래서 사실상 같은기능인 부분만 훔쳐와서 갈아끼니까 조합기가 6개로 팍 줄었다




파란색 부분은 숫자 깜빡거리지 말라고 달아놓는건데 저번 시프트 레지스터에서 봤던거랑 같은 방식이었음


1틱만 작동하는 조합기와 1틱만 작동하지 않는 조합기의 아웃풋을 합쳐서 끊김이 없게 하는 식



초록색 산술연산은 매 틱 항상 신호를 내보내고 있지만 (특급신호 -> 전설신호 -> 일반신호 -> ... )


하나의 품질 기준에서 보면 '1틱만 켜지고 다른 모든 틱에 꺼져있는' 상태기 때문에 1틱만 작동하는 조합기의 역할을 수행할수 있다




첫번째 조건이 방금 말했던 한틱씩만 끄는 조건

그리고 두번째는 항상 참



??? AND 조건이면 항상 참은 필요없는거 아닌가?? 라고 생각해서 꺼봤는데 바로 터진다. 


알고보니 조건쪽 각각에 빨간선 체크가 안돼있으면 빨간선으로 출력을 안 보내는 거였음. (신호 종류 정해주는 역할을 하니까)


진짜 빨간선 녹색선 구분 추가되고 나서부터 맨날 헷갈린다.




지금까지는 중복되는 부분이었는데 이왕 여기까지 온김에 7조합기짜리 나머지 부분도 마저 설명하고 가자.



클락은 수량비교 아웃풋을 두가지 정해서 쓰고 5틱 주기로 1~5 사이의 시계신호를 출력한다


일반모든품질신호 16, 고급모든품질신호 8, 이런식으로 이전품질 입력을 계속 반토막내고 여기에 >> 시계 연산을 수행함


그래서 출력은 다음과 같음


시계 = 1 : 일반 16, 고급 8, 희귀 4, 특급 2, 전설 1

시계 = 2 : 일반 8, 고급 4, 희귀 2, 특급 1

시계 = 3 : 일반 4, 고급 2, 희귀 1

시계 = 4 : 일반 2, 고급 1

시계 = 5 : 일반 1


선택선별에 여러 품질이 함께 입력되는데 이 경우에는 높은 품질일수록 우선순위를 가진다는 특징을 사용함


내가 만든거는 일반 -> 고급 -> 희귀 이런식으로 품질이 차례대로 올라가는 방식인데 이거는 특성상 전설부터 하나씩 내려가는 식으로 순서가 반대가 될 수밖에 없고



그리고 이 모든 연산은 모든품질신호 뿐만아니라 품질신호들에도 같이 진행되는데 여기에 각각 = (-16 OR -512) 조건을 걸어서 아까 말했던 2틱 밀린 신호를 생성한다




이제 내꺼



산술연산쪽은 뭐 심플하다.



비트연산을 할게 아니라서 그냥 품질Q신호 각각 1, 2, 3, 4, 5개씩이랑 품질녹색신호를 3, 4, 5, 1, 2개씩 넣는다


녹색신호 값이 3에서부터 시작하는 이유는 설명 안해도 알겠지?


그리고 클락은 산술연산 모듈로를 쓰고 5틱 주기로 1~5 사이의 체크신호를 출력한다



클락의 값이랑 산술연산 출력이 다같이 위의 수량비교로 들어가는데 조건을 각각 = (체크 OR 6) 로 해뒀음


체크가 1에서 5까지 올라가면서 품질Q신호가 나가면서 품질녹색신호도 2틱 뒤에서 따라가고, 원하는 아이템신호(이 경우에는 빨칩)는 항상 하나가 나오게 된다


위 회로의 모든품질신호가 내 Q신호에 대응하고 품질신호는 내 녹색신호에 대응함



이제 선만 잘 이어주면 끝


닉시튜브 설정은 품질녹색신호들로 해두면 된다


선택선별에 여러 품질이 같이 들어갈일이 없어서 순서가 강제되지도 않고 리프레시주기도 5틱 그대로라 12fps로 작동함







---문자열---


0eNrNV21u2zAMvYuA/RmUYf5sY6C7w34XheHYTCPUljxZbpcVPsBusbPtJKNkO3ESJ7Hcbtg/RgofyfckUn4lq7yGUjKuSPRKWCp4RaL7V1KxR57keo0nBZCIZJCyDOQiFcWK8UQJSRpKGM/gO4mcho64JJKpTQGKpeNebvNACXDFFIM2qvmxjXldrEAiLL0QnZJSVOgquA6p4UJKtiQKPgUYImMS0nbTpwTLUlLk8Qo2yTNDZ/ToIGPcywxMpVeHvzChNZOViveVqW2p03lmUtW4ssuv/ccCknSjC6xA40z3SzeQPmlHrK9MpKkvIndE0zozBa2kSrSs4Sks8i5qVdbqWOzJ4OUWiau5itdSFDHjiEWidZJX0Dw0jc77SEt3jwU5SiMmielPFFOUgOWZf5BvmDlGXiiZ8GoNGrwNGXc7bc590UrWQHunuBK1TGE63V81Hb1zBpXSBWEetoKNUebRyzfplLRbqxuwRz26BP/o1OP5TJ8WFfsB2nso4UfSH1D7LIbJxxzUi5BPpioJWXdEKXmUALzVvhnl3rdrPbdWp/Vvtp6Dq/6FzOFjbnc41PMkVHvRukhtqzjTK4Idct/FLrOPvBv+w4n8V+1+dWhjqf0406zlCuTxapeV6SZScH0dmUxrpsiuCeA2F7Iw9By1Xb1Qm46MddMdrnsu2qShYRXYOQx7tbfNBvcswWuOqAVKdh7eHcD7lvAykXAB2htAB5bQULL0ArQ/gA4toXN4BJ4lcnsBPxjgO9clbW+flaxDchxvRoQJ2g5ZcvwZMa4IfMBSMAP/isrDo++EM/CnSI3P5TP9MrR+KIRW/fK9Hgq7Z273Uti/UYPD+f9hxvzvwEcJupkzzcP/bZrfzZnmPQbEXciEZ2/7rhhk9Pvnr6s5jYz98Zze+lEy+cGBgV5QVR3m3qEODanzQNHyqNtZvrbRctHyjeVRs2osl950ax5aei3YoYTG0ms3aOldjMYUFJjv/lObkmcc9+ZQBaG79JfL4NbxlsvPftP8AUOvTIM=