LeetCode刷题807
基本思路:对于每个点而言,其增加到的最高高度为横向最大值和纵向最大值的最小值,如下图所示:
红色线中间点的高度为2,横向对最大值为9,增加7不影响横向视图;纵向最大值为4,增加2不影响纵向视图,因此2最大可以增加到4
Typescript的解法:
Typescript相关内容笔记
Array.length:数组长度Math:数学库Array.map(func):使用func遍历Array中的所有元素,返回一个数组...:数组解开成多个元素,等效Python中的*(参数) => {函数内容}:Ts中的匿名数组
Verilator安装与基本使用
安装参考:Installation — Verilator 4.225 documentation
在Ubuntu上直接:apt-get install verilator即可
lint
使用--lint-only仅使用lint功能进行检查,如下所示:
verilator -Wall --lint-only test_add.v
test_add代码如下所示:
module test_add (
input clk,
input rst_n,
input din_vld,
input [7:0]din_dt_a,
input [8:0]din_dt_b, // 位宽不匹配
output reg dout_vld,
output reg [7:0] dout_dt
);
always @ (posedge clk or negedge rst_n)
if(~rst_n)
dout_vld <= 1'b0;
else
dout_vld <= din_vld;
always @ (posedge clk or negedge rst_n) begin
if(~rst_n) begin
dout_dt <= 8'd0;
end else if(din_vld) begin
dout_dt <= din_dt_a + din_dt_b; // 位宽不匹配
end
end
endmodule
运行后报错为:
%Warning-WIDTH: test_add.v:23: Operator ASSIGNDLY expects 8 bits on the Assign RHS, but Assign RHS's ADD generates 9 bits.
: ... In instance test_add
dout_dt <= din_dt_a + din_dt_b;
^~
... Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message.
%Error: Exiting due to 1 warning(s)
另外可以添加-xml-only生成xml文件