블로그 이미지
stluck

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
2016. 1. 18. 20:45 Programming/Verilog(A)/SVerilog

수정 前

AND U1 ( .A( n1 ), .B( n4 ), .Z( n7 ));

AND U2 ( .A( n2 ), .B( n5 ), .Z( n8 ));

AND U3 ( .A( n3 ), .B( n6 ), .Z( n9 ));


수정 後

AND U1 ( .A(  ), .B(  ), .Z(  ));

AND U2 ( .A(  ), .B(  ), .Z(  ));

AND U3 ( .A(  ), .B(  ), .Z(  ));


정규식

:%s/( *[a-zA-Z0-9_\[\]]* )/( ) /g

posted by stluck
ncvlog를 이용한  Vim에서 컴파일 에러 체크!

Vim 환경 설정 파일의  efm 변수를 다음과 같이 설정한다.

set efm=ncvlog:\ *E\\,%.%#\ (%f\\,%l\|%n):\ %m

사용자 삽입 이미지


posted by stluck
2009. 6. 28. 15:05 Programming/Verilog(A)/SVerilog

DC 에서 assign 문이 나오는 경우는 크게 두가지 1.feedthroughs 2. three state 입니다.
우선 three state는
verilogout_no_tri = true
verilogout_equation = false 선언하시면 되구요(.synopsys_dc.setup)

feedthroughs는 compile전에 전체 design에 set_fix_multiple_port_nets -all -buffer_constants 를 해주시면 됩니다. top에서 하시면 top만 해결되구요 전체 sub까지 해주셔야 합니다.

TCL 예
========================================================
foreach_in_collection design [ get_designs "*" ] {
current_design $design
set_fix_multiple_port_nets -all -buffer_constants
}
current_design TOP
set_fix_multiple_port_nets -all -buffer_constants

========================================================
출처 : http://asicfpga.com/site_upgrade/asicfpga/bbs/viewbody.php?code=qna_asic_etc&page=5&number=323&keyfield=subject&key=c


posted by stluck
2009. 6. 18. 12:59 Programming/Verilog(A)/SVerilog


\(\(input\|output\)\s*[\[\]0-9 :]*\s*\)\(a-zA-Z0-9_,]]\)*




posted by stluck
2009. 6. 17. 00:50 Programming/Verilog(A)/SVerilog
 ts_top_tx_mpw fts_top_tx_mpw(
    .clk    :    in std_logic;
    .reset    :    in std_logic;
   
    .c_reset : in std_logic;
    .c_reset_out : out std_logic;

    .da_out_i : out std_logic_vector(7 downto 0);
    .da_out_q : out std_logic_vector(7 downto 0);
    .dac_clk_i : out std_logic;
    .dac_clk_q : out std_logic;
    .wrt_out_i : out std_logic;
    .wrt_out_q : out std_logic;

위와 같은 VHDL 코드가 있을 경우,, (Port Instance를 쉽게하기위하여 .을 미리 붙여준다. 물론 Ctrl+q . [ESC] 를 이용하여,, 또는 : 앞의 포트이름만 선택해서 .을 붙여줘도 좋을듯하다.)


%s/\.\(\([a-zA-Z_0-9]\)*\)\s*:\s*\([a-zA-Z0-9_" "();]\)*/\.\1(p_\1),/g

하면,,

ts_top_tx_mpw fts_top_tx_mpw(
    .clk(clk),
    .reset(reset),
   
    .c_reset(c_reset),
    .c_reset_out(c_reset_out),

    .da_out_i(da_out_i),
    .da_out_q(da_out_q),
    .dac_clk_i(dac_clk_i),
    .dac_clk_q(dac_clk_q),
    .wrt_out_i(wrt_out_i),
    .wrt_out_q(wrt_out_q),

로 바꿔준다.  ^_^ ㅋㅋㅋ


7,39s/\.\(\([a-zA-Z_0-9]\)*\)\s*:\s*\(\([a-zA-Z0-9_" "();]\)*\)/\.\1(tx_\1),\t\t\/\/\3/g

ts_top_tx_mpw fts_top_tx_mpw(
    .clk(tx_clk),        //in std_logic;
    .reset(tx_reset),        //in std_logic;
   
    .c_reset(tx_c_reset),        //in std_logic;
    .c_reset_out(tx_c_reset_out),        //out std_logic;
---------------------------------------
    .da_out_i(tx_da_out_i),        //out std_logic_vector(7 downto 0);
    .da_out_q(tx_da_out_q),        //out std_logic_vector(7 downto 0);
    .dac_clk_i(tx_dac_clk_i),        //out std_logic;
    .dac_clk_q(tx_dac_clk_q),        //out std_logic;
    .wrt_out_i(tx_wrt_out_i),        //out std_logic;
    .wrt_out_q(tx_wrt_out_q),        //out std_logic;

posted by stluck
2009. 5. 12. 12:53 Programming/Verilog(A)/SVerilog
chi = mem[raddr][bitplane];   synthesis X

wire [bitwidth:0] chi_t;            synthesis O
assign chi_t = mem[raddr];
assign chi = chi_t[bitplane];

posted by stluck
2009. 4. 21. 01:57 Programming/Verilog(A)/SVerilog

vim 계열 에디터에서 Coding하고 바로 컴파일하여 에러의 유무 확인하고 에러가 발생했을경우 직접 이동이 가능하도록 vim 설정하기.

//=============================================//

autocmd!
autocmd BufRead *.v setlocal makeprg=/TOOLS/Xilinx/10.1/ISE/bin/lin/vlogcomp\ %
// make가 사용할 컴파일러를 지정. ISE에 있는 verilog 컴파일러를 사용
//뒤에 \ % 는 빼먹지 말것.

map <F5> :make<CR>:copen 8<CR>
// F5키에 맵핑(물론 변경가능)
 // make를 이용해서 컴파일하고 에러난 라인을 찾기위해 copen

set efm=ERROR:HDLCompiler:%n\ -\ \"%f\"\ Line\ %l%.\ %m
// make에서 에러난 라인 넘버를 얻기 위한 변수. man efm (쉘 변수이니깐) !

//================================================



posted by stluck