键盘鼠标的Verilog XLINX FPGA源码代码,已经使用FPGA验正,可做为学习设计参考.
2022-01-30 09:12:25 1.5MB fpga开发
数字频率调制也称移频键控,即FSK(Frequency Shift Keying),二进制移频键控称作 2FSK,2FSK是用两个不同频率载波来表示二进制数字码。因此,2FSK信号便是0符号对应于载频ω1,而1符号对应于载频ω2(与ω1不同的另一载频)的已调波形,而且ω1与ω2之间的改变是瞬间完成的。容易想到,2FSK信号可利用一个矩形脉冲序列对一个载波进行调频而获得。这正是频率键控通信方式早期采用的实现方法,也是利用模拟调频法实现数字调频的方法。2FSK信号的另一产生方法便是采用键控法,即利用受矩形脉冲序列控制的开关电路对两个不同的独立频率源进行选通。
2021-12-18 00:37:30 1.11MB 2fsk 2psk fpga
1
FPGA源码包括串口网口LED灯SPI等等VHDL Verilog都有,很多例程和自己编写的代码
2021-12-16 19:29:03 54.75MB FPGA VHDL Verilo SPI
1
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_
声明:该设计来自阿莫论坛,设计资料仅供学习参考,不可用于商业用途。 这个版本的PCB是根据一款市售的通用壳体设计的,也就是有“外壳”,如果能用阿莫的机器给开孔那就解决了很多网友(包括我)头疼的外壳问题! 本来这个版本的示波器是使用PSP的液晶屏,试验下来发现功耗要比现在所使用的这款3.5寸的大,其实这个屏的分辨率要略高于PSP的480*272,现实更加细腻,只是没有4.3寸的屏看起来爽。 FPGA双通示波器作品实物图展示: FPGA双通示波器性能参数: 通道数:2通道 模拟带宽:30MHz 采样率:双通道,每125Msps 垂直精度:8bit 存储深度:每通道不小于8KB 电压灵敏度:10mv/div~5v/div(1:1探头) 扫速范围:100ns/div~5s/div FFT功能:1024点FFT X-Y功能 触发方式:单次、正常、自动,触发电压可调并带有超前触发功能 480*320/3.5寸高分辨率液晶显示器。 工作电压:6.2V~9V,推荐使用8V稳压电源 最大电流消耗:350mA(8V),因为数字部分使用DC/DC稳压电路,所以电流消耗与供电电压有一定关系。 按键功能: s0:模式选择(选择示波器和FFT) s1:通道选择(分别为:通道1,通道2,双通道和X-Y模式即李莎育图) s2:触发方式选择(分别为:自动上升沿,自动下降沿,正常上升沿,正常下降沿) s3:触发通道选择(触发通道在单通道时默认为当前通道,不能选择,只有在双通道和X-Y模式下可选) s4:存储深度选择(分别为:1000点,2000点,4000点,8000点每通道选择)注:在低扫速下使用地存储深度可以获得较好的实时性 s5:输入耦合选择(分别为交流耦合AC和直流耦合DC两种方式) s6:上下键功能选择(设置上下键的功能,分别为灵敏度ATT、基线位置Level、触发电平TrigY) 注:s12和s10为1通道的上下键,s13和s11为2通道的上下键 s7:左右键功能选择(设置左右键的功能,分别为扫速控制Speed和触发水平位置设置TrigX)注:s14和s15为左右键 s8:单次触发(单次触发功能,只有触发模式为正常情况下可以用,自动模式下不可用) s9:运行停止键
2021-11-24 15:14:10 26.14MB 源码 电路方案
1
VHDL格式,网上流传的经典版本,想山寨或者想了解下载流程,都很有用
2021-11-12 20:19:15 7KB JLINK 源码
1
该存储库为您提供了一个非常卑鄙的(又称ba pi)RISC-V RV32I实施方案,用于RISC-V Shanghai Day 2018。 Anlogic EG4-20的合成结果约为110MHz fmax和500LUT + 4/2 M32K。 现在,我正在改善计时和指令集支持。 它尚未可用,但我会让它在2018年6月28日之前完全起作用。 目前,它可以执行跳转,auipc,op-imm,op-r2r和32位加载存储。 但是,比较而言,分支指令尚不支持:我正在研究它。 我不会实现以下功能: 字节/半字加载存储,因为它可能会导致大约100LUT。 我建议用户使用软件来实现它。 未对齐的负载存储,原因与1相同。 [也许]中断控制器。 [也许]重置逻辑。 [也许] RVC解码器。 2018年6月19日,万志远
2021-11-03 19:49:35 4KB Verilog
1
FPGA 秒表源码 FPGA源码 FPGA程序 通过按键控制,有可暂停计时功能
2021-10-27 19:50:47 1.46MB FPGA 秒表源码 FPGA源码 FPGA程序
1
红外接收模块FPGA实验Verilog逻辑源码Quartus工程文件+文档说明资料,FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。 module remote_rcv ( //input input sys_clk , //系统时钟 input sys_rst_n , //系统复位信号,低电平有效 input remote_in , //红外接收信号 //output output reg [15:0] data_buf , // for not optimize output beep , // for shut beep output reg [7:0] led //指示LED ); //reg define reg [11:0] div_cnt ; //分频计数器 reg div_clk ; reg remote_in_dly ; reg [6:0] start_cnt ; reg [6:0] start_cnt1 reg [11:0] div_cnt ; //分频计数器 reg div_clk ; reg remote_in_dly ; reg [6:0] start_cnt ; reg [6:0] start_cnt1 ; reg [5:0] start_cnt2 ; reg [5:0] user_cnt ; reg [5:0] data_cnt ; reg [14:0] data_judge_cnt ; reg [14:0] noise_cnt ; reg [4:0] curr_st ; reg [4:0] next_st ; //wire define wire remote_pos ; wire remote_neg ; //fsm define parameter IDLE = 3'b000 ; parameter CHECK_START_9MS = 3'b001 ; parameter CHECK_START_4MS = 3'b010 ; parameter CHECK_USER_CODE = 3'b011 ; parameter CHECK_DATA_CODE = 3'b100 ;
VGA显示一个小方块,FPGA(EP4CE6)实验Verilog逻辑源码Quartus工程文件+文档资料,FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。 ********************************************************************************************************/ //上电后,VGA显示一个移动的小块,碰到边框的时候被弹开。 module VGA_Moving_Block ( input sys_clk , input sys_rst_n , output wire Hs , output wire Vs , output wire VGA_G , output wire VGA_B , output wire VGA_R ); //Reg define reg sys_clk_pixel ; reg [9:0] x_count ; reg [9:0] y_count ; reg hsync ; reg vsync ; reg [17:0] clk_cnt ; reg clkout ; reg up_down_x; reg up_down_y; //上升和下降信号 reg [9:0] x_pos ; //小方块左上角坐标 reg [9:0] y_pos ; //小方块左上角坐标 //Wire define wire valid_mov; wire valid_1 ; wire valid_2 ; wire valid_3 ; wire valid_4 ; wire valid_s ; //************************************************************************************ //** Main Program //** //************************************************************************************ //像素时钟 分频产生 25Mhz 时钟 always @ (posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) sys_clk_pixel <= 1'b0; else sys_clk_pixel <= ~sys_clk_pixel; end //行坐标和纵坐标 always @ (posedge sys_clk_pixel) begin if (!sys_rst_n) begin x_count <= 0; y_count <= 0; end else if (x_count == 10'd799) begin x_count <= 10'd0; if (y_count == 10'd519) y_count <= 10'd0; else y_count <= y_count+1'b1; end else x_count <= x_count+1'b1; end //同步信号 always @ (posedge sys_clk_pixel) begin if (x_count <= 10'd95) hsync <= 1'b0; else hsync <= 1'b1; end always @ (posedge sys_clk_pixel) begin if (y_count <= 1'd1) vsync <= 1'b0; else vsync <= 1'b1; end assign Hs = hsync; assign