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

营销推广型网站公司设计一个网站首页方案

营销推广型网站公司,设计一个网站首页方案,寻花问柳专注做一家男人爱的网站,网站运营这么做一、 软件平台与硬件平台 软件平台#xff1a; 1、操作系统#xff1a;Windows-8.1 2、开发套件#xff1a;ISE14.7 3、仿真工具#xff1a;ModelSim-10.4-SE 硬件平台#xff1a; 1、FPGA型号#xff1a;XC6SLX45-2CSG324 二、 原理介绍 我的开发板上有4个LED灯#xf…一、 软件平台与硬件平台   软件平台   1、操作系统Windows-8.1   2、开发套件ISE14.7   3、仿真工具ModelSim-10.4-SE   硬件平台   1、FPGA型号XC6SLX45-2CSG324 二、 原理介绍   我的开发板上有4个LED灯原理图如下         由原理图可知仅当FPGA的对应管脚输入低电平时LED才会亮流水灯的效果可以轮流让四个对应管脚输出低电平来产生。 三、 目标任务   编写四个LED流水的Verilog代码并用ModelSim进行仿真仿真通过以后下载到开发板进行测试要求开发板上每个LED亮的时间为1s。 四、 设计思路与Verilog代码编写   由于每个LED亮的时间为1s所以首先很自然想到产生一个1s的时钟用来驱动后续逻辑有了这个1s的时钟以后就可以在这个1s时钟的节拍下对LED的输出进行以移位操作来产生流水灯的效果。    1、1s时钟的分频逻辑    由于主时钟是50MHz周期为20ns所以可以利用50MHz主时钟驱动一个计数器当计数器的值每次到达24999999时消耗的时间为25000000*20ns0.5s这时把分频器的输出反转并把计数值清0这样分频器的输出就会每隔0.5s翻转一次产生了一个1s的时钟。   Verilog代码如下 // // 功能产生1s的时钟 // always (posedge I_clk or negedge I_rst_n) beginif(!I_rst_n)beginR_cnt_ls 32d0 ; R_clk_ls_reg 1b1 ;end else if(R_cnt_ls 32d24_999_999)beginR_cnt_ls 32d0 ;R_clk_ls_reg ~R_clk_ls_reg ; endelseR_cnt_ls R_cnt_ls 1b1 ; endassign W_clk_ls R_clk_ls_reg ;     2、移位逻辑   有了1s的时钟信号以后就在这个1s时钟信号的驱动下对输出的LED寄存器进行移位操作产生流水效果。   Verilog代码如下 // // 功能对输出寄存器进行移位产生流水效果 // always (posedge W_clk_ls or negedge I_rst_n) beginif(!I_rst_n) R_led_out_reg 4b0001 ; else if(R_led_out_reg 4b1000)R_led_out_reg 4b0001 ;else R_led_out_reg R_led_out_reg 1 ; endassign O_led_out ~R_led_out_reg ; 五、 ModelSim仿真   写好逻辑以后为了确定时序是正确的最好写一个测试文件对功能进行仿真为了加快仿真速度修改分频逻辑计数器的计数值为24然后编写测试文件测试文件中激励产生的Verilog代码如下 initial begin// Initialize InputsI_clk 0;I_rst_n 0;// Wait 100 ns for global reset to finish#100;I_rst_n 1;// Add stimulus hereendalways #10 I_clk ~I_clk ;     仿真的时序图如下图所示   可以看到时序完全正确接下来就是绑定管脚生成bit文件下载到开发板测试了。 六、 进一步思考——C语言流水灯与Verilog流水灯区别   看完网上《Verilog那些事》系列博文以后作者提出了一种“仿顺序操作”方法其实以前自己写代码的时候无形之中一直在用这种思想但是一直没有提炼出来看完作者的介绍以后才发现确实是有那个“仿顺序”的味道。详细的博文请参考博客园博主akuei2的系列博文。这里我在总结一遍给以后留个印象。   C语言实现流水灯的大致代码框架如下     while(1)     {       1、让第1个LED亮其他的灭       2、延时1s       3、让第2个LED亮其他的灭       4、延时1s       5、让第3个LED亮其他的灭       6、延时1s       7、让第4个LED亮其他的灭       8、延时1s       }   在while(1)里面代码是一行一行的执行最后一行执行完毕以后在回到第一行重新开始新一轮的执行。就这样产生了流水的效果。   看到这里有人应该突然明白了吧这不正好就是Verilog中的一个状态机么。对应的Verilog代码也可以写出来了    always (posedge I_clk)   begin          case(R_state)                 第1个状态让第1个LED亮其他的灭下一状态是第2个状态                 第2个状态延时1s下一状态是第3个状态                 第3个状态让第2个LED亮其他的灭下一状态是第4个状态                 第4个状态延时1s下一状态是第5个状态                 第5个状态让第3个LED亮其他的灭下一状态是第6个状态                 第6个状态延时1s下一状态是第7个状态                 第7个状态让第4个LED亮其他的灭下一状态是第8个状态                 第8个状态延时1s下一状态是第1个状态                 default                   endcase   end   具体的代码如下 // // 功能“仿顺序操作” // always (posedge I_clk or negedge I_rst_n) beginif(!I_rst_n)beginR_state 3b000 ; R_cnt_ls 32d0 ;endelsebegin case(R_state)C_S0:beginR_led_out_reg 4b0001 ;R_state C_S1 ; endC_S1:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S2 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S2:beginR_led_out_reg 4b0010 ;R_state C_S3 ; endC_S3:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S4 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S4:beginR_led_out_reg 4b0100 ;R_state C_S5 ; endC_S5:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S6 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S6:beginR_led_out_reg 4b1000 ;R_state C_S7 ; endC_S7:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S0 ;endelseR_cnt_ls R_cnt_ls 1b1 ; end default: R_state 3b000 ; endcase end endassign O_led_out ~R_led_out_reg ;   时序图如下图   时序图仍然正确实现了流水灯的效果 七、 总结   1、所谓的“仿顺序操作”实际上就是一个状态机通过状态的跳变实现“顺序执行”的效果。这种思想在后面写接口时序的时候还是挺管用的今后可以多多琢磨琢磨。   2、 C语言的while(1)和Verilog语言的always (posedge I_clk)有类似的地方只要CPU的时钟存在它们就一直执行下去。书上都说C语言是一种串行语言Verilog是一种并行语言实际上这里也能有体会C语言里只能有1个while(1)语句进入while(1)以后CPU就出不来了而Verilog中可以有多个always (posedge I_clk)语句并且每个always (posedge I_clk)同时运行的这就是两种语言最大的区别吧。   八、 附录   1、分频1s产生流水灯的完整代码 module led_work_top (input I_clk ,input I_rst_n ,output [3:0] O_led_out );reg [31:0] R_cnt_ls ; wire W_clk_ls ; reg R_clk_ls_reg ; reg [3:0] R_led_out_reg ;// // 功能产生1s的时钟 // always (posedge I_clk or negedge I_rst_n) beginif(!I_rst_n)beginR_cnt_ls 32d0 ; R_clk_ls_reg 1b1 ;end else if(R_cnt_ls 32d24_999_999)beginR_cnt_ls 32d0 ;R_clk_ls_reg ~R_clk_ls_reg ; endelseR_cnt_ls R_cnt_ls 1b1 ; endassign W_clk_ls R_clk_ls_reg ;// // 功能对输出寄存器进行移位产生流水效果 // always (posedge W_clk_ls or negedge I_rst_n) beginif(!I_rst_n) R_led_out_reg 4b0001 ; else if(R_led_out_reg 4b1000)R_led_out_reg 4b0001 ;else R_led_out_reg R_led_out_reg 1 ; endassign O_led_out ~R_led_out_reg ;endmodule     2、 “仿顺序操作”产生流水灯完整代码 module led_work_top (input I_clk ,input I_rst_n ,output [3:0] O_led_out ); reg [31:0] R_cnt_ls ; reg [3:0] R_led_out_reg ; reg [2:0] R_state ;parameter C_CNT_1S 32d49_999_999 ; parameter C_S0 3b000 ,C_S1 3b001 ,C_S2 3b010 ,C_S3 3b011 ,C_S4 3b100 ,C_S5 3b101 ,C_S6 3b110 ,C_S7 3b111 ;// // 功能仿顺序操作 // always (posedge I_clk or negedge I_rst_n) beginif(!I_rst_n)beginR_state 3b000 ; R_cnt_ls 32d0 ;endelsebegin case(R_state)C_S0:beginR_led_out_reg 4b0001 ;R_state C_S1 ; endC_S1:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S2 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S2:beginR_led_out_reg 4b0010 ;R_state C_S3 ; endC_S3:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S4 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S4:beginR_led_out_reg 4b0100 ;R_state C_S5 ; endC_S5:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S6 ;endelseR_cnt_ls R_cnt_ls 1b1 ; endC_S6:beginR_led_out_reg 4b1000 ;R_state C_S7 ; endC_S7:beginif(R_cnt_ls C_CNT_1S)beginR_cnt_ls 32d0 ;R_state C_S0 ;endelseR_cnt_ls R_cnt_ls 1b1 ; end default: R_state 3b000 ; endcase end endassign O_led_out ~R_led_out_reg ;endmodule   3、测试记录文件完整代码 module tb_led_work_top;// Inputsreg I_clk;reg I_rst_n;// Outputswire [3:0] O_led_out;// Instantiate the Unit Under Test (UUT)led_work_top U_led_work_top (.I_clk(I_clk), .I_rst_n(I_rst_n), .O_led_out(O_led_out));initial begin// Initialize InputsI_clk 0;I_rst_n 0;// Wait 100 ns for global reset to finish#100;I_rst_n 1;// Add stimulus hereendalways #5 I_clk ~I_clk ;endmodule   欢迎关注我的公众号FPGA之禅 转载于:https://www.cnblogs.com/liujinggang/p/9463589.html
http://www.pierceye.com/news/334119/

相关文章:

  • 用阿里云做网站注意事项绵阳的网站建设公司哪家好
  • 电商网站设计工作内容深圳国际设计学院
  • 国内界面优秀的网站科技有限公司名字叫什么好
  • 网站底部悬浮代码搭建网站的主要风险
  • 长安网站建设公司常做网站首页的文件名
  • 学网站开发的能找什么工作赣州网站设计较好的公司
  • 网站建设接单微信营销软件收费排行榜
  • 佛山网站建设公司排名佛山微网站推广哪家专业
  • 招商网站建设网设备 光速东莞网站建设
  • 网站建设公司如何wordpress用多大主机
  • 东莞网站建设规范网页美工设计(第2版)素材
  • 论文 网站建设值得推荐的深圳app外包公司
  • 建网站的电脑可以换位置吗莆田建站培训
  • 外贸必看网站离职模板网
  • 内网网站建设正能量不良网站软件下载
  • 制作手机广告的网站吉林省建设厅网站评职称系统
  • 云南建设厅网站资质证书查询自动生成app
  • 柳州正规网站制作公司大连建设厅网站
  • 北京市保障房建设投资中心网站瘫痪广州大型网站建设公司排名
  • 做电池网站的引导页室内设计联盟效果图
  • 查询备案网站成绩查询系统网站开发
  • 网站后台编辑器上传不了图片建筑工程承包网app
  • wordpress多站点插件168工程信息网
  • 网站工信部备案号没有ftp wordpress
  • 家装公司网站建设网站建立网站有免费的吗
  • 网站后台添加投票系统wordpress mip改造
  • 提升网站建设品质信息设计软件排行
  • 温州网站建设优化公司网站营销管理培训班
  • 昆明企业网站开发深圳航空公司最新官网
  • 青浦网站开发泸州建设网站