我正在使用一个JavaScript库,它将构造函数公开为全局对象的属性.
在JavaScript中,我可以像这样调用构造函数.
var thing = new Library.Thing();
Run Code Online (Sandbox Code Playgroud)
如何在ClojureScript中调用构造函数?这些都不起作用.
; These all cause compiler errors
(new (.-Thing js/Library)) ; First arg to new must be a symbol
(new (.Thing js/Library))
(new .-Thing js/Library)
(new .Thing js/Library)
(new js/Library/Thing) ; Invalid token: js/Library/Thing
; These all compile to different JS than I am looking for
((.-Thing js/Library).) ; Library.Thing.call(null, _SLASH_);
((.Thing js/Library).) ; Library.Thing().call(null, _SLASH_);
Run Code Online (Sandbox Code Playgroud)
如果我使用js*它可以正常工作,但这是作弊,对吧?
(js* "new Library.Thing()")
Run Code Online (Sandbox Code Playgroud)
调用作为另一个对象属性的构造函数的正确方法是什么?
我想弄清楚如何在我的 iCE40HX-8K 分线板上使用块 RAM。我想以 512x8 的配置访问它,据我从文档中得知,IceStorm 项目支持它,但我无法让它像我预期的那样工作。
如果我理解正确,在 READ_MODE 参数设置为 1 的情况下初始化 SB_RAM40_4K 原语应该将块设置为 512x8 读取模式,该模式使用 9 位读取地址,并在每个地址读取 8 位数据。
这是我能想到的最简单的例子。它设置了一个带有一些预初始化内存的 SB_RAM40_4K,并直接读取板载 LED 的引脚。
hx8kboard.pcf
set_io leds[0] B5
set_io leds[1] B4
set_io leds[2] A2
set_io leds[3] A1
set_io leds[4] C5
set_io leds[5] C4
set_io leds[6] B3
set_io leds[7] C3
set_io clk J3
Run Code Online (Sandbox Code Playgroud)
顶.v
module top (
output [7:0] leds,
input clk
);
//reg [8:0] raddr = 8'd0;
reg [8:0] raddr = 8'd1;
SB_RAM40_4K #(
.INIT_0(256'h00000000000000000000000000000000000000000000000000000000_44_33_22_11),
.WRITE_MODE(1),
.READ_MODE(1)
) ram40_4k_512x8 ( …Run Code Online (Sandbox Code Playgroud)