Download Visual Studio Code - Mac, Linux, Windows

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

위 사이트에서 download하고

압축해제 후 사용가능하다.

Linux에서는 반드시 한번은 root 권한이 필요하다.

chrome-sandbox가 root 권한으로 실행권한을 설정하지 않으면 실행이 불가능하다.

'etc' 카테고리의 다른 글

Function and Task dumping to FSDB  (0) 2023.06.08
AMBA protocol의 종류  (0) 2023.06.07
구구단-C  (0) 2023.06.04
프로그램의 메모리 관리 ( Heap, Stack, Bss, Data )  (0) 2023.06.03
move git repository with history (without gerrit)  (0) 2022.11.08

Question: How can I dump both tasks and functions together when dumping to FSDB?

Answer: By default, they are not dumped due to speed considerations. To enable it, follow one of these four methods:

  1. Set the environmental variable FSDB_FUNCTIONS.
  2. Use the runtime option: +fsdb+functions.
  3. Use the task: $fsdbDumpvars("+functions").
  4. Use the Tcl command: fsdbDumpvars +functions.

'etc' 카테고리의 다른 글

Visual Studio Portable ( User : not root )  (0) 2023.06.19
AMBA protocol의 종류  (0) 2023.06.07
구구단-C  (0) 2023.06.04
프로그램의 메모리 관리 ( Heap, Stack, Bss, Data )  (0) 2023.06.03
move git repository with history (without gerrit)  (0) 2022.11.08

ARM의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜은 마이크로컨트롤러와 마이크로프로세서 내의 인터컨넥트(Interconnect) 인터페이스를 위한 표준입니다. 크게 세 가지 메인 버스 프로토콜로 나뉘는데, 이는 APB, AHB, 그리고 AXI입니다.

(** 필자의 의견상 trasaction mechanism으로 보았을 때에, 가장 큰 차이를 보이고 있어서 3종류만 다룹니다. **)

 

APB (Advanced Peripheral Bus)

APB는 단순하고 저전력의 주변 장치를 위한 인터페이스로, 시스템 내에서 성능을 크게 떨어뜨리지 않는 장치에 사용됩니다. APB는 소규모 저속 퍼리페랄이나 마이크로컨트롤러에 적합하며, 주로 저속 입출력 장치를 연결하는 데에 사용됩니다.

 

AHB (Advanced High-performance Bus)

AHB는 고성능 모듈들을 위한 인터페이스로, 높은 대역폭의 데이터 전송이 필요한 경우에 주로 사용됩니다.

"AHB는 프로세서 코어, DMA 컨트롤러, 고속 퍼리페랄 장치 등 고성능 모듈 간의 데이터 전송에 적합합니다. AHB는 높은 클럭 속도와 더 큰 데이터 단위의 전송을 통해 성능을 향상시킵니다." 라고 예전에는 그랬으나, 미세 공정을 통해 클럭 속도를 올리려고 하지만, pipeline 구조로 인해서 timing slice를 추가하기가 어려운 구조입니다.

HREADY signal이 slave입장에서는 input / output을 모두 봐야하고, master 입장에서는 input만 존재하면 됩니다. 이로 인해 착각하기가 쉬운 protocol입니다.

 

AXI (Advanced eXtensible Interface)

AXI는 가장 높은 성능의 모듈을 위한 인터페이스로, AMBA 3와 AMBA 4 사양에 속해 있습니다. AXI는 분리된 주소/제어와 데이터 단계, 버스에서 동시에 여러 outstanding transactions, 버스트 기반의 트랜잭션 등을 지원함으로써 더 높은 시스템 성능을 제공합니다. 이러한 특징들로 인해 AXI는 고성능, 고속 동기식 인터페이스에서 요구되는 기능들을 제공합니다.

높은 클럭 사용을 위해 register slice가 추가가 되고 이로 인해, latency는 증가하지만, throughput를 증가시키기 위한 protocol이라고 볼 수 있을 것 같습니다.

Outstanding을 통해 다음에 준비가 되어야할 data가 무엇인지 미리 미리 요청할 수 있고, 대응할 수 있게 됩니다.

 

 

이 세 가지 버스 프로토콜은 서로 다른 장치와 시나리오에 맞게 최적화되어 있습니다. 따라서, 시스템 디자인 시에는 해당 시스템의 요구 사항과 기능을 충족시킬 수 있는 가장 적절한 프로토콜을 선택해야 합니다.

#include <stdio.h>

int main() {
    int i, j;

    for(i=1; i<=9; i++) {
        for(j=1; j<=9; j++) {
            printf("%d * %d = %d\n", i, j, i*j);
        }
        printf("\n");
    }
    
    return 0;
}
  • #include <stdio.h>: 이 부분은 표준 입출력 라이브러리를 포함시킵니다. 이 라이브러리는 printf와 같은 기본적인 입출력 함수를 사용하기 위해 필요합니다.
  • int main(): 이 부분은 프로그램의 시작점을 나타내는 메인 함수를 정의합니다. C 프로그램은 항상 main 함수에서 시작하여 main 함수에서 종료됩니다.
  • int i, j;: 이 부분은 두 개의 정수형 변수 i와 j를 선언합니다. 이 변수들은 아래의 for 루프에서 사용됩니다.
  • for(i=1; i<=9; i++): 이 부분은 외부 for 루프를 정의합니다. 이 루프는 1부터 9까지 i의 값을 변경하며 반복됩니다.
  • for(j=1; j<=9; j++): 이 부분은 내부 for 루프를 정의합니다. 이 루프는 1부터 9까지 j의 값을 변경하며 반복됩니다.
  • printf("%d * %d = %d\n", i, j, i*j);: 이 부분은 현재의 i와 j 값, 그리고 그들의 곱을 화면에 출력합니다.
  • printf("\n");: 이 부분은 외부 for 루프의 각 반복 사이에 빈 줄을 출력하여 구구단의 각 단을 구분합니다.
  • return 0;: main 함수가 성공적으로 종료되었음을 운영 체제에 알리기 위해 0을 반환합니다. C 언어에서는 main 함수의 반환 값이 프로그램의 종료 코드를 나타내며, 0은 성공을 의미합니다.

이렇게 간단한 구조를 가진 이 프로그램은 이중 for 루프를 활용하여 구구단을 출력하는 기본적인 로직을 보여줍니다.

'etc' 카테고리의 다른 글

Function and Task dumping to FSDB  (0) 2023.06.08
AMBA protocol의 종류  (0) 2023.06.07
프로그램의 메모리 관리 ( Heap, Stack, Bss, Data )  (0) 2023.06.03
move git repository with history (without gerrit)  (0) 2022.11.08
ssh autologin fail  (0) 2022.09.24

+ Recent posts