Verilog 有什么奇技淫巧? |
您所在的位置:网站首页 › verilogfor循环 › Verilog 有什么奇技淫巧? |
奇技淫巧我不会,但我这有一些我工作后才学到的一些Verilog写法。 数字电路设计主要就是,选择器、全加器、比较器,几个常用逻辑门,再加个D触发器,电路基本都能实现了。 组合逻辑+时序逻辑 组合逻辑用assign或always@(*)实现, 时序逻辑用always@(posedge clk or negedge rst_n) 有人说掌握Verilog 20%的语法就可以描述 90%以上的电路,说的对。 casezalways @(*)begin casez(code) 8'b1???_???? : data[2:0] = 3'd7; 8'b01??_???? : data[2:0] = 3'd6; 8'b001?_???? : data[2:0] = 3'd5; 8'b0001_???? : data[2:0] = 3'd4; 8'b0000_1??? : data[2:0] = 3'd3; 8'b0000_01?? : data[2:0] = 3'd2; 8'b0000_001? : data[2:0] = 3'd1; 8'b0000_0001 : data[2:0] = 3'd0; default : data[2:0] = 3'd0; endcase end这样的case有优先级选择,虽然可综合,但是不推荐使用,有优先用if-else,没有直接用case。 synopsys的EDA工具有关于full case与parallel case可以查看下面博客链接。 https://blog.csdn.net/li_hu/article/details/10336511 generate+for合理使用generate+for循环可以提高编码效率,同样的赋值语句需要赋值多次。 generate genvar i; for(i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |