Spartan 6 FPGA 设计HC-SR04超声波测距实验VERILOG源码 Xilinx ISE14.6 工程文件 /每秒产生1个超声波测距模块所需的10us高脉冲激励,并用chipscope pro查看回响信号 module sp6( input ext_clk_25m, //外部输入25MHz时钟信号 input ext_rst_n, //外部输入复位信号,低电平有效 output ultrasound_trig, //超声波测距模块脉冲激励信号,10us的高脉冲 input ultrasound_echo, //超声波测距模块回响信号 output[0:0] led //D2指示灯 ); //------------------------------------- //PLL例化 wire clk_12m5; //PLL输出12.5MHz时钟 wire clk_25m; //PLL输出25MHz时钟 wire clk_50m; //PLL输出50MHz时钟 wire clk_100m; //PLL输出100MHz时钟 wire sys_rst_n; //PLL输出的locked信号,作为FPGA内部的复位信号,低电平复位,高电平正常工作 pll_controller uut_pll_controller (// Clock in ports .CLK_IN1(ext_clk_25m), // IN // Clock out ports .CLK_OUT1(clk_12m5), // OUT .CLK_OUT2(clk_25m), // OUT .CLK_OUT3(clk_50m), // OUT .CLK_OUT4(clk_100m), // OUT // Status and control signals .RESET(~ext_rst_n),// IN .LOCKED(sys_rst_n)); // OUT //------------------------------------- //25MHz时钟进行分频,产生一个100KHz频率的时钟使能信号 wire clk_100khz_en; //100KHz频率的一个时钟使能信号,即每10us产生一个时钟脉冲 clkdiv_generation uut_clkdiv_generation( .clk(clk_25m), //时钟信号 .rst_n(sys_rst_n), //复位信号,低电平有效 .clk_100khz_en(clk_100khz_en) //100KHz频率的一个时钟使能信号,即每10us产生一个时钟脉冲 ); //------------------------------------- //每秒产生一个10us的高脉冲作为超声波测距模块的激励 ultrasound_controller uut_ultrasound_controller( .clk(clk_25m), //时钟信号 .rst_n(sys_rst_n), //复位信号,低电平有效 .clk_100khz_en(clk_100khz_en), //100KHz频率的一个时钟使能信号,即每10us产生一个时钟脉冲 .ultrasound_trig(ultrasound_trig), //超声波测距模块脉冲激励信号,10us的高脉冲 .ultrasound_echo(ultrasound_echo) //超声波测距模块回响信号 ); //------------------------------------- //input信号必须经过IBUF后,才能作为chipscope中查看 wire ultrasound_echo_r; IBUF #( .IOSTANDARD("DEFAULT") // Specify the input I/O standard )IBUF_inst ( .O(ultrasound_echo_r), // Buffer output .I(ultrasound_echo) // Buffer input (connect directly to top-level port) ); assign led[0] = ultrasound_echo_
用verilog语言编写的异步串行通信接口的控制程序,用来控制422设备。
2021-12-09 14:53:03 10KB verilog 串口 rs422
1
HCPL-7860 光耦隔离AD转换,CPLD 滤波器程序verilog+STM32F芯片接口c程序,接口原理图sch,
2021-08-29 10:42:00 1.06MB verilog sch
1
此代码已经由本人测试通过 ,工具为quartus II
2021-06-18 11:15:45 3.6MB cordic源码
1
这是NAND FLASH 控制器的verilog源码,很有参考价值!
2021-05-22 10:58:56 5KB NAND FLASH
1
verilog程序设计实例学习基础教程FPGA教学实验Verilog HDL例程源码合集: accn.v account.v add4_1.v add4_2.v add4_3.v add8.v add8_tp.v adder.v adder16.v adder4.acf adder4.hif adder4.ndb adder4.v adder8.v adder_tp.v add_ahead.v add_bx.v add_jl.v add_tree.v alu.v alutask.v alu_tp.v aoi.v bidir.v bidir2.v block.v block1.v block2.v block3.v block4.v buried_ff.v carry_udp.v carry_udpx1.v carry_udpx2.v clock.v code_83.v compile.v control.v correlator.v count.v count10.v count4.v count4_tp.v count60.v count8_tp.v crc.v cycle.v decode47.v decode4_7.v decoder1.v decoder2.v decoder_38.v delay.v dff.v dff1.v dff2.v dff_udp.v encoder8_3.v examples.pdf fir.v fre_ctrl.v fsm.v full_add1.v full_add2.v full_add3.v full_add4.v full_add5.v funct.v funct_tp.v gate1.v gate2.v gate3.v half_add1.v half_add2.v half_add3.v half_add4.v jk_ff.v johnson.v latch.v latch_1.v latch_16.v latch_2.v latch_8.v linear.v longframe1.v longframe2.v loop1.v loop2.v loop3.v mac.v mac_tp.v map_lpm_ram.v mpc.v mpc_tp.v mult.v mult4x4.v mult_for.v mult_repeat.v mult_tp.v mux21_1.v mux21_2.v mux2_1a.v mux2_1b.v mux2_1c.v mux31.v mux4_1.v mux4_1a.v mux4_1b.v mux4_1c.v mux4_1d.v mux_case.v mux_casez.v mux_if.v mux_tp.v non_block.v paobiao.v paral1.v paral2.v parity.v pipeline.v ram256x8.v random_tp.v reg8.v resource1.v resource2.v rom.v sell.v serial1.v serial2.v serial_pal.v shifter.v song.v test.v test1.v test2.v time_dif.v traffic.v transcript tri_1.v tri_2.v updown_count.v voter7.v wave1.v wave2.v
I2C接口距离传感器ap3216c读写Verilog驱动源码Quartus工程文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。 module ap3216c_top( //global clock input sys_clk , // 系统时钟 input sys_rst_n , // 系统复位 //ap3216c interface output ap_scl , // i2c时钟线 inout ap_sda , // i2c数据线 //user interface output [3:0] led , // led灯接口 output [5:0] sel , // 数码管位选 output [7:0] seg_led // 数码管段选 ); //parameter define parameter SLAVE_ADDR = 7'h1e ; // 器件地址 parameter BIT_CTRL = 1'b0 ; // 字地址位控制参数(16b/8b) parameter CLK_FREQ = 26'd50_000_000; // i2c_dri模块的驱动时钟频率(CLK_FREQ) parameter I2C_FREQ = 18'd250_000 ; // I2C的SCL时钟频率 //wire define wire clk ; // I2C操作时钟 wire i2c_exec ; // i2c触发控制 wire [15:0] i2c_addr ; // i2c操作地址 wire [ 7:0] i2c_data_w; // i2c写入的数据 wire i2c_done ; // i2c操作结束标志 wire i2c_ack ; // I2C应答标志 0:应答 1:未应答 wire i2c_rh_wl ; // i2c读写控制 wire [ 7:0] i2c_data_r; // i2c读出的数据 wire [15:0] als_data ; // ALS的数据 wire [ 9:0] ps_data ; // PS的数据 //***************************************************** //** main code //***************************************************** //例化i2c_dri,调用IIC协议 i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), // slave address从机地址,放此处方便参数传递 .CLK_FREQ (CLK_FREQ ), // i2c_dri模块的驱动时钟频率(CLK_FREQ) .I2C_FREQ (I2C_FREQ ) // I2C的SCL时钟频率 ) u_i2c_dri( //global clock .clk (sys_clk ), // i2c_dri模块的驱动时钟(CLK_FREQ) .rst_n (sys_rst_n ), // 复位信号 //i2c interface .i2c_exec
这是NAND FLASH 控制器的verilog源码,很有参考价值!
2021-03-08 22:56:33 5KB NAND FLASH
1
verilog实现I2C通信的slave模块源码状态机设计可做I2C接口的仿真模型,module I2C_slv ( input [6:0] slv_id, input RESET, input scl_i, //I2C clk input sda_i, //I2C data in input [7:0] I2C_RDDATA, ////////////////////////output reg sda_o, //I2C data out output reg reg_w, //reg w ..
光纤旋转编码器4备频率VERILOG FPGA逻辑源码文件,已在项目中使用,可以做为你的设计参考。