gpt4 book ai didi

verilog - 在两个 1 之间填充 0's with 1' s(可合成)

转载 作者:行者123 更新时间:2023-12-04 23:21:00 24 4
gpt4 key购买 nike

假设我们有 MSB_limitLSB_limit .这两个充当两个标志和 全部 它们之间的位(即使是 1 - 我认为这可以简化问题)必须转到 1 .

有没有可综合的解决方案?

问题示例:

MSB_limit = 7;
LSB_limit = 2;

//Let's suppose our register is 16bits, desired output:

0000000011111100
^ ^ ^ ^
| | | |
15 7 2 0 //positions

最佳答案

使用 for 循环可以轻松实现:

SystemVerilog (IEEE 1800):

logic [N-1:0] my_reg;
always_comb begin
foreach(my_reg[idx])
my_reg[idx] = idx inside {[LSB_limit:MSB_limit]};
end

Verilog(IEEE 1364-2001 或更高版本):
reg [N-1:0] my_reg;
integer idx;
always @* begin
for (idx = 0; idx < N; idx=idx+1) begin
my_reg[idx] = (idx >= LSB_limit) && ( idx <= MSB_limit);
end
end

关于verilog - 在两个 1 之间填充 0's with 1' s(可合成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27047196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com