当前位置: 首页 > 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.zqtcl.cn/news/334119/

相关文章:

  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计
  • idea建设完整的网站微官网下载
  • 阿城区建设小学网站上海建设行政主管部门政务网站
  • 西丽网站建设网站怎样做才能有点击率
  • 网站建设图片大小建设部网站1667号公告
  • 做wps的网站赚钱网站建设中网站图片如何修改
  • 公司招商型网站建设怎么自己做网站挣钱
  • 红酒手机网站建设中视频自媒体注册
  • 免费网站2022年能用的网址青阳网站建设
  • 网站建设的开发方式知乎科技部网站建设合同范本
  • 兰州市建设厅官方网站做酒店的网站
  • 宠物店网站开发文档撰写洛阳市河阳建设工程有限公司网站
  • 毕业设计做网站应该学什么wordpress调用子分类
  • 怎么建网站做淘宝客用国外网站 图片做自媒体
  • 汕头建站模板搭建怎么制作有效网站
  • 学生个人网站作品怎么wordpress用的什么主题
  • 设计logo网站侵权吗知乎一键做单页网站
  • 网站服务器有什么用做视频网站视频存放问题
  • 影评网站建设可以免费发布招聘网站