当前位置: 首页 > news >正文

网站开发 架构百度推广怎么做免费

网站开发 架构,百度推广怎么做免费,响水做网站的,涟水建设局网站#x1f389;欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒#x1f379; ✨博客主页#xff1a;小夏与酒的博客 #x1f388;该系列文章专栏#xff1a;FPGA学习之旅 文章作者技术和水平有限#xff0c;如果文中出现错误#xff0c;希望大家能指正… 欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒 ✨博客主页小夏与酒的博客 该系列文章专栏FPGA学习之旅 文章作者技术和水平有限如果文中出现错误希望大家能指正 欢迎大家关注 ❤️ 目录-数码管动态扫描 一、效果演示二、电路结构三、代码详解四、AV4开发板演示五、Spirit_V2开发板演示 一、效果演示 Spirit_V2开发板按键控制数码管 AV4开发板数码管动态扫描 二、电路结构 上图电路结构的子模块介绍 名称功能描述divider分频产生1KHz的扫描时钟shift66位循环移位寄存器MUX6数据输入选择MUX2使能选择LUT数据译码器 由于各子模块的代码量不会特别大因此将在一个文件中编写。 三、代码详解 先上代码 smg_HEX.v: module smg_HEX(input Clk, //50Minput Rst_n, //复位input En, //数码管显示使能input [23:0] disp_data, //6 × 4 246个数码管数据格式为hex总共输入24位output reg [7:0] seg, //数码管段选output [5:0] sel //数码管位选数码管选择 );reg [5:0]sel_r;//--------分频器--------reg [14:0]divider_cnt;//25000-1reg clk_1K;reg [3:0]data_tmp;//待显示数据缓存//1KHz分频计数器always(posedge Clk or negedge Rst_n)beginif(!Rst_n)divider_cnt 15d0;else if(!En)divider_cnt 15d0;else if(divider_cnt 24999)divider_cnt 15d0;elsedivider_cnt divider_cnt 1b1;end//1KHz扫描时钟always(posedge Clk or negedge Rst_n)beginif(!Rst_n)clk_1K 1b0;else if(divider_cnt 24999)clk_1K ~clk_1K;elseclk_1K clk_1K;end//--------6位循环移位寄存器-------- always(posedge clk_1K or negedge Rst_n)beginif(!Rst_n)sel_r 6b000_001;else if(sel_r 6b100_000)sel_r 6b000_001;elsesel_r sel_r 1;end //--------6选1多路器-------- always(*)begincase(sel_r)6b00_0001:data_tmp disp_data[3:0];6b00_0010:data_tmp disp_data[7:4];6b00_0100:data_tmp disp_data[11:8];6b00_1000:data_tmp disp_data[15:12];6b01_0000:data_tmp disp_data[19:16];6b10_0000:data_tmp disp_data[23:20];default:data_tmp 4b0000;endcaseend//--------LUT-------- always(*)begincase(data_tmp)4h0:seg 8hc0;4h1:seg 8hf9;4h2:seg 8ha4;4h3:seg 8hb0;4h4:seg 8h99;4h5:seg 8h92;4h6:seg 8h82;4h7:seg 8hf8;4h8:seg 8h80;4h9:seg 8h90;4ha:seg 8h88;4hb:seg 8h83;4hc:seg 8hc6;4hd:seg 8ha1;4he:seg 8h86;4hf:seg 8h8e;endcaseend//--------2选1多路器-------- assign sel (En)?(~sel_r):6b111_111;endmodule 需要注意端口列表 module smg_HEX(input Clk, //50Minput Rst_n, //复位input En, //数码管显示使能input [23:0] disp_data, //6 × 4 246个数码管数据格式为hex总共输入24位output reg [7:0] seg, //数码管段选output [5:0] sel //数码管位选数码管选择 );En使能信号只有在高电平时数码管显示。加入使能信号端口是为了低功耗设计的实现。 接下来做仿真测试 smg_HEX_tb.v timescale 1ns/1ns define clock_period 20module smg_HEX_tb;reg Clk; //50Mreg Rst_n;reg En; //数码管显示使能reg [23:0] disp_data;wire [7:0] seg; //数码管段选wire [5:0] sel; //数码管位选数码管选择smg_HEX Usmg_HEX(.Clk(Clk), //50M.Rst_n(Rst_n),.En(En), //数码管显示使能.disp_data(disp_data),.seg(seg), //数码管段选.sel(sel) //数码管位选数码管选择);initial Clk 1;always#(clock_period / 2) Clk ~Clk;initial beginRst_n 1b0;En 1;disp_data 24h123456;#(clock_period*20);Rst_n 1b1;#(clock_period*20);#20000000;disp_data 24h89abcd;#20000000;$stop;endendmodule 仿真结果 RTL 四、AV4开发板演示 上述代码为数码管动态扫描的驱动代码使用时需要添加上层模块。 AV4开发板开箱视频【FPGA-AV4】火热售卖中欢迎大家抢购小月电子~含购买链接。 在AV4开发板上的实现主要使用到了ISSP调试工具ISSP的ip核创建 创建一个新的ip核 选择ISSP选择好Verilog HDL和路径 该项目只需要用到source端口 下一步 完成 issp.v: // megafunction wizard: %In-System Sources and Probes%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altsource_probe // // File Name: issp.v // Megafunction Name(s): // altsource_probe // // Simulation Library Files(s): // altera_mf // // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 13.0.0 Build 156 04/24/2013 SJ Full Version // ************************************************************//Copyright (C) 1991-2013 Altera Corporation //Your use of Altera Corporations design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files from any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details.module issp (probe,source);input probe;output [23:0] source;endmodule// // CNX file retrieval info // // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING Cyclone IV E // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: CONSTANT: ENABLE_METASTABILITY STRING NO // Retrieval info: CONSTANT: INSTANCE_ID STRING NONE // Retrieval info: CONSTANT: PROBE_WIDTH NUMERIC 0 // Retrieval info: CONSTANT: SLD_AUTO_INSTANCE_INDEX STRING YES // Retrieval info: CONSTANT: SLD_INSTANCE_INDEX NUMERIC 0 // Retrieval info: CONSTANT: SOURCE_INITIAL_VALUE STRING 0 // Retrieval info: CONSTANT: SOURCE_WIDTH NUMERIC 24 // Retrieval info: USED_PORT: probe 0 0 0 0 INPUT NODEFVAL probe // Retrieval info: USED_PORT: source 0 0 24 0 OUTPUT NODEFVAL source[23..0] // Retrieval info: CONNECT: probe 0 0 0 0 probe 0 0 0 0 // Retrieval info: CONNECT: source 0 0 24 0 source 0 0 24 0 // Retrieval info: GEN_FILE: TYPE_NORMAL issp.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL issp.inc TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL issp.cmp TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL issp.bsf TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL issp_inst.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL issp_bb.v TRUE // Retrieval info: LIB_FILE: altera_mf 将该ip核添加到项目文件中并在顶层文件中例化模块 module smg_ISSP(input Clk, //50Minput Rst_n, //复位output [7:0] seg, //数码管段选output [5:0] sel //数码管位选数码管选择 );wire [23:0]disp_data;smg_HEX Usmg_HEX(.Clk(Clk), //50M.Rst_n(Rst_n), //复位.En(1b1), //数码管显示使能.disp_data(disp_data), //6 × 4 246个数码管数据格式为hex总共输入24位.seg(seg), //数码管段选.sel(sel) //数码管位选数码管选择);issp Uissp(.probe(),.source(disp_data));endmodule 将上述程序配置好之后数码管显示如下 当程序配置好之后使用ISSP调试工具打开步骤 在Tools中打开 未发现设备先点击ok 在Hardware中选择对应的设备 将数据显示格式调整为hex格式 将数据改为123456 测试结果 将数据改为ABCDEF 测试结果 五、Spirit_V2开发板演示 Spirit_V2开发板介绍【FPGA-Spirit_V2】小精灵V2开发板初使用。 接下来在Spirit_V2开发板上实验通过按键控制数码管亮灭实现简单的低功耗设计 先上RTL视图便于理解编程思路 按键信号经过按键消抖模块之后有效信号进入数码管数据和使能模块最后信号进入数码管驱动模块。 按键消抖模块的详细讲解【FPGA零基础学习之旅#10】按键消抖模块设计与验证一段式状态机实现。 接下来为各模块的代码 KeyFilter.v: // //模块按键消抖模块 //key_state输出消抖之后按键的状态 //key_flag按键消抖结束时产生一个时钟周期的高电平脉冲 // module KeyFilter(input Clk,input Rst_n,input key_in,output reg key_flag,output reg key_state );//按键的四个状态localparamIDLE 4b0001,FILTER1 4b0010,DOWN 4b0100,FILTER2 4b1000;//状态寄存器reg [3:0] curr_st;//边沿检测输出上升沿或下降沿wire pedge;wire nedge;//计数寄存器reg [19:0]cnt;//使能计数寄存器reg en_cnt;//计数满标志信号reg cnt_full;//计数满寄存器//------边沿检测电路的实现------//边沿检测电路寄存器reg key_tmp0;reg key_tmp1;//边沿检测always(posedge Clk or negedge Rst_n)beginif(!Rst_n)beginkey_tmp0 1b0;key_tmp1 1b0;endelse beginkey_tmp0 key_in;key_tmp1 key_tmp0;end endassign nedge (!key_tmp0) (key_tmp1);assign pedge (key_tmp0) (!key_tmp1);//------状态机主程序------ //状态机主程序always(posedge Clk or negedge Rst_n)beginif(!Rst_n)begincurr_st IDLE;en_cnt 1b0;key_flag 1b0;key_state 1b1;endelse begincase(curr_st)IDLE:beginkey_flag 1b0;if(nedge)begincurr_st FILTER1;en_cnt 1b1;endelsecurr_st IDLE;endFILTER1:beginif(cnt_full)beginkey_flag 1b1;key_state 1b0;curr_st DOWN;en_cnt 1b0;end else if(pedge)begincurr_st IDLE;en_cnt 1b0;endelsecurr_st FILTER1;endDOWN:beginkey_flag 1b0;if(pedge)begincurr_st FILTER2;en_cnt 1b1;endelsecurr_st DOWN;endFILTER2:beginif(cnt_full)beginkey_flag 1b1;key_state 1b1;curr_st IDLE;en_cnt 1b0;end else if(nedge)begincurr_st DOWN;en_cnt 1b0;endelsecurr_st FILTER2;enddefault:begincurr_st IDLE;en_cnt 1b0;key_flag 1b0;key_state 1b1;endendcaseendend//------20ms计数器------ //20ms计数器//Clk 50_000_000Hz//一个时钟周期为20ns//需要计数20_000_000 / 20 1_000_000次always(posedge Clk or negedge Rst_n)beginif(!Rst_n)cnt 20d0;else if(en_cnt)cnt cnt 1b1;elsecnt 20d0;endalways(posedge Clk or negedge Rst_n)beginif(!Rst_n)cnt_full 1b0;else if(cnt 999_999)cnt_full 1b1;elsecnt_full 1b0;endendmodule DataAndEn.v: module DataAndEn(input Clk,input Rst_n,input key_flag,input key_state,output reg [23:0] disp_data,output reg En );always(posedge Clk or negedge Rst_n)beginif(!Rst_n)En 1b0;else if(key_state 1b0)En 1b1;else En 1b0;endalways(posedge Clk or negedge Rst_n)beginif(!Rst_n)disp_data 24h0;else if(!key_state)disp_data 24h89abcd;else;endendmodule 数码管驱动模块的代码保持不变接下来为顶层模块 smg_top.v: module smg_top(input Clk, input Rst_n, input key_in, output [7:0] seg, output [5:0] sel );wire key_flag;wire key_state;wire En;wire [23:0] disp_data;KeyFilter UKeyFilter(.Clk(Clk),.Rst_n(Rst_n),.key_in(key_in),.key_flag(key_flag),.key_state(key_state));DataAndEn UDataAndEn(.Clk(Clk),.Rst_n(Rst_n),.key_flag(key_flag),.key_state(key_state),.disp_data(disp_data),.En(En));smg_HEX Usmg_HEX(.Clk(Clk), .Rst_n(Rst_n), .En(En), .disp_data(disp_data),.seg(seg), .sel(sel) );endmodule 结尾 ❤️ 感谢您的支持和鼓励 您可能感兴趣的内容【FPGA】串口通信讲解-状态机判断数据值【Python】串口通信-与FPGA、蓝牙模块实现串口通信PythonFPGA 【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯【全网首发开源教程】【Labview机器人仿真与控制】Labview与Solidworks多路支配关系-四足爬行机器人仿真与控制
http://www.pierceye.com/news/541795/

相关文章:

  • 2.0网站线上建设什么意思做外贸网站哪家的好
  • 网站域名可以更改吗安装wordpress插件目录下
  • 海南省澄迈住房和城乡建设厅网站ui设计师创意平台
  • 青岛网站设计公司排名wordpress 下载主题
  • 外包做网站不满意中级经济师考试成绩查询
  • 苏州企业网站建站系统网页制作基础步骤
  • 新河网站规划电子商务网站流程
  • 免费网站建设免代码杭州建设工程交易平台
  • 网页网站导读怎么做百度问答兼职怎么做
  • wordpress建站环境报喜鸟集团有限公司网页制作
  • 怎么利用网站赚广告费网站开发服务费入什么科目
  • 求网站2021在线观看设计app的软件
  • 百度文库登录入口昆明网站建设优化技术
  • 江苏建设教育协会网站网络营销专员岗位职责
  • 遂宁门户网站建设先进工作单位帮别人做违法网站会判刑吗
  • 设计公司网站套餐怎么样做短视频
  • 化妆品做网站流程什么是网络营销产品
  • windows搭建php网站推荐商城网站建设
  • php网站开发门槛高吗网络推广网站推广
  • 网站推广的8种方法微信怎么开创公众号
  • 大鹏外贸网站建设海口网站网站建设
  • 手表东莞网站建设技术支持信创网站
  • 中小企业为什么要建网站wordpress特效 插件推荐
  • 好的门户网站龙南建设局网站
  • 深圳住房和建设局官网网站设计导航精选最好的设计网站大全
  • 个人备案网站建设方案书网站开发实训教程
  • 周口网站关键词优化重庆招商网
  • 国内优秀网站设计师江西宜春市城市建设档案馆网站
  • 怎么查看网站用的php还是.networdpress博客页修改
  • 企业查询网站wordpress注册没反应