440Hz(A4)の音を出してみる
ここを参考に
http://d.hatena.ne.jp/kazunori_279/20121204/1354631391
zyboのPLをPLのみで動かす(PSを使用しない)
クロックはCLK125(125MHz)のL16から入れる
リセットは適当にボタンから入れる
hoge.xdc
set_property IOSTANDARD LVCMOS33 [get_ports CLK] set_property IOSTANDARD LVCMOS33 [get_ports GEN] set_property IOSTANDARD LVCMOS33 [get_ports LED] set_property IOSTANDARD LVCMOS33 [get_ports RST] set_property PACKAGE_PIN L16 [get_ports CLK] set_property PACKAGE_PIN M14 [get_ports LED] set_property PACKAGE_PIN M15 [get_ports GEN] set_property PACKAGE_PIN R18 [get_ports RST]
HDL
`timescale 1ns / 1ps module synth( input CLK, input RST, output GEN, output LED ); reg[31:0] cnt; reg[31:0] cnt2; reg led; reg gen; parameter A4_COUNT =32'h22ADD; parameter ONE_SEC_COUNT = 32'h7735940; wire en440hz = (cnt==A4_COUNT); wire en1hz = (cnt2==ONE_SEC_COUNT); always @(posedge CLK) begin if(RST) cnt <= 32'h0; else if(en440hz) cnt <= 32'h0; else cnt <= cnt + 32'h1; end always @(posedge CLK) begin if(RST) cnt2 <= 32'h0; else if(en1hz) cnt2 <= 32'h0; else cnt2 <= cnt2 + 32'h1; end always @(posedge CLK) begin if(RST) led <= 1'b0; else if(en1hz) led <= ~led; end always @(posedge CLK) begin if(RST) gen <= 1'b0; else if(en440hz) gen <= ~gen; end assign GEN=gen; assign LED=led; endmodule