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

江苏建设工程信息网一体化平台官网seo工资多少

江苏建设工程信息网一体化平台官网,seo工资多少,行业门户网站运营方案,音乐网站后台管理模板1.输入序列连续的序列检测 题面 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJH9kHFH-1690301233803)(https://s2.loli.net/2023/07/26/HJPXR2mhbaVCG6d.png)]思路 对于序列检测题目#xff0c;常规的解法有两种#xff1a;状态机法和序列缓存…1.输入序列连续的序列检测 题面 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kJH9kHFH-1690301233803)(https://s2.loli.net/2023/07/26/HJPXR2mhbaVCG6d.png)]思路 对于序列检测题目常规的解法有两种状态机法和序列缓存对比法。 状态机法的过程类似于在初始状态中先判断第一位是否符合若符合则进入下一个状态判断第二位是否符合若第一位不符合则保持在初始状态直到第一位匹配。如前两位匹配则判断第三位是否符合若第一位匹配最新输入的数值和目标序列的第二位不匹配则根据最新一位是否匹配第一位进入第一位匹配状态或者初始状态。依次类推。 序列缓存对比法则是将八个时刻的数据缓存作为一个数组每个时刻的输入位于数组的末尾数组其它元素左移把最早输入的数据移出。然后将数组和目标序列对比如果数组和目标序列相等则说明出现目标序列。 序列缓存对比法在实现上比较简单。首先声明一个数组缓存八个时刻的a输入的数值。移位可以通过位截取操作和位拼接操作实现a_tem[6:0]表示截取a_tem的低7位{a_tem[6:0],a}表示把a_tem[6:0]和新输入的数值a拼接a位于低位。 代码 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [7:0] a_tem;always (posedge clk or negedge rst_n) beginif (!rst_n) beginmatch 1b0;endelse if (a_tem 8b0111_0001) beginmatch 1b1;endelse beginmatch 1b0;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) begina_tem 8b0;endelse begina_tem {a_tem[6:0],a};endendendmodule2.含有无关项的序列检测 题面 思路 序列缓存对比法则是将九个时刻的数据缓存作为一个数组每个时刻的输入位于数组的末尾数组其它元素左移把最早输入的数据移出。然后截取数组的前三位和目标序列011对比截取数组的后三位和目标序列110对比如果两段数组都和目标序列相等则说明出现目标序列。 序列缓存对比法在实现上比较简单本题采用该方法实现。首先声明一个数组缓存九个时刻的a输入的数值。移位可以通过位截取操作和位拼接操作实现a_tem[7:0]表示截取a_tem的低7位{a_tem[7:0],a}表示把a_tem[7:0]和新输入的数值a拼接a位于低位。 代码 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output match);reg [8:0] a_tem;reg match_f;reg match_b;always (posedge clk or negedge rst_n) beginif (!rst_n) beginmatch_f 1b0;endelse if (a_tem[8:6] 3b011) beginmatch_f 1b1;endelse beginmatch_f 1b0;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginmatch_b 1b0;endelse if (a_tem[2:0] 3b110) beginmatch_b 1b1;endelse beginmatch_b 1b0;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) begina_tem 9b0;end else begina_tem {a_tem[7:0],a};endendassign match match_b match_f; endmodule解法2 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [8:0] sequence;always (posedge clk or negedge rst_n) beginif (~rst_n) beginsequence 9b0;endelse beginsequence {sequence[7:0],a};endendalways (posedge clk or negedge rst_n) beginif (~rst_n) beginmatch 0;endelse if (sequence[8:6] 3b011 sequence[2:0] 3b110) beginmatch 1;endelse beginmatch 0;endendendmodule解法3 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [8:0] val;always (posedge clk or negedge rst_n) beginif (!rst_n) beginval 9b0;end else beginval {val[7:0],a};endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginmatch 1b0;end else begincasex (val)9b011xxx110 : match 1b1;default : match 1b0;endcaseendendendmodule 3. 不重叠序列检测 题意 题目描写错误应该是001110而题目是011100差评。思路 使用数选器选择出来对应的位再做同或与最后做与运算资源用的也很少。 代码 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input data,output reg match,output reg not_match);reg [2:0] cnt;reg cmp;reg detect_cmp;parameter detect 6b011100;always(posedge clk or negedge rst_n)beginif(! rst_n) cnt 3d0;else if(cnt 3d5)cnt 3d0;else cnt cnt 3d1;endalways(*)begincase(cnt)3d0: cmp 1d0;3d1: cmp 1d1;3d2: cmp 1d1;3d3: cmp 1d1;3d4: cmp 1d0;3d5: cmp 1d0;default: cmp 1d0;endcaseendalways(posedge clk or negedge rst_n) beginif(! rst_n)detect_cmp 1d1;else if(cnt 3d5)detect_cmp 1d1;elsedetect_cmp detect_cmp (~( cmp^ data));endalways(posedge clk or negedge rst_n) beginif(! rst_n)match 1d0;else if((detect_cmp )(cnt 3d5))match 1d1;elsematch 1d0;endalways(posedge clk or negedge rst_n) beginif(! rst_n)not_match 1d0;else if((!detect_cmp)(cnt 3d5))not_match 1d1;elsenot_match 1d0;end endmodule4. 简易秒表 题意 思路 首先确定second的取值逻辑当minute60时停止计数即保持second为0当second60时下一个周期second置为1。其余情况second 等于前一时刻的值加一。 然后明确minute的取值逻辑当second60minute等于前一时刻的值加一。其余情况minute保持不变。 代码 timescale 1ns/1nsmodule count_module(input clk,input rst_n,output reg [5:0]second,output reg [5:0]minute);always (posedge clk or negedge rst_n) beginif (!rst_n) beginminute 6d0;end else if (second 6d60) beginminute minute 1;endelse beginminute minute;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginsecond 6d0;end else if (second 6d60) beginsecond 6d1;endelse if (minute 60) beginsecond 0;end else second second 1d1;end endmodule5. 可置位计数器 题意 思路 ​ 首先明确number的取值逻辑声明number变量为4位无符号数数值每个时钟加一则每次数值达到15下一个时钟因为位宽的限制自动变为1可以实现十六进制计数。当set信号为1时将set_num的值赋给number。 然后确定zero的取值逻辑在默认情况下为0当number0时zero值为1。 因为判断number4’d0需要一个时钟zero信号为1总是滞后number0一个时钟周期。所以可以考虑将number延迟一个时钟再输出。使用num变量代替上述的number再通过以下语句实现number延迟一个时钟输出。【因为number是寄存器类型无法通过组合逻辑进行阻塞赋值同时匹配。 如果直接使用number进行zero的判断来说zero肯定是比number过“0”时刻慢一拍的 所以不妨使用num_reg进行延迟 因为zero肯定是比num_reg慢一拍的所以再通过num_reg延迟一拍给number则number与zero同步输出匹配】 代码 timescale 1ns/1nsmodule count_module(input clk,input rst_n,input set,input [3:0] set_num,output reg [3:0]number,output reg zero);reg [3:0] num;always (posedge clk or negedge rst_n) beginif (!rst_n) beginzero 1d0;end else if (num 4d0) beginzero 1b1;end else beginzero 1b0;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginnum 4b0;endelse if (set) beginnum set_num;endelse beginnum num 1d1;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginnumber 1d0;endelse beginnumber num;endend endmodule6. 加减计数器 题意 思路 ​ 首先确定zero的取值逻辑在默认情况下为0当number0时zero值为1。 always (posedge clk or negedge rst_n) ​ 然后将mode的值作为if-else的判断条件当mode为1时number每个时钟周期加一当mode为0时number每个时钟周期减一。 ​ 按照以上代码因为判断number4’d0需要一个时钟zero信号为1总是滞后number0一个时钟周期。所以可以考虑将number延迟一个时钟再输出。使用num变量代替上述的number再通过以下语句实现number延迟一个时钟输出。 代码 timescale 1ns/1nsmodule count_module(input clk,input rst_n,input mode,output reg [3:0]number,output reg zero);reg [3:0] num;always (posedge clk or negedge rst_n) beginif (!rst_n) beginzero 1d0;endelse if (num 4d0) beginzero 1b1;endelse beginzero 1b0;endendalways (posedge clk or negedge rst_n) beginif (!rst_n) beginnum 4b0;end else if (mode) beginif (num 9) num 0;else num num 1d1;end else if (!mode) beginif (num 0) num 9;else num num - 1d1;endelse num num ;endalways (posedge clk or negedge rst_n) beginif (!rst_n) beginnumber 4d0;end else beginnumber num;endend endmodule7.RAM的简单实现 题意 思路 要实现RAM首先要声明数据的存储空间例如[3:0] rom [7:0]变量名称ram之前的[3:0]表示每个数据具有多少位指位宽变量名称ram之后的[7:0]表示需要多少个数据指深度注意这里深度为8应该是使用[7:0]而不是[2:0]; ​ 声明存储变量之后需要对ram进行初始化写入数据当write_en有效向write_addr写入write_data当read_en有效根据输入的read_addr输出read_data。需要注意的是题目要求实现真双端口RAM即可以同时写入和读出所以需要使用两个always语句块实现写入和读出逻辑不可以在同一个always块中使用if-else if-else if结果。 代码 timescale 1ns/1ns module ram_mod(input clk,input rst_n,input write_en,input [7:0]write_addr,input [3:0]write_data,input read_en,input [7:0]read_addr,output reg [3:0]read_data );reg [3:0] myRAM [7:0];reg [8:0] i;always (posedge clk or negedge rst_n) beginif (!rst_n) beginfor (i 0;i 256;i i1)myRAM[i] 0;endelse beginmyRAM[write_addr] write_en ? write_data:myRAM[write_addr];endendalways (posedge clk or negedge rst_n) beginif (~rst_n) beginread_data 0;endelse read_data read_en?myRAM[read_addr]:read_data;end endmodule
http://www.zqtcl.cn/news/801353/

相关文章:

  • 怎么用html做移动网站吗免费装修设计软件
  • 门头沟石家庄网站建设鞍山怎么样做一个自己的网站
  • 网站安装代码宣传网站建设背景
  • 网站空间续费东莞网站建设(信科分公司)
  • 少儿教育网站建设价格网页制作讲解视频
  • 网站开发方向的工作网站怎么做排名
  • 建设网站烧钱iis配置网站是什么
  • 新网站建设特色网站建设信息表
  • 商城做网站家具网站模板
  • 国有企业网站建设网站悬浮qq
  • 上海建站宝盒微网站生成app
  • 做网站是什么时候分页有哪些制作网站的公司
  • 专业柳州网站建设哪家好5千ip的网站能赚多少钱
  • 网站开发代理最火网页游戏
  • 做网站运营工资多少网站建设协议需要注意的问题
  • 如何建设一个人工智能网站qq头像网站源码
  • 有什么网站可以做外贸出口信息泉州网站制作运营商专业
  • 创业seo快速排名优化公司
  • 安丘网站开发王野天 女演员
  • 沈阳软件公司 网站制作wordpress未验证邮箱用户
  • 做动画上传网站赚钱么杭州市网站建设公司
  • 网站建设注意细节问题微信二维码
  • 凡科做的网站提示证书错误网络营销渠道可分为哪几种
  • 南京手机网站制作公司免费设计房屋效果图软件有哪些
  • 定制类网站怎么样做网页设计
  • 企业门户网站建设优势网站登录模版
  • 六盘水建设网站徐州建站平台
  • 昆明有多少做网站的公司公司软文代写
  • 东莞模板网站做一个电子商务网站在哪里做
  • 给别人网站做跳转株洲专业网站排名优化