Programming/Verilog2018. 1. 19. 08:46

베릴로그 프리젠테이션 파일 보다 신기한거 발견


concatenation operator는 말그대로 합체! 하는 연산자 인데

일반적인 프로그래밍 언어라면 불가능하지만

하드웨어 배선으로는 너무나 쉬운 데이터끼리 붙이는 연산자이다.

가장 쉬운 활용예로는 Adder에서 Carry bit


r_VAL_1을 MSB 쪽으로 r_VAL_2를 LSB 쪽으로 붙여서 01111100 으로 만드는 연산자이다.

단, 부족한(?) 선은 0으로 대체 하는 듯

근데.. 이거 몇개 까지 붙일 수 있을지 궁금하네?

reg [3:0]  r_VAL_1 = 4'b0111;

reg [3:0]  r_VAL_2 = 4'b1100;

wire [7:0] w_CAT;


assign w_CAT = {r_VAL_1, r_VAL_2}; 

[링크 : https://www.nandland.com/verilog/examples/example-concatenation-operator.html]


Relication operator는 복제하는 녀석인데

비트 연산으로 이걸 하려면 참 토나오는데,

하드웨어로는 배선을 분기쳐서 이어주면 되니 간편하게 쓸 수 있겠네

문법 자체는 정규표현식 같은 느낌

앞의 숫자 만큼 순서대로 붙인다 011101110111

reg [3:0]  r_VAL_1 = 4'b0111;

{3{r_VAL_1}};


# Replication of 0x7, 3 times is 0x777

[링크 : https://www.nandland.com/verilog/examples/example-replication-operator.html]

'Programming > Verilog' 카테고리의 다른 글

verliog module 선언  (0) 2018.01.25
verilog 모델링 유형  (0) 2018.01.20
verilog unary reduction operator와 bitwise operator  (0) 2018.01.19
베릴로그 순차적 구조적  (2) 2018.01.18
structural vs behavioral verilog  (0) 2018.01.12
Posted by 구차니