본문 바로가기

전체 글

[Verilog HDL] random / blocking, non-blocking $random : 32bit signed random value // % value (value 미만의 값 출력) $urandom : 32bit unsigned random value // % value (value 미만의 값 출력) $urandom_range(min_value, max_value) ex) reg [31:0] random always @ (posedge clk or negedge rstb) if(!rstb) random 더보기
[tcl] C언어에서는 argv의 첫번째 원소는 프로그램의 이름이 저장, Tcl 에서는 첫번째 인수가 저장 $argv : 명령행 인수 // list 자체 ex) puts $argv = puts { lists... } $argc : 명령행 인수의 갯수 argv0 : 실행되고 있는 script의 이름 set a 1 proc test {} { global channelid1 a puts $channelid1 "this is example text : nember = $a" } set channelid1 [open TEST.txt w] test close $channelid1 1. a에 대해 변수 선언 2. 프로시져 명령 test → 새로 정의할 프로시져의 이름 {} → 프로시져에게 전달할 파라미터 List { .. } .. 더보기
[linux] 알아두면 좋은 명령어 모음 - 현재 위치에서 diretory 개수 count ls -l | grep ^d | wc -l // grep ^d : 행의 시작 문자가 d로 시작하는 것 ,( 디렉토리는 d로 시작함) - 현재 위치에서 file 개수 count ls -l | grep ^- | wc -l // grep ^- : 행의 시작 문자가 -로 시작하는 것 ,( 파일은 -로 시작함) - 현재 dir의 하위 file 개수 count find . -type f | wc -l - 두 파일의 다른부분을 gvim창에서 보여줌 gvimdiff file1 file2 = gvim -d file1 file2 - 백업 파일 복사하기 cp -rf .snapshot/`tab` ./`name` 기준이 언제까지인지 모르겠음 언제부터 언제까지의 시간인지.. 더보기
[Tcl] tcl 정규표현식 정규 표현식에 사용되는 연산자 메타(Meta) 문자 . : 어떤 글자든지 한 글자와 매칭 ^ : 문자열의 시작 부분을 나타냄 $ : 문자열의 끝 부분을 나타냄 반복 연산자 * : 바로 앞 패턴이 0번 이상 반복 됨 + : 바로 앞 패턴이 1번 이상 반복 됨 ? : 바로 앞 패턴이 나타지 않거나 1번 나타날 수 있음 {m} : 바로 앞 패턴이 m번 반복됨 {m,} : 바로 앞 패턴이 m번 이상 반복됨 {m,n} : 바로 앞 패턴이 m번 이상 n번 이하 반복됨 그룹 () : 패턴의 한 부분을 그룹화, 패턴에 매칭되는 부분을 기억함 열거 및 선택 [] : []안에 열거된 글자 중 하나와 같으면 매칭 된 것으로 봄 [^] : [^와] 사이에 열거된 글자가 아닌 다른 글자이면 매칭 된 것으로 봄 | : | 기호 .. 더보기
[Verilog HDL] 실습2 FSM module traffic_fsm (nRST, CLK, RO, GO, LO, YO); input nRST, CLK; output RO, GO, LO, YO; reg RO, GO, LO, YO; parameter RED = 0; parameter GRN = 1; parameter LEF = 2; parameter YEL = 3; reg state_en; reg [4:0] state_cnt; reg [1:0] CS_state; // current state reg [1:0] NS_state; // next state // state enable counter always@(negedge nRST or posedge CLK) if(!nRST) state_cnt 더보기
[Verilog HDL] shift module shifter1 (A, B, Y); input [7:0] A; input [3:0] B; output [7:0] Y; assign Y = A 더보기
[Tcl] tcl 리스트 / 배열 리스트 추가 - lappend 존재하지 않는 변수가 주어졌을 때는 새로 리스트를 생성하고 이미 존재하는 변수가 주어졌을 때는 리스트를 덧붙임 [ 원본 변수의 값이 변함 ] set a "" // 비어 있음 lappend a 1 2 // 만약, $a로 선언하면 원본이 변하지 않는다. lappend a 3 4 5 set a 리스트 연결 - concat 주어진 argument들을 연결하여 하나의 리스트로 만든다. 원본 변수의 값이 변하지 않음 set a [list 1 2] set b [list 3 4] concat $a $b 리스트 원소 얻기 - llength 주어진 리스트의 원소 갯수를 리턴 llength { 1 2 3 4 } set a [ list a b c ] llength $a - lindex 주어진 리.. 더보기
[Linux] tcl List 리스트 명령어는 원본 변수의 값을 변화 시키는지 아닌지가 핵심 변수의 이름을 Argument로 받는 경우는 원본 변수의 값을 변화시키고 변수의 값을 Argument로 받는 경우엔 원본 변수의 값을 변화시키지 않음 변수 이름 앞에 $가 붙으면 원본이 변하지 않음 - lappend 새로운 변수가 주어지면 새로 리스트를 생성하고 이미 존재하는 변수가 주어지면 리스트의 끝에 덧붙임 , 원본 변수 값 바뀜 $ lappend var 1 2 $ lappend var 3 4 5 $ puts $var result 1 2 3 4 5 - concat 주어진 Argument들을 연결해 하나의 리스트로 만듬 , 원본 변수 값 변하지 않음 $ set a [list 1 2] $ set b [list 3 4] $ set c 5 $ .. 더보기