본문 바로가기

All Posts79

[Perl] BEGIN Block 목차 BEGIN Block BEGIN 블럭은 해당 블럭의 Parsing이  끝나면 바로 실행됩니다. 파일의 나머지 부분의 Parsing이 채끝나지 않았더라도 실행됩니다. 실행 시간에는 무시됩니다. BEGIN 블럭이 여러개 있다면, compiler가 위에서 아래로 만나는 순서대로 실행합니다. BEGIN문을 조건문 안에 두었더라도 가장 먼저 실행 됩니다. 조건문 내부에 쓰지 않는것이 좋습니다.(조건문 작동 X) Compile 중에 조건에 따라 어떤 작동을 하고 싶다면, BEGIN 블록 내에 조건문을 두면 됩니다.Example12345678910use strict;use warnings; ​ print "This gets printed s.. 2024. 11. 10.
[CAN] Cyclic redundancy check(CRC) 목차CRCCyclic redundancy check입니다. CRC 는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식을 입니다. CAN은 CRC를 사용하는 대표적인 통신입니다. CAN에서 사용하는 CRC를 기준으로 CRC의 계산방법과 개념에 대해 알아보겠습니다.CRC (in CAN) TxCAN에서 사용하는 CRC 다항식입니다. 어렵게 생각할 필요없습니다. +를 or로 생각한다면 이진법으로 나타낸 숫자를 쉽게 이해하실 수 있습니다.위 다항식을 사용하여 어떻게  CRC Sequence를 만들어 내는지 알아봅시다.위와 같은 Data가 있다고 가정합시다. CAN의 Data Frame입니다. 해당 형식은 아래 글에서 정리된 내용을 보실 수 있습니다. .. 2024. 11. 9.
[CAN] Data Frame과 Remote Frame 목차 Controller Area Network(CAN) Controller Area Network(CAN)은 Electronic control units (ECUs)간의 효율적인 통신을 가능하게 하도록 설계된 차량 bus 표준 중 하나 입니다. CAN 통신은 BOSCH에서 1983년부터 개발에 착수해 1986년 미국 미시간주 디트로이트에서 열린 SAE(Society of Automotive Engineers)에서 공식적으로 발표되었다. 최초의 CAN Controller Chip은 인텔과 필립스에 의해 생산되었으며 1987년 시장에 출시되었습니다. 1991년 BOSCH는 CAN 2.0 Spec을 발표하였습니다. CAN 표준ISO 11898 (CAN, CAN-FD, CAN-XL, low/high speed.. 2024. 11. 9.
CSMA/CA + AMP이란? 목차Carrier Sense Multiple Access / Collision Avoidance with Arbitration on Message Priority CAN 통신에 사용되는 방식입니다. 반이중 통신일때 신호간 충돌이 발생했을때 충돌에 대한 대응 방식을 기존 CSMA/CA에 추가한 방식입니다.CSMA/CACarrier Sense : 회선(매체)이 사용되고 있는지에 따라 (전송 여부 식별하여) Multiple Access : 누구든 동시에 접근할 수 있으면서 (우선순위 없이 누구나)Collision Avoidance: 충돌을 피한다. 충돌을 감지하는 것이 쉽지 않거나, 충돌을 감지 후 전달하는 별도의 신호를 전달하는 것이 비효율적일때, CSMA/CA를 사용합니다. 주로 무선에서 사용되는 방식입니.. 2024. 11. 1.
[Verilog Problem] NOR Gate Problem descriptionmodule은 TOP이고 Input inA, inB Output out를 가지고 있습니다.inA와 inB는 NOR Gate를 통해 out으로 나갑니다.Codemodule TOP ( input inA, input inB, output out); assign out=~(inA|inB);endmoduleDescription"|"는 bit, "||"는 논리 연산자 입니다."~|"은 NOR bit 연산자 입니다. 2024. 5. 24.
[Verilog Problem] XNOR Gate Problem descriptionmodule은 TOP이고 Input inA, inB Output out를 가지고 있습니다.inA와 inB는 XNOR Gate를 통해 out으로 나갑니다.Codemodule TOP ( input inA, input inB, output out); assign out=~(inA^inB);//assign out = inA~^inB;endmoduleDescription"^" XOR bit 연산자입니다."~^", "^~" XNOR bit 연산자입니다. 2024. 5. 24.
[Verilog Problem] And gate Problem descriptionmodule은 TOP이고 Input inA, inB Output out를 가지고 있습니다.inA와 inB는 AND Gate를 통해 out으로 나갑니다.Codemodule TOP ( input inA, input inB, output out); assign out=inA&inB;endmoduleDescriptionAND은 "&"로 처리할 수 있습니다."&"는 bit, "&&"는 논리 연산자 입니다.Gate level에서는 cell를 instance해서 사용합니다.연속 할당은 오른쪽을 왼쪽에 연속적으로 할당하므로 RHS의 변경 사항이 LHS에 즉시 표시됩니다.input, output의 wire 혹은 reg를 선언하지 않으면 wire를 기본으로 합니다. 2024. 5. 24.
[Verilog Problem] Inverter (Not gate) Problem descriptionmodule은 TOP이고 Input A, Output B를 가지고 있습니다.A는 B로 invert를 통해 나갑니다.Codemodule TOP ( input A, output B ); assign B=~A;endmoduleDescription"~" 각 비트를 반전(보수를 취함)합니다. "!"의 경우 논리연산자로 신호 및 표현식에 대한 논리적인 부정을 뜻합니다.연속 할당은 오른쪽을 왼쪽에 연속적으로 할당하므로 RHS의 변경 사항이 LHS에 즉시 표시됩니다.input, output의 wire 혹은 reg를 선언하지 않으면 wire를 기본으로 합니다. 2024. 5. 22.
[Verilog Problem] Wire 2 Problem descriptionmodule은 TOP이고 Input A, B Output X, Y, Z를 가지고 있습니다.A -> X, B -> Y, A -> ZCodemodule TOP ( input A, output B ); assign X=A; assign Y=B; assign Z=A; //equivalent //assign {X,Y, Z} = {A, B, A}endmoduleDescription여러개의 assign문이 존재하는 경우 순서는 중요하지 않습니다. 프로그래밍 언어와 다르게 항목에서 다른 항목으로 값을 복사하지 않고, 항목간의 연결을 의미합니다. 다시말해, 와이어 자체를 의미하지 않습니다.input, output의 wire 혹은 reg를 선언하지 않으면 wire를 기본으로 합니다. 2024. 5. 22.
반응형