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

网站设计的优缺点怎么弄一个自己的网址

网站设计的优缺点,怎么弄一个自己的网址,移动网站用什么建设,ui设计师是吃青春饭吗#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.hkea.cn/news/14421758/

相关文章:

  • 深圳营销型网站建设方案服务商湘潭有实力的关键词优化公司
  • 网站二级目录最权威的品牌排行榜网站
  • 门户网站建设技术要求企业查询系统官网天眼查免费
  • 九江网站推广北京装修设计公司有哪些
  • 个人网站需要几个备案百度推广后台登录首页
  • 中华建设网算什么级别网站漳州手工外发加工网
  • 淮北网站开发公司广东佛山企业
  • 网站如何做线上支付功能学做网站学费
  • 网站制作软件手机网页广告太多怎么屏蔽
  • 如何把代码放在网站首页教程湖北最新数据消息
  • 我要做一个网站 需要营业范围吗无锡企业建站程序
  • 上海网站建设价wordpress文章页模板
  • 重庆外贸网站建设公司做微信公众号的网站有哪些内容
  • 莞城建设网站微信小程序官方教程
  • 定制手机网站网络营销策划方案模板
  • 苏州工业园区做政务网站的公司网站美工建设软件下载
  • 杭州网站制作专业恩城seo的网站
  • 网站收录没排名公司网站开发可行性报告
  • 云南网站设计模板搬瓦工做网站方法
  • 网站一般用什么做的建好的网站怎么用
  • 陕西网站建设公司哪有内容展示型网站特点
  • 东莞能做网站的公司徐州做网站的公司
  • 易语言做购物网站unity 做网站
  • 关于节约化建设网站的表态发言免费缩短链接
  • 台州做网站建设wordpress 分页导航无效
  • 免费在线自助建站金融行业网站模板
  • 做兼职的设计网站阿里云网站备案后
  • 网站建设培训南宁网站页面设计需求文档
  • 单页网站系统免费网站制作软件
  • 安全网站建设网站列表页内容