小编Jos*_*ohl的帖子

从ClojureScript调用JavaScript对象属性作为构造函数

我正在使用一个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)

调用作为另一个对象属性的构造函数的正确方法是什么?

javascript clojurescript

12
推荐指数
1
解决办法
2713
查看次数

如何在 IceStorm 的 512x8 读取模式下使用 iCE40 4K 块 RAM?

我想弄清楚如何在我的 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)

yosys

6
推荐指数
1
解决办法
2982
查看次数

标签 统计

clojurescript ×1

javascript ×1

yosys ×1