入門mruby Cからmruby APIを使いこなす p22 mrb_fixnum_plusではなく mrb_num_plus


このエントリーをはてなブックマークに追加

Yamanekkoさんの入門mrubyの本読んでる
『入門mruby Cからmruby APIを使いこなす』(Yamanekko 著) - 達人出版会BOOTH支店 - BOOTH

p22のplus.c

13行目にmrb_fixnum_plus(mrb, n1, n2); が使われているが mrb_fixnum_plusは最新のmrubyではつかわれておらず

mrb_num_plusに変わったらしい

Make unused functions private. · mruby/mruby@237a57b

というわけで足し算は下記でできる

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <mruby.h>
#include <mruby/compile.h>
#include <mruby/numeric.h>
int main(void){
mrb_value val;
mrb_state *mrb = mrb_open();
mrb_value n1;
mrb_value n2;
mrb_int a = 12;
mrb_int b = 24;
n1 = mrb_fixnum_value(a);
n2 = mrb_fixnum_value(b);
val = mrb_num_plus(mrb, n1, n2);
mrb_p(mrb, val);
mrb_close(mrb);
return 0;
}

割り算の mrb_num_divもなくなったっぽいが、わからないのでとりあえず省略した


このエントリーをはてなブックマークに追加

Icarus Verilog でFizzBuzz


このエントリーをはてなブックマークに追加
  • Icarus Verilogをやってみた
  • FizzBuzzっぽいものをかいてみた
  • こんな感じか?


mytest.v

1
2
3
4
5
6
module mytest(fizz,buzz);
input fizz, buzz;
output out, fizzbuzz;
assign out = ~fizz & ~buzz;
assign fizzbuzz = fizz & buzz;
endmodule


mytest_test.v

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module top();
wire out;
reg a,b;
mytest mytest_instance(a,b);
initial begin
a = 0;
forever begin
#2 a=~a;
#1 a=~a;
end
end
initial begin
b = 0;
forever begin
#4 b=~b;
#1 b=~b;
end
end
initial begin
#100 $finish();
end
initial begin
$dumpfile("mytest_test.vcd");
$dumpvars(0, mytest_instance);
end
endmodule

このエントリーをはてなブックマークに追加