Programming/VHDL VERILOG2018.01.09 20:52

verilog 언어로 된 모듈을 여러개 어떻게 생성하나

일일이 이름 바꾸어서 해야 하나 고민을 했는데

동일 이름으로 생성도 가능하고

벡터로 모듈 생성이 가능하다고 한다

(그러니까 SHA256 모듈을 벡터로 생성하는 꽁수를!)


Example 4


module my_module (a, b, c);

input a, b;

output c;

  assign c = a & b ;

endmodule

 

module top (a, b, c) ;

input [3:0] a, b;

output [3:0] c;

  my_module inst [3:0] (a, b, c);

endmodule 

[링크 : http://verilog.renerta.com/mobile/source/vrg00027.htm]


genvar k;

generate for (k = 1; k <`wordsize - 1; k = k + 1)

 begin

    I2S_dff instance (.d(sd), .q(q_out[i]), .r(wsp), .en(dec_out[i]), .sck(clk));

    datareg_in = |q_out;

 end

endgenerate 

[링크 : https://electronics.stackexchange.com/.../how-to-use-generate-for-multiple-module-instantiation-in-verilog]


From Verilog-95 you can have a vector of instances:

d_flipflop ff[7:0] (A, Q, reset clk); 

[링크 : https://stackoverflow.com/questions/21615210/instantiating-multiple-modules-in-verilog]

'Programming > VHDL VERILOG' 카테고리의 다른 글

베릴로그 순차적 구조적  (2) 2018.01.18
structural vs behavioral verilog  (0) 2018.01.12
verilog vector instance  (0) 2018.01.09
verilog always  (0) 2018.01.01
verilig 2001 ** 연산자  (0) 2018.01.01
verilog 코드 분석  (0) 2018.01.01
Posted by 구차니

댓글을 달아 주세요

eclipse에서 하려니 먼가 잘 안되고

(한줄에 여러개 있는게 되는게 있고 안되는게 있고 그러네..)

jindent 라는 플러그인 하니 라인길이 제한이 걸려있어서 유료 사야하고


notepad++에는

tidy 플러그인 깔아야 한다는데, 플러그인 매니저가 이상해져서 깔기 빡세고


웹에서 하는 것도 있지만

외부로 코드 유출되는거 아닌가 걱정되서 쓰기 그렇고..

그리고 파일단위가 아닌 복/붙해야 하니 귀찮...

[링크 : https://codebeautify.org/c-formatter-beautifier]


리눅스에서 툴을 이용하는것들 발견.. 해봐야 할 듯

[링크 : https://askubuntu.com/questions/448497/source-code-formatter-indenter]


clang-format 쓸만하긴 한데 하위 디렉토리 자동으로 뒤져서 하는건 없다고..

[링크 : https://stackoverflow.com/questions/28896909/how-to-call-clang-format-over-a-cpp-project-folder]

Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2018.01.01 09:51

always @ (posedge

이런식으로 많이 쓰이는데

always 자체는 패러럴 구문이지만 @와 결합해서 시퀀셜 하게 쓰이는 듯 하고,

@는 event에 대한 기술이다.


3. PARALLEL STATEMENTS 

always sequential_statement


5. SEQUENTIAL STATEMENTS

@ (event [{or event}]) sequential_statement

[링크 : http://www.ece.uvic.ca/~fayez/courses/ceng465/vlogref.pdf]


다만 =는 블럭킹(sequential, block) 으로

<=는 넌블러킹(parallel, non-blocking)으로 작동하게 되는데

[링크 : https://courses.cs.washington.edu/courses/cse467/03wi/Verilog3.pdf]

[링크 : https://class.ee.washington.edu/371/peckol/doc/Always@.pdf]


always 내에서 블럭킹으로 할 경우 race condition의 위험이 있다고 한다.

[링크 : https://www.nandland.com/vhdl/tutorials/tutorial-process-part1.html]

[링크 : http://aboutmadlife.blogspot.kr/2015/01/verilog-blocking-non-blocking.html]

'Programming > VHDL VERILOG' 카테고리의 다른 글

structural vs behavioral verilog  (0) 2018.01.12
verilog vector instance  (0) 2018.01.09
verilog always  (0) 2018.01.01
verilig 2001 ** 연산자  (0) 2018.01.01
verilog 코드 분석  (0) 2018.01.01
de0-nano 기본 예제 올려봄  (0) 2017.12.29
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2018.01.01 09:37

VHDL 에서는 기본으로 있었던거 같은데

** 연산자는 지수승에 대한(밑이 2) 연산자로

Verilog 2001 부터 추가되었다고 한다.

지금에 와서는 거의 모든 개발 툴에서 2001을 지원하겠지?


[링크 : http://www.asic-world.com/verilog/verilog2k1.html]

'Programming > VHDL VERILOG' 카테고리의 다른 글

verilog vector instance  (0) 2018.01.09
verilog always  (0) 2018.01.01
verilig 2001 ** 연산자  (0) 2018.01.01
verilog 코드 분석  (0) 2018.01.01
de0-nano 기본 예제 올려봄  (0) 2017.12.29
DE0-nano 기본 프로그램 분석  (0) 2017.12.28
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2018.01.01 08:24

de0-nano 가속도 센서 예제 

예제가 죄다 verilog네 -_- VHDL을 공부하려는 나의 계획은 이렇게 날아 가는건가!!!


// -------------------------------------------------------------------- // Copyright (c) 2011 by Terasic Technologies Inc. // -------------------------------------------------------------------- // // Permission: // // Terasic grants permission to use and modify this code for use // in synthesis for all Terasic Development Boards and Altera Development // Kits made by Terasic. Other use of this code, including the selling // ,duplication, or modification of any portion is strictly prohibited. // // Disclaimer: // // This VHDL/Verilog or C/C++ source code is intended as a design reference // which illustrates how these types of functions can be implemented. // It is the user's responsibility to verify their design for // consistency and functionality through the use of formal // verification methods. Terasic provides no warranty regarding the use // or functionality of this code. // // -------------------------------------------------------------------- // // Terasic Technologies Inc // 356 Fu-Shin E. Rd Sec. 1. JhuBei City, // HsinChu County, Taiwan // 302 // // web: http://www.terasic.com/ // email: support@terasic.com // // -------------------------------------------------------------------- // // Major Functions: G Sensor utilization // // -------------------------------------------------------------------- // // Revision History : // -------------------------------------------------------------------- // Ver :| Author :| Mod. Date :| Changes Made: // V1.0 :| Rosaline Lin :| 02/16/2011 :| Initial Revision // -------------------------------------------------------------------- //======================================================= // This code is generated by Terasic System Builder //======================================================= module DE0_NANO_G_Sensor( //////////// CLOCK ////////// CLOCK_50, //////////// LED ////////// LED, //////////// KEY ////////// KEY, //////////// Accelerometer and EEPROM ////////// G_SENSOR_CS_N, G_SENSOR_INT, I2C_SCLK, I2C_SDAT ); //======================================================= // PARAMETER declarations //======================================================= //======================================================= // PORT declarations //======================================================= //////////// CLOCK ////////// input CLOCK_50; //////////// LED ////////// output [7:0] LED; //////////// KEY ////////// input [1:0] KEY; //////////// Accelerometer and EEPROM ////////// output G_SENSOR_CS_N; input G_SENSOR_INT; output I2C_SCLK; inout I2C_SDAT; //======================================================= // REG/WIRE declarations //======================================================= wire dly_rst; wire spi_clk, spi_clk_out; wire [15:0] data_x; //======================================================= // Structural coding //======================================================= // Reset reset_delay u_reset_delay ( .iRSTN(KEY[0]), .iCLK(CLOCK_50), .oRST(dly_rst)); // PLL spipll u_spipll ( .areset(dly_rst), .inclk0(CLOCK_50), .c0(spi_clk), // 2MHz .c1(spi_clk_out)); // 2MHz phase shift // Initial Setting and Data Read Back spi_ee_config u_spi_ee_config ( .iRSTN(!dly_rst), .iSPI_CLK(spi_clk), .iSPI_CLK_OUT(spi_clk_out), .iG_INT2(G_SENSOR_INT), .oDATA_L(data_x[7:0]), .oDATA_H(data_x[15:8]), .SPI_SDIO(I2C_SDAT), .oSPI_CSN(G_SENSOR_CS_N), .oSPI_CLK(I2C_SCLK)); // LED led_driver u_led_driver ( .iRSTN(!dly_rst), .iCLK(CLOCK_50), .iDIG(data_x[9:0]), .iG_INT2(G_SENSOR_INT), .oLED(LED));  

endmodule 

D:\de-nano\DE0-Nano_v.1.2.3_SystemCD\Demonstration\DE0_NANO_GSensor\DE0_NANO_G_Sensor.v

D:\de-nano\DE0-Nano_v.1.2.3_SystemCD\Demonstration\DE0_NANO_GSensor\v\led_driver.v


module module_name(module_in_outs);

// 일종의 입출력 변수들 정의(타입은 아직 정의하지 않고 이름만 정의


    // module의 핀(?)에 대한 입출력 방향과 타입을 정의

    input pin_name;

    output pin_name2;

    inout pin_name3;


    // 방향 지시자 없는 내부변수 선언

    wire pin_nam4;

    reg [1:0] count;


    // 행위를 정의함 - structural coding 라고 써있음

    assign out = in;


    // 조사필요

   always@(posedge iCLK or negedge iRSTN)

   submodule sub_module_name

   (

      .sub_module_pin(main_module_pin),

   );

// module의 끝

endmodule 


wire랑 reg도 변수 타입이고 그 외에는 int, real 등의 타입도 있다고..

[링크 : http://wiki.vctec.co.kr/devboard/fpga/spartan-3a-fpga-gaebalbodeu--elbert/module]

'Programming > VHDL VERILOG' 카테고리의 다른 글

verilog always  (0) 2018.01.01
verilig 2001 ** 연산자  (0) 2018.01.01
verilog 코드 분석  (0) 2018.01.01
de0-nano 기본 예제 올려봄  (0) 2017.12.29
DE0-nano 기본 프로그램 분석  (0) 2017.12.28
de0-nano LED 예제  (0) 2017.12.27
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2017.12.29 08:41

설치해 놓은 quartus 처음 실행하니 이런거 뜨네?

일단은 걍 실행


DE0_NANO_default

KEY0를 누르면 타이밍에 따라 오작동 하는 것으로 보이는 경우가 있어서  살짝 수정

(오른쪽 LED가 밝아진 후에 KEY0를 누르면 LED0 만 꺼지고 나머지는 유지됨)


그나저나 빌드는 한참 걸리는건 매한가지구만 ㅠㅠ


메뉴 뒤지다 보니 보이는 Pin Planner.

이것도 나중에는 하나하나 해봐야 하는거구만 ㅠㅠ


작성한 프로그램을 업로드 하는 Programmer

Hardware Setup에서 설치된 JTAG 골라주고 Start 누르면 끝!


DE0_NANO_GSensor

얘는 IP 사용중인게 있는지 업데이트 하라고 한다.

Upgrade in Editor가 활성화 되길래 눌렀는데


이거 머야.. 무서워 -_ㅠ cancel 누르고 후퇴!


Perform Automatic upgrade가 최고야 ㅠㅠ


먼가 소스가 보이네.. 일단 빌드하고


막 누르다 보니 vivado에서 보던 신기한거 발견

확대하면 먼가 다른 신기한게 막 나오는데,

자일링스 것 처럼 먼가 자세하게 칩 내부 까지 보이는건 아닌거 같기도 하고..


SPI COUNT~3 에 대한 부분이 여기 있다~ 라는거 정도인가?

schematic이 같이 나와서 먼가 있어 보긴 하네


my_first_fpga

아까 캡쳐 못했던 IP upgrade recommended 메시지 찰칵!


auto upgrade가 하나만 뜨네.. 결국에는 Upgrade in Editor를 해야 하는건가 ㅠㅠ



아 몰라.. 그냥 무조건 Next ㅋㅋ





오.. VHDL이나 Verilog가 아니라 그냥 schematic이 나오네?


빌드해서 돌려보니 KEY0 누르면 빠르게 카운터가 증가함

'Programming > VHDL VERILOG' 카테고리의 다른 글

verilig 2001 ** 연산자  (0) 2018.01.01
verilog 코드 분석  (0) 2018.01.01
de0-nano 기본 예제 올려봄  (0) 2017.12.29
DE0-nano 기본 프로그램 분석  (0) 2017.12.28
de0-nano LED 예제  (0) 2017.12.27
vhdl / verilog 문법관련 링크  (0) 2017.12.26
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2017.12.28 13:00

큭... VHDL 공부 하는데 Verilog 라니.. 비겁하다!!!


// ============================================================================ // Copyright (c) 2011 by Terasic Technologies Inc. // ============================================================================ // // Permission: // // Terasic grants permission to use and modify this code for use // in synthesis for all Terasic Development Boards and Altera Development // Kits made by Terasic. Other use of this code, including the selling // ,duplication, or modification of any portion is strictly prohibited. // // Disclaimer: // // This VHDL/Verilog or C/C++ source code is intended as a design reference // which illustrates how these types of functions can be implemented. // It is the user's responsibility to verify their design for // consistency and functionality through the use of formal // verification methods. Terasic provides no warranty regarding the use // or functionality of this code. // // ============================================================================ // // Terasic Technologies Inc // 356 Fu-Shin E. Rd Sec. 1. JhuBei City, // HsinChu County, Taiwan // 302 // // web: http://www.terasic.com/ // email: support@terasic.com // // ============================================================================ // Major Functions/Design Description: // // Please refer to DE0_Nano_User_manual.pdf in DE0_Nano system CD. // // ============================================================================ // Revision History: // ============================================================================ // Ver.: |Author: |Mod. Date: |Changes Made: // V1.0 |EricChen |02/01/2011 | // ============================================================================ //======================================================= // This code is generated by Terasic System Builder //======================================================= module DE0_NANO( //////////// CLOCK ////////// CLOCK_50, //////////// LED ////////// LED, //////////// KEY ////////// KEY, //////////// SW ////////// SW, //////////// SDRAM ////////// DRAM_ADDR, DRAM_BA, DRAM_CAS_N, DRAM_CKE, DRAM_CLK, DRAM_CS_N, DRAM_DQ, DRAM_DQM, DRAM_RAS_N, DRAM_WE_N, //////////// EPCS ////////// EPCS_ASDO, EPCS_DATA0, EPCS_DCLK, EPCS_NCSO, //////////// Accelerometer and EEPROM ////////// G_SENSOR_CS_N, G_SENSOR_INT, I2C_SCLK, I2C_SDAT, //////////// ADC ////////// ADC_CS_N, ADC_SADDR, ADC_SCLK, ADC_SDAT, //////////// 2x13 GPIO Header ////////// GPIO_2, GPIO_2_IN, //////////// GPIO_0, GPIO_0 connect to GPIO Default ////////// GPIO_0_D, GPIO_0_IN, //////////// GPIO_0, GPIO_1 connect to GPIO Default ////////// GPIO_1_D, GPIO_1_IN, ); //======================================================= // PARAMETER declarations //======================================================= //======================================================= // PORT declarations //======================================================= //////////// CLOCK ////////// input CLOCK_50; //////////// LED ////////// output [7:0] LED; //////////// KEY ////////// input [1:0] KEY; //////////// SW ////////// input [3:0] SW; //////////// SDRAM ////////// output [12:0] DRAM_ADDR; output [1:0] DRAM_BA; output DRAM_CAS_N; output DRAM_CKE; output DRAM_CLK; output DRAM_CS_N; inout [15:0] DRAM_DQ; output [1:0] DRAM_DQM; output DRAM_RAS_N; output DRAM_WE_N; //////////// EPCS ////////// output EPCS_ASDO; input EPCS_DATA0; output EPCS_DCLK; output EPCS_NCSO; //////////// Accelerometer and EEPROM ////////// output G_SENSOR_CS_N; input G_SENSOR_INT; output I2C_SCLK; inout I2C_SDAT; //////////// ADC ////////// output ADC_CS_N; output ADC_SADDR; output ADC_SCLK; input ADC_SDAT; //////////// 2x13 GPIO Header ////////// inout [12:0] GPIO_2; input [2:0] GPIO_2_IN; //////////// GPIO_0, GPIO_0 connect to GPIO Default ////////// inout [33:0] GPIO_0_D; input [1:0] GPIO_0_IN; //////////// GPIO_0, GPIO_1 connect to GPIO Default ////////// inout [33:0] GPIO_1_D; input [1:0] GPIO_1_IN; //======================================================= // REG/WIRE declarations //======================================================= wire reset_n; reg [26:0] counter; reg [5:0] PWM_adj; reg [6:0] PWM_width; reg [7:0] LED; //======================================================= // Structural coding //======================================================= assign reset_n = KEY[0]; always @(posedge CLOCK_50 or negedge reset_n) begin if(!reset_n) begin counter <= 0; LED[0] <= 0; end else begin counter <= counter+1; PWM_width <= PWM_width[5:0]+ PWM_adj; if(counter[26]) begin PWM_adj <= counter[25:20]; end else begin PWM_adj <= ~ counter[25:20]; end LED[0] <= ~PWM_width[6]; LED[1] <= ~PWM_width[6]; LED[2] <= ~PWM_width[6]; LED[3] <= ~PWM_width[6]; LED[4] <= PWM_width[6]; LED[5] <= PWM_width[6]; LED[6] <= PWM_width[6]; LED[7] <= PWM_width[6]; end end endmodule 


일단.. 눈에 들어오는 키워드는

begin - end 구조 동일해 보이고..

postedge CLOCK_50 으로 50Mhz OSC입력을 positive edge 니까.. rising edge일려나?

negedge reset_n 이니까.. KEY_0를 RESET_N으로 맵핑했고(작동이 그러니까..)

그게 falling edge로 잡히면 트리거 되서 작동하는데

!reset_n이면 카운터와 LED[0]을 0으로 각각 셋팅(LED 0번만 끄고 counter를 0으로 설정)

reset_n이면

카운터(27비트 = 134,217,728)를 증가하면서 PWM_Width 값을 더해주는데

카운터의 MSB가 1이 되면 (67,108,864 초과) counter의 25~20번째 비트를 복사하고

0이면 counter의 25~20번째 비트를 negate 시켜서 (그러니까 감소) 복사한다.

그래서 LED[0:7] 에 PWM_width를 입력해 주는데

가장 상위 비트만 출력함으로서

0과 1을 50Mhz에 연동해서 빠르게 on/off 함으로서 PWM을 구현하게 되는건가?



+

posedge means the transition from 0 to 1

negedge the oposit transition from 1 to 0

그러니까.. posedge는 rising edge고, negedge는 falling edge가 맞겠네?

[링크 : http://www.alteraforum.com/forum/showthread.php?t=19611]

'Programming > VHDL VERILOG' 카테고리의 다른 글

verilog 코드 분석  (0) 2018.01.01
de0-nano 기본 예제 올려봄  (0) 2017.12.29
DE0-nano 기본 프로그램 분석  (0) 2017.12.28
de0-nano LED 예제  (0) 2017.12.27
vhdl / verilog 문법관련 링크  (0) 2017.12.26
xilinx vivado HLx / HLS  (0) 2017.12.24
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2017.12.27 13:48

카페자료 퍼옴..

그나저나 이거 언제 해보려나..


VHDL 코드나 일단 한줄한줄 분석해보고

글 쓰신분에게 코드 복사해가도 되나 물어 봐야겠다..


[링크 : http://cafe.naver.com/alteratown/6574]



syntax highlight(notepad++) 하니 굳이 주석 안달아도 될 느낌?

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; use ieee.numeric_std.all; entity led_top is Port ( p_clk_50Mhz : in std_logic; p_button : in std_logic_vector( 1 downto 0 ); p_led_out : out std_logic ); end led_top; architecture Behavioral of led_top is signal s_reset : std_logic; signal s_clk_50Mhz_cnt : std_logic_vector( 15 downto 0 ); signal s_clk_1Khz : std_logic := '0'; signal s_clk_1Khz_cnt : std_logic_vector( 15 downto 0 ); begin -- reset 신호 생성 s_reset <= not p_button(0); -- 분주 타이머 process( s_reset, p_clk_50Mhz ) is begin if rising_edge( p_clk_50Mhz ) then if s_reset = '1' then s_clk_50Mhz_cnt <= ( others => '0' ); else if s_clk_50Mhz_cnt = (50000-1) then s_clk_1Khz <= not s_clk_1Khz; s_clk_50Mhz_cnt <= ( others => '0' ); else s_clk_50Mhz_cnt <= s_clk_50Mhz_cnt + 1; end if; end if; end if; end process; process( s_reset, s_clk_1Khz ) is begin if rising_edge( s_clk_1Khz ) then if s_reset = '1' then s_clk_1Khz_cnt <= ( others => '0' ); else s_clk_1Khz_cnt <= s_clk_1Khz_cnt + 1; end if; end if; end process; p_led_out <= s_clk_1Khz_cnt(7);  

end Behavioral; 


'Programming > VHDL VERILOG' 카테고리의 다른 글

de0-nano 기본 예제 올려봄  (0) 2017.12.29
DE0-nano 기본 프로그램 분석  (0) 2017.12.28
de0-nano LED 예제  (0) 2017.12.27
vhdl / verilog 문법관련 링크  (0) 2017.12.26
xilinx vivado HLx / HLS  (0) 2017.12.24
VHDL verilog  (0) 2017.12.11
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2017.12.26 15:14

VHDL

[링크 : http://jyhpan.tistory.com/141]

[링크 : https://blog.naver.com/r2adne/120155040778]

+

2017.12.27

[링크 : http://blog.naver.com/PostList.nhn?blogId=pcs874&from=postList&categoryNo=22]


verilog

FB-CY6-DEV, FM-CY6S


강좌 0. Verilog HDL 문법

강좌 1. 컴파일러 사용법 및 다운로드

강좌 2. 로직 시뮬레이터 사용법

강좌 3. 로직 설계 및 시뮬레이션

강좌 4. 계층구조 설계하기 (Byte Adder)

강좌 5. LED 켜기

강좌 6. 스위치 입력 받기

강좌 7. 7-Segment 사용하기

강좌 8. FSM 설계 (스탑와치)

강좌 9. 디지털 시계 설계하기

강좌 10. ADC 사용하기 (FSM 응용) 

[링크 : http://www.newtc.co.kr/dpshop/bbs/board.php?bo_table=m43&wr_id=3]

[링크 : http://vlsi.hongik.ac.kr/lecture/%EC%8B%A4%ED%97%98/Verilog_Summary.pdf]


+

2017.12.30

[링크 : http://www.asic-world.com/verilog/vqref1.html#Verilog_Quick_Reference]

[링크 : http://www.tcnj.edu/~hernande/r/VHDL_QRC__01.pdf] vhdl quick reference

+

2017.12.31

[링크 : http://www.ece.uvic.ca/~fayez/courses/ceng465/vlogref.pdf] verilog quick reference


+

2018.01.12

[링크 : https://blog.naver.com/culonion/80022938473]

[링크 : http://www.rebas.kr/category/Programming/Verilog]

[링크 : http://bokku.exblog.jp/11785594/]


+

2018.01.19

[링크 : https://www.nandland.com/verilog/tutorials/index.html] verilog

'Programming > VHDL VERILOG' 카테고리의 다른 글

DE0-nano 기본 프로그램 분석  (0) 2017.12.28
de0-nano LED 예제  (0) 2017.12.27
vhdl / verilog 문법관련 링크  (0) 2017.12.26
xilinx vivado HLx / HLS  (0) 2017.12.24
VHDL verilog  (0) 2017.12.11
VHDL 문법 공부중 1  (0) 2017.12.10
Posted by 구차니

댓글을 달아 주세요

Programming/VHDL VERILOG2017.12.24 11:39

HLx는 실제로 FPGA를 위한 바이너리를 만들어 내는 녀석이고

(vhdl/verilog -> bitstream)

[링크 : https://www.xilinx.com/products/design-tools/vivado.htm]


HLS는 C언어로 작성한 녀석을 VHDL이나 Verilog로 변환해주는 (High Level Synthesis) 녀석이다.

(c -> vhdl/verilog)

[링크 : https://www.xilinx.com/products/design-tools/vivado/integration/esl-design.html]


일단은.. 궁금해서 예제 파일 아무거나 해서 막 눌러봤는데

신기하네.. 굳이 VHDL이나 Verilog 배워야 할 필요가 있을가? 싶은 HLS의 존재... ㄷㄷㄷ


HLS 예제에서 FFT/IFFT를 불러봤는데 C로 되어 있고 (UI가 암만봐도.. eclipse 다?)


합성 누르면 VHDL과


Verilog로 뱉어낸다. (verilog는 아직 문법을 안봐서...)


얘는 HLx 인데 예제 프로젝트 하나 생성해서 아무생각없이 그냥 빌드하니..

헐.. 먼가 멋지게 막 나온다. ㄷㄷ


확대 확대 확대~ 막 해도 계속 확대되서 무지 신기.. ㄷㄷ


회로 구조로 보는 것도 있는데.. 단계별로 같은 내용들이 보여서 무슨 차이인지 모르겠네..


Device에서 확대해보니..

LUT랑 Slice 라는 단어가 나오는데 정말 로직 레벨에서 해당 회로의 위치 까지 파악하도록

UI가 구성되어 있는 듯하다(도대체 얼마나 많은 개발자가 갈려나갔을까 ㄷㄷ)


'Programming > VHDL VERILOG' 카테고리의 다른 글

de0-nano LED 예제  (0) 2017.12.27
vhdl / verilog 문법관련 링크  (0) 2017.12.26
xilinx vivado HLx / HLS  (0) 2017.12.24
VHDL verilog  (0) 2017.12.11
VHDL 문법 공부중 1  (0) 2017.12.10
VHDL 문법 관련  (0) 2017.12.08
Posted by 구차니

댓글을 달아 주세요