Verilog 有什么奇技淫巧? 您所在的位置:网站首页 verilogfor循环 Verilog 有什么奇技淫巧?

Verilog 有什么奇技淫巧?

2023-03-17 16:24| 来源: 网络整理| 查看: 265

奇技淫巧我不会,但我这有一些我工作后才学到的一些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 实验室设备网 版权所有