很多人对於 Function 以及 Task 有点混乱,这篇将带你搞懂他们~
EX:
输入数字计算需要的位宽大小
function integer log2;
input integer in ;
for(log2=0; in>1; log2=log2+1) begin
in = in >> 1 ;
end
endfunction
引用 log2:
parameter width = 16;
reg [log2(width)]:0]a;//5 bit register a
在这边值得注意的是,上面虽然用了 integer,你可能会想,这样不是很耗硬体资源吗,不如自己算好 log2 再打上数字还比较省资源,但其实那些数字会在 "前置处理器" 就先帮你算出来了,所以并不会合成出实际的电路~
(在 quartus 编译好然後查看 RTL Viewer 就可以知道了~)
EX:
七段显示解码(共阴)
task give_seg;
input reg [13:0]in;
output reg [7:0]out;
casex(in)
14'd0:out = 8'b11111100;
14'd1:out = 8'b01100000;
14'd2:out = 8'b11011010;
14'd3:out = 8'b11110010;
14'd4:out = 8'b01100110;
14'd5:out = 8'b10110110;
14'd6:out = 8'b10111110;
14'd7:out = 8'b11100000;
14'd8:out = 8'b11111110;
14'd9:out = 8'b11100110;
default:out = 8'b00000010;
endcase
endtask
<<: 【Day15】[资料结构]-二元搜寻树Binary Search Tree, BST
接下来要回去弄日K交易策略,先把网格交易机器人打包起来独立成一个档案,还有把登入的部分打包起来,未来...
零基础学习 Swift,建议可以先阅读官方编排的教学架构,获取基础观念、认知 Swift 官方社群 ...
昨天我们讲到如何在SQL server建立DB,但像是Table、Column之类的该如何建置呢,很...
前言 闭包,一个完全无法从字面意思了解的专有名词,若是改叫小笼闭包,是不是马上联想到这个画面 一个个...
SysTick是内核系统的定时器,先来看看SysTick来源在哪,下图stm32f030cc的时钟树...